summaryrefslogtreecommitdiff
path: root/scm
Commit message (Expand)AuthorAgeFilesLines
* Issue 3996: Clarify 'thickness and 'line-thickness property docstrings.Mark Polesky2014-07-101-9/+24
* Issue 3997: \magnifyMusic: don't modify nested properties....Also reformat Scheme code. Mark Polesky2014-07-101-54/+18
* Issue 2245: always align dynamics and lyrics on "main" notehead...Until now, LyricTexts and DynamicTexts had their X-parents set to the first NoteHead in the NoteColumn. This resulted in inconsistent alignment - placement of lyrics and dynamics depended on the order of notes in the input: % this was aligned differently { <f' g'>1\p <g' f'>\p } \addlyrics { la la } By using NoteColumns themselves as the X-parents, we make sure that the input order won't matter. Since the NoteColumn contains all NoteHeads (including suspended ones, which usually should be ignored when aligning), as well as Flags and some other objects, we cannot use its X-extent directly - instead, we add a function for calculating X-extent of the "main" part of the NoteColumn, i.e. X-extent of the non-suspended NoteHeads (represented by the NoteHead furthest away from the stem). Janek Warchoł2014-07-082-0/+4
* Issue 3983: Avoid define-public and define*-public with curried definitions...Regarding curried definitions, GUILE has problems with define-public before version 2.0.10, and with define*-public even later. define-safe-public is implemented by LilyPond itself rather than the (ice-9 curried-definitions) module and is unproblematic. This is basically a cop-out since juggling with overriding bugfix definitions of define-public is a distraction for getting GUILEv2 migration under way that we can do without. David Kastrup2014-07-067-24/+48
* Issue 3942: Scale slurs and ties when using \magnifyMusic.Mark Polesky2014-07-061-0/+125
* define-grobs.scm: reorder properties alphabeticallyJanek Warchoł2014-07-051-13/+13
* TextScript, CombineTextScript: use aligned_on_parent...I think this makes more sense than just using "self-alignment". It makes these grobs consistent with Lyrics and Dynamics, and allows users to override their alignment more predictably. Expected changes in output: TextScripts and CombineTextScripts will be aligned slightly different when the user sets self-alignment-X explicitly (parent notehead will be included in alignment, as in Lyrics). Default placement should remain the same. I'm also changing one regtest, just to make sure that despite slightly changed alignment the markups will stick out far enough to the left. Janek Warchoł2014-07-051-4/+6
* Replace XY-offset closures with aligned_on_parent where possible...It doesn't make sense to specify placement using multiple added callbacks or closures when we can use aligned_on_parent. What's more, aligned_on_parent should expose more consistent interface for the users - affected grobs should now behave similarly to LyricTexts and DynamicTexts. For example, this \relative c'' \context Voice { \compressFullBarRests \override MultiMeasureRestNumber.self-alignment-X = #RIGHT R1*100 } will result in right edge of the MultiMeasureRestNumber being aligned on the right edge of the MultiMeasureRest. Affected grobs: - AccidentalSuggestion - ClefModifier - DoublePercentRepeatCounter - Fingering - GridLine - MultiMeasureRestNumber - MultiMeasureRestText - PercentRepeatCounter - StemTremolo Expected changes in output: none. Janek Warchoł2014-07-051-49/+9
* Clean up DynamicText horizontal alignment....Until now, DynamicText alignment was messy, as there were 3 different callbacks involved - some of them interacting in a confusing way: - in define-grobs.scm, X-offset property was initialized to ly:self-alignment-interface::x-aligned-on-self, - Dynamic_engraver called set_center_parent on every DynamicText attached to a note, so that half a NoteHead width was always added to its X-offset (producing confusing results for example when user requested dynamics to be left-aligned), - DynamicTexts living in a Dynamics context used a completely different offset callback, which aligned them on NoteColumns. Since aligned_on_parent is now able to correctly align grobs with PaperColumn parents (issue 3254), we can use it for all DynamicTexts and have a single interface for the job. Expected changes in output: DynamicTexts in Dynamics context aligned to suspended noteheads may be placed up to 1/4 NoteHead width further to the right. This shouldn't be a problem. Janek Warchoł2014-07-051-1/+1
* use X-parents to align MMRNumbers, MMRTexts and PercentRepeatCounters...It makes more sense to use X-parents than Y-parents for horizontal alignment. To be able to do this, we have to ensure that X-parents of MultiMeasureRestNumber, MultiMeasureRestText and PercentRepeatCounter won't be overwritten by set_bound (these grobs are spanners). We can do this because parents of these grobs are spanners as well. Expected changes in output: none. Janek Warchoł2014-06-281-4/+4
* Color and/or parenthesize single dots in fret-diagrams...Issue 2752 Makes it possible to color and/or parenthesize single dots in fret-diagram-verbose Introducing two properties for use in fret-diagram-details - fret-label-horizontal-offset affecting the fret-label-indication, like the existing `fret-label-vertical-offset' - paren-padding affecting the padding of the parenthesis Extending relevant reg-tests. Documenting it in NR, fretted-strings.itely Thomas Morley2014-06-202-38/+160
* Issue 3954: Report bad return values in user-readable form...An error message like markup-def.ly:11:20: error: music function cannot return (#<procedure line-markup (layout props args)> (Test)) is not really user-readable. At the price of some possible ambiguity, using a LilyPond syntax form like markup-def.ly:11:20: error: music function cannot return \markup \line { Test} is quite preferable. David Kastrup2014-06-201-1/+2
* Issue 3951: Fix broken LSR links in docs....Also run makelsr.py. Mark Polesky2014-06-171-10/+0
* Issue 3952: Automatically sort props within each grob-interface....Ensures that "User settable properties" and "Internal properties" are listed in sorted order in the "Graphical Object Interfaces" section of the IR. Mark Polesky2014-06-171-0/+10
* Issue 3946: Don't define `parser' in lily.scm...The duplication of `parser' in lily.scm and ly/init.ly leads to doubtful behavior and causes a warning with GUILEv2. David Kastrup2014-06-141-2/+0
* parenthesizing very small objects returns ugly output...Issue 3930 Makes the thickness in make-parenthesis-stencil variable Thomas Morley2014-06-061-1/+1
* Issue 3938: Add `ly:undead?' to predicate list.Mark Polesky2014-06-051-0/+1
* Issue 3935: Use (pretty-print) for some IR props.Mark Polesky2014-06-055-60/+80
* Issue 3926: Add \magnifyMusic; clarify fontSize in docs.Mark Polesky2014-06-051-1/+3
* Issue 3932: Clean up code for sorting grob-properties.Mark Polesky2014-06-021-17/+20
* keySignature-> keyAlterations...to avoid confusion with the grob KeySignature Keith OHara2014-05-202-29/+30
* corrects typo in bar-line.scm...issue 3908 Missing space in (define-bar-line ":|]" ":|]" #f " |") caused bad visual output of VoltaBracket. Changed to (define-bar-line ":|]" ":|]" #f " | ") The space added will cause that the SpanBar x-extent will be calculated correctly to determine the gap between two VoltaBrackets. Thomas Morley2014-05-061-1/+1
* Issue 3880: bad number formatting in svg path output...This uses ly:format with "~4f" format string rather than format with "~S" for formatting point lists. Note that "~4f" has a different meaning in ly:format as compared to plain format. This is consistent with other number formatting. Also does this for output of color. The previous output was problematic when the number was an exact fraction. David Kastrup2014-04-131-2/+2
* Issue 3894: accidental rule 'teaching' broke...Revert part of "Issue 2745: more fun with accidental rules." This reverts the part of commit bbca17061fbc7a25ca4050e6d031b3e9562b658e that deals with the teaching accidental rule. David Kastrup2014-04-131-6/+10
* Issue 3897: Some spring cleaning mostly concerning cumbersome apply calls...Also replaced some uses of zip with multi-list map. David Kastrup2014-04-135-20/+16
* Warn when \time is used in mid-measure, and reset measurePosition....This makes issues 3696 and 3888 less mysterious. Devon Schudy2014-04-051-1/+13
* More readable \displayMusic output. (issue 3893)...* Omit unnecessary optional arguments. * Use rationals when printing moments (but not with grace parts, because that's ambiguous). Devon Schudy2014-04-041-7/+17
* Issue 3890: Add dodecaphonic-first accidental style...This accidental style assigns accidentals to _all_ pitches (just as dodecaphonic does) but remembers them throughout a whole measure. This style is useful for different styles of contemporary notation that want to make use of the non-tonal dodecaphonic style but don't want to print so many redundant accidentals. Rutger Hofmann2014-04-011-4/+20
* Issue 3860: Add command \justify-line...The command \fill-line spaces words taking word length into account such that the following distances are equal: outside edge of outside markup to center of adjoining markup; center to center of neighboring interior markups. As a consequence, the space between words is unequal when the lengths of the markups vary and/or there are more than three markups in the line. The following patch creates the command \justify-line, which spaces markups to fill a line such that the space in between each pair is constant. Collisions are prevented by ensuring that this distance does not fall below the current setting of word-space. David Nalesnik2014-02-261-82/+133
* Doc: Point-and-Click has wrong default and ref to SVG added...Issue 3854 Also made sure that references to Point-and-click are consistent through lily.scm and external.itely (including TexInfo formatting). Tried to get some consistency with regard to remove @code{} for PDF, PS and SVG when referring to the file type or viewer. James Lowe2014-02-231-1/+1
* Issue 3856: dodecaphonic-no-repeat accidentalStyle...This adds an accidental style that works like the dodecaphonic style except that it does _not_ print an accidental if the note is in the same voice immediately preceded with a note of the same pitch. David Nalesnik2014-02-191-0/+23
* Improve positioning of tuplet numbers for kneed beams....In the past LilyPond always placed tuplet numbers according to the position of a bracket, though this bracket may or may not have actually been drawn. This system led at times to tuplet numbers which appeared stranded when there was a kneed beam and no visible bracket. This patch positions the tuplet number independently of brackets and close to the beam when the the bracket is not drawn, the beam is kneed, and there is an appropriate beam segment to place the number against. The side of the beam on which the number is placed is chosen by principles derived from Gould. The number is centered horizontally on the beam. Collision detection is also introduced. The number will be offset horizontally if it is too close to an adjoining note column. All shifts preserve the number's vertical distance from the beam. If the number is too large to fit in the available horizontal space (between note columns to either side), we use the old bracket-based positioning system. In the event of a collision with an accidental, the tuplet number is moved vertically, away from the beam. The older behavior is always available through an override of the property `knee-to-beam' which is introduced by this patch, and set by default to true. This patch also adds a header file, `tuplet-number.hh', and provides a number of regression tests illustrating various features. David Nalesnik2014-02-142-0/+3
* Let Chord_name_engraver record lastChord in internal context property...Using a context property instead of an engraver-internal variable allows for more flexible behavior of identical chord suppression. David Kastrup2014-02-081-0/+1
* stencil.scm: minor edits, doc strings, comments...Use two spaces after full stops in doc strings. Restore some comments to new make-connected-path-stencil code. One small code style edit to follow style of previous code. Paul Morris2014-01-301-10/+11
* stencil.scm: add make-path-stencil function...supports all path commands both relative and absolute: lineto, rlineto, curveto, rcurveto, moveto, rmoveto, closepath also supports single letter syntax used in standard SVG path commands: L, l, C, c, M, m, Z, z. refactored make-connected-path-stencil for backwards compatibility and continued use Paul Morris2014-01-301-44/+104
* TabNoteHead.style = #'slash supported.Marc Hohl2014-01-241-6/+7
* Double G clef, tenor G clef, varpercussion clef and varC clef...This patch covers the clefs requested in: http://lists.gnu.org/archive/html/lilypond-user/2010-02/msg00029.html (double G clef and varpercussion clef) http://lists.gnu.org/archive/html/lilypond-user/2013-11/msg00661.html (tenor G clef) http://code.google.com/p/lilypond/issues/detail?id=693 (varC clef) Marc Hohl2014-01-241-0/+12
* Issue 3810: Partcombiner is unhappy about repeated durationsDavid Kastrup2014-01-241-1/+11
* Simplify tremolo display (issue 3783)David Kastrup2014-01-151-4/+2
* Remove tremoloFlags property (issue 3783)David Kastrup2014-01-151-2/+0
* LeftEdge gets a point extent; issue 3761...So users can give it extra-spacing-height Keith OHara2014-01-131-0/+1
* Remove unused features of LeftEdgeKeith OHara2014-01-131-2/+1
* Tremolo cleanup. (issue 3745)...Scale durations when iterating, not in make-repeat. This means the original repeat body is intact, so unfold-repeats and display methods no longer need to undo the scaling. Build tremolo spanners in Scheme, not C++. Calculate tremolo-type in tremolo::get-music-list rather than storing it as a property. shift-duration-log now clears the cached length, since it changes the length. \shiftDurations no longer duplicates shift-duration-log. Merge make-repeated-music with make-repeat. Devon Schudy2014-01-113-108/+73
* Provide value->lily-string functionDavid Kastrup2014-01-111-3/+9
* Run grand-replace (issue 3765)...Run make grand-replace to update all coopyright statements Carl Sorensen2014-01-1182-94/+94
* Revert "Prevents dynamics from colliding with cross-staff stems."...This reverts commit 3bcfd69d91f52f70598f73719fbed7aa6eea8ad3. Conflicts: input/regression/dynamics-avoid-cross-staff-stem.ly lily/include/interval-minefield.hh lily/include/self-alignment-interface.hh lily/interval-minefield.cc lily/new-dynamic-engraver.cc lily/self-alignment-interface.cc scm/define-grob-properties.scm scm/define-grobs.scm scm/output-lib.scm Keith OHara2014-01-032-13/+0
* spacing-options: clarify documentationKeith OHara2014-01-031-7/+6
* Doc: NR Appendix A10.3 \path examples...Issue 3587 Added two extra examples for the \path command Also moved two paras down as it seemed more of a logical order James Lowe2013-12-311-11/+15
* Adds outside-staff-interface and outside-staff-axis-group-interface...When a property exists in an interface, the property should make sense for a sensible of grobs that implement that interface. Otherwise, the property should be part of a separate interface that applies to a sensibly-sized group of grobs. Various properties having to do with outside-staff calculations belong to grob-interface. This does not make sense for many grobs (StaffSpacing, NoteSpacing, SpacingSpanner, StaffSymbol just to name a few). There is a limited collection of grobs for which outside-staff properties make sense. The outside-staff-interface provides a separate interface to be implemented by these grobs. The same is true for axis groups that place outside-staff grobs, which form a limited subset of grobs implementing the axis-group-interface. Rather than putting the relevant properties in the axis-group-interface, we move them to an outside-staff-axis-group-interface. Mike Solomon2013-12-312-6/+63
* Issue 3746: Fix unfold-repeats-fully with alternatives...When fewer alternatives than repeats are given, the _first_ alternative needs to get reused (the previous code wrongly used the last one). David Kastrup2013-12-281-11/+9