From 27867f6fb5200743ae18e9e54eb8176e20876b59 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 17 Jul 2003 16:51:23 +0000 Subject: [PATCH] * scm/bass-figure.scm (make-bass-figure-markup): add alignBassFigureAccidentals property. * lily/volta-bracket.cc (brew_molecule): only put text on 1st bracket. * Documentation/user/refman.itely (Percussion staves): use set-drum-kit --- ChangeLog | 6 ++ Documentation/user/refman.itely | 19 +++--- Documentation/user/tutorial.itely | 61 +++++++++++++++++-- input/regression/accidental-double.ly | 3 + input/regression/apply-context.ly | 9 ++- input/regression/arpeggio.ly | 1 + input/regression/auto-beam-triplet.ly | 2 +- input/regression/auto-beam-tuplets.ly | 5 +- input/regression/auto-change.ly | 1 + input/regression/bar-number.ly | 6 +- input/regression/bar-scripts.ly | 28 +-------- input/regression/beam-break.ly | 1 + input/regression/beam-concave.ly | 2 +- input/regression/beam-french.ly | 3 + input/regression/beam-length.ly | 2 + input/regression/beam-multiple-cross-staff.ly | 1 + input/regression/beam-over-barline.ly | 3 + input/regression/beam-postfix-notation.ly | 2 + input/regression/beamed-chord.ly | 3 + input/regression/beams.ly | 3 + input/regression/collision-2.ly | 2 + input/regression/collision-dots.ly | 2 + input/regression/collision-heads.ly | 3 + input/regression/collision-mesh.ly | 3 + input/regression/completion-heads.ly | 12 +++- input/regression/finger-chords.ly | 2 + input/regression/fingering.ly | 3 + input/regression/grace-beam.ly | 3 + input/regression/grace-nest1.ly | 3 + input/regression/grace-nest2.ly | 2 + input/regression/grace-nest3.ly | 1 + input/regression/grace-part-combine.ly | 1 + input/regression/grace-staff-length.ly | 3 + input/regression/grace-volta-repeat-2.ly | 2 + input/regression/hara-kiri-pianostaff.ly | 3 +- input/regression/lyric-combine.ly | 2 + input/regression/lyric-extender.ly | 3 + input/regression/merge-differently-dotted.ly | 3 + input/regression/music-map.ly | 2 + input/regression/note-head-chord.ly | 2 + input/regression/prefatory-empty-spacing.ly | 2 + input/regression/repeat-line-break.ly | 2 + input/regression/repeat-percent-skipbars.ly | 1 + input/regression/rest-collision-default.ly | 2 + input/regression/rest-pitch.ly | 2 + input/regression/script-stacked.ly | 2 + .../regression/spacing-accidental-stretch.ly | 2 + input/regression/stem-direction-down.ly | 19 ------ input/regression/tie-chord-partial.ly | 2 +- input/regression/tie-grace.ly | 2 + input/regression/triplets.ly | 28 --------- input/regression/tup.ly | 1 + input/regression/tuplet-beam.ly | 1 + .../regression/tuplet-staffline-collision.ly | 2 + input/screech-boink.ly | 15 ++--- lily/note-head.cc | 4 ++ lily/volta-bracket.cc | 15 +++-- scm/bass-figure.scm | 20 +++--- scm/define-translator-properties.scm | 8 ++- 59 files changed, 221 insertions(+), 127 deletions(-) delete mode 100644 input/regression/stem-direction-down.ly delete mode 100644 input/regression/triplets.ly diff --git a/ChangeLog b/ChangeLog index 122f5e9417..eb2f04da45 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2003-07-17 Han-Wen Nienhuys + * scm/bass-figure.scm (make-bass-figure-markup): add + alignBassFigureAccidentals property. + + * lily/volta-bracket.cc (brew_molecule): only put text on 1st + bracket. + * lily/hyphen-spanner.cc (set_spacing_rods): new function: take syllables widths into account for minimum-length. diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index cbcb984360..d524ac706c 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -2100,6 +2100,8 @@ is to put the grace notes before a phantom ``space note'', e.g. )c4 } @end lilypond +By adjusting the duration of the skip note (here it is a half-note), +the space between the main-note and the grace is adjusted. A @code{\grace} section has some default values, and LilyPond will use those default values unless you specify otherwise inside the @@ -6595,11 +6597,12 @@ reasonable to specify a cluster as the envelope of a set of notes. @syntax -A cluster is engraved as the envelope of a set of cluster-notes. This -is achieved by applying the function @code{notes-to-cluster} to a -sequence of chords, eg. +A cluster is engraved as the envelope of a set of +cluster-notes. Cluster notes are created by applying the function +@code{notes-to-clusters} to a sequence of chords, eg. +@c @lilypond[relative 2] - \apply #notes-to-cluster { << c e >> <> } + \apply #notes-to-clusters { << c e >> <> } @end lilypond The following example (from @@ -6616,14 +6619,12 @@ ordinary notes and clusters. @seealso -@internalsref{Cluster}, @inputfileref{input/regression,cluster.ly}, -@internalsref{Cluster_engraver}, @internalsref{ClusterEvent}. +@internalsref{ClusterSpanner}, @internalsref{ClusterSpannerBeacon}, +@inputfileref{input/regression,cluster.ly}, +@internalsref{Cluster_engraver}, @internalsref{ClusterNoteEvent}. @refbugs -When a cluster is active, note heads must be switched off manually using -@code{\hideNotes}. - Music expressions like @code{< @{ g8 e8 @} a4 >} are not printed accurately. Use @code{<>8 <>8} instead. diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index 02a1b992be..b84854339a 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -365,6 +365,7 @@ Printing may be done by executing We continue with the introduction of more musical constructs. Normal rests are entered just like notes with the name ``@code{r}'': +@cindex rests @quotation @example r2 r4 r8 r16 @@ -406,6 +407,8 @@ c'4 c'' c''' \clef bass c c, @end quotation @separate +@cindex tie + A tie is created by adding a tilde ``@code{~}'' to the first note being tied. @quotation @@ -414,6 +417,7 @@ g'4-~ g' a'2-~ a'4 @end lilypond @end quotation @separate +@cindex slurs versus ties A tie is different from a slur. A tie simply makes the first note sound longer, and can only be used on pairs of notes with the same pitch. Slurs indicate the articulations of notes, and can be used on @@ -424,6 +428,8 @@ c2-~-( c8 fis fis4 ~ fis2 g2-) The notation manual discusses ties in @ref{Ties}. +@cindex key signature, setting + The key signature is set with the command ``@code{\key}'', followed by a pitch and @code{\major} or @code{\minor}: @quotation @@ -481,7 +487,8 @@ This example shows notes, ties, octave marks, and rests in action. @end lilypond @end quotation -@c accidentals... +@cindex accidentals + There are some interesting points to note in this example. Accidentals (sharps and flats) do not have to be marked explicitly: you just enter the note name, and an accidental is printed @@ -591,6 +598,8 @@ Here is an example of the difference between relative mode and @end quotation @separate +@cindex slur + A slur is drawn across many notes, and indicates bound articulation (legato). The starting note and ending note are marked with a ``@code{(}'' and a ``@code{)}'' respectively: @@ -602,6 +611,7 @@ d4-( c16-)-( cis d e c cis d e-)-( d4-) @end quotation @separate +@cindex phrasing slurs If you need two slurs at the same time (one for articulation, one for phrasing), you can also make a phrasing slur with @code{\(} and @code{\)}. @@ -621,6 +631,7 @@ a8-(-\( ais b c-) cis2 b'2 a4 cis, c-\) @end quotation @separate +@cindex beams, by hand Beams are drawn automatically, but if you do not like where they are put, they can be entered by hand. Mark the first note to be beamed with @code{[} and the last one with @code{]}: @@ -706,7 +717,9 @@ simpler expressions into larger expressions. For example, (1 + 2) * 3 ((1 + 2) * 3) / (4 * 5) -@end quotation +@end quotation +@cindex expression +@cindex music expression is a sequence of expressions, where each expression is contained in the next one. The simplest expressions are numbers and operators (like +, * and /). Parentheses are used to group expressions. In @@ -715,6 +728,7 @@ expressions are notes and rests. By enclosing expressions in @code{< >} and @code{@{ @}}, more complex music is formed. The @code{\context} also forms new expressions; it is prepended to a music expression. +@cindex indent When spreading expressions over multiple lines, it is customary to use an indent that indicates the nesting level. Formatting music like this eases reading, and helps you insert the right amount of closing @@ -735,6 +749,10 @@ braces at the end of an expression. For example @node Adding articulation marks to notes @subsection Adding articulation marks to notes +@cindex articulation +@cindex accents +@cindex staccato + Common accents can be added to a note using @code{-.}, @code{--}, @code{->}: @quotation @lilypond[verbatim,relative 1] @@ -743,6 +761,7 @@ c-. c-- c-> @end quotation @separate +@cindex fingering Similarly, fingering indications can be added to a note using @code{-} and the digit to be printed. @lilypond[verbatim,relative 1] @@ -758,6 +777,10 @@ c-\ff c-\mf @end quotation @separate +@cindex dynamics +@cindex decrescendo +@cindex crescendo + Crescendi and decrescendi are started with the commands @code{\<} and @code{\>}. The command @code{\!} finishes a crescendo on the note it is attached to. @@ -768,6 +791,7 @@ c2-\< c2-\!-\ff c2-\> c2-\! @end quotation @separate +@cindex chords Chords can be made by surrounding pitches with @code{<<} and @code{>}>: @quotation @@ -798,9 +822,13 @@ r4 <>8-\>-( <> <> <>8-\!-) @separate -@node More basic rhythms -@subsection More basic rhythms +@node Basic rhythmical commands +@subsection Basic rhythmical commands +@cindex pickup +@cindex anacruse +@cindex upstep +@cindex partial measure A pickup (or upstep) is entered with the keyword @code{\partial}. It is followed by a duration: @code{\partial 4} is a quarter note upstep and @code{\partial 8} an eighth note. @@ -809,6 +837,8 @@ and @code{\partial 8} an eighth note. f8 c2 d e @end lilypond +@cindex tuplets +@cindex triplets Tuplets are made with the @code{\times} keyword. It takes two arguments: a fraction and a piece of music. The duration of the piece of music is multiplied by the fraction. Triplets make notes occupy @@ -819,6 +849,8 @@ of music is multiplied by the fraction. Triplets make notes occupy \times 2/3 { c r c } @end lilypond +@cindex grace notes +@cindex accacciatura Grace notes are also made by prefixing a note, or a set of notes with a keyword. In this case, the keyword is @code{\grace}. @lilypond[relative 1, verbatim,fragment] @@ -833,6 +865,9 @@ More information on the use of grace notes is in @ref{Grace notes}. @node Commenting input files @subsection Commenting input files +@cindex comments +@cindex line comment +@cindex block comment Comments are pieces of the input that are ignored. There are two types of comments. A line comments are introduced by @code{%}: after that, the rest of that line is ignored. Block comments span larger @@ -861,6 +896,8 @@ for comments. @section Printing lyrics @cindex lyrics +@cindex Lyrics +@cindex Songs Lyrics are entered by separating each syllable with a space, and surrounding them with @code{\lyrics @{ @dots{} @}}, for example @example @@ -905,6 +942,9 @@ The final result is } @end lilypond +@cindex melisma +@cindex extender line +@c synonyms? This melody ends on a @rglos{melisma}, a single syllable (``free'') sung to more than one note. This is indicated with a @emph{extender line}. It is entered as two underscores, i.e., @@ -957,6 +997,10 @@ TODO: discuss contexts. @node A lead sheet @section A lead sheet +@cindex Lead sheets +@cindex chords +@cindex chord names + In popular music, it is common to denote accompaniment as chord-names. Using them in LilyPond has two parts, just like lyrics: entering the chords (with @code{\chords}), and printing them (with @code{\context @@ -1025,6 +1069,9 @@ a lead sheet, for example, @node Listening to output @section Listening to output +@cindex sound +@cindex MIDI + MIDI (Musical Instrument Digital Interface) is a standard for connecting and recording digital instruments. A MIDI file is like a tape recording of a MIDI instrument. The @code{\midi} block makes the @@ -1110,6 +1157,10 @@ More information on titling can be found in @ref{Invoking ly2dvi}. @node Single staff polyphony @section Single staff polyphony +@cindex polyphony +@cindex multiple voices +@cindex voices, more -- on a staff + When different melodic lines are combined on a single staff, these are printed as polyphonic voices: each voice has its own stems, slurs and beams, and the top voice has the stems up, while the bottom voice @@ -1171,7 +1222,7 @@ Here is a full-fledged example: < \context Staff = up { c4 c g' g } \context Staff = down { - \clef bass c, c' e c } + \clef bass c,, c' e c } > @end lilypond diff --git a/input/regression/accidental-double.ly b/input/regression/accidental-double.ly index fc81a6d704..3701c1daad 100644 --- a/input/regression/accidental-double.ly +++ b/input/regression/accidental-double.ly @@ -11,6 +11,9 @@ \context Voice=va { \stemUp c' fis! } \context Voice=vb { \stemDown c fis! } > + + \paper { raggedright= ##t } + } diff --git a/input/regression/apply-context.ly b/input/regression/apply-context.ly index f3fe9a0775..4b3b45c971 100644 --- a/input/regression/apply-context.ly +++ b/input/regression/apply-context.ly @@ -5,10 +5,17 @@ texidoc = "with \\applycontext, \\properties can be modified procedurally. Applications include: checking bar numbers, smart -octavation. " +octavation. + + +This example prints a bar-number during processing on stdout. +" } + \paper { raggedright= ##t } + + \score { \notes \relative c'' { c1 c1 diff --git a/input/regression/arpeggio.ly b/input/regression/arpeggio.ly index 6d398ace0b..b0a864d2a1 100644 --- a/input/regression/arpeggio.ly +++ b/input/regression/arpeggio.ly @@ -25,4 +25,5 @@ Arpeggios are supported, both cross-staff and broken single staff. <>-\arpeggio } > + \paper { raggedright= ##t } } diff --git a/input/regression/auto-beam-triplet.ly b/input/regression/auto-beam-triplet.ly index 2181af3225..8fdf47f9b1 100644 --- a/input/regression/auto-beam-triplet.ly +++ b/input/regression/auto-beam-triplet.ly @@ -10,5 +10,5 @@ texidoc = "Automatic beaming is also done on tuplets." c8 c c c \times 4/6 { c c c c c c} } - \paper{ } + \paper { raggedright= ##t } } diff --git a/input/regression/auto-beam-tuplets.ly b/input/regression/auto-beam-tuplets.ly index 72a8f118f3..889f8ec5b1 100644 --- a/input/regression/auto-beam-tuplets.ly +++ b/input/regression/auto-beam-tuplets.ly @@ -11,4 +11,7 @@ beams even if they're auto generated." \times 2/3 { f8-[ f f ] f8-[ f f ] f f f f f f } -}} +} + \paper { raggedright= ##t } + + } diff --git a/input/regression/auto-change.ly b/input/regression/auto-change.ly index c8c512b46a..f84d904b9f 100644 --- a/input/regression/auto-change.ly +++ b/input/regression/auto-change.ly @@ -8,6 +8,7 @@ note. When central C is reached, we don't switch (by default). " } + \paper { raggedright= ##t } \score { \notes \context PianoStaff < diff --git a/input/regression/bar-number.ly b/input/regression/bar-number.ly index fe5f1b05b6..eb6e42de6f 100644 --- a/input/regression/bar-number.ly +++ b/input/regression/bar-number.ly @@ -3,7 +3,11 @@ \header { texidoc="Bar number settable and padding adjustable. Bar numbers -start counting after the anacrusis." +start counting after the anacrusis. + +The padding should be increased, to prevent clashes at the start of the line. + +" } diff --git a/input/regression/bar-scripts.ly b/input/regression/bar-scripts.ly index 6c3deb9296..2391cf902e 100644 --- a/input/regression/bar-scripts.ly +++ b/input/regression/bar-scripts.ly @@ -2,8 +2,6 @@ \header{ texidoc=" -COMMENTED-OUT - Markings that are attached to (invisible) barlines are delicate: the are attached to the rest of the score without the score knowing it. Consequently, they fall over often. @@ -11,8 +9,6 @@ knowing it. Consequently, they fall over often. } -% FIXME including this file makes lily crash lateron -- breaks website build - onestaff = \context Staff = foo\notes\relative c'' { \property Staff.instr = instr \property Staff.instrument = instrument \mark "B" @@ -28,28 +24,6 @@ grstaff = \notes \relative c'' \context GrandStaff < \context Staff = bufl { c1 c2 } > -scpaper = \paper {\translator {\OrchestralScoreContext}} -% stpaper = \paper{ \translator {\BarNumberingStaffContext }} -stpaper = \paper{ } - - -scscore = \score { \grstaff \paper { -\scpaper -}} - -scscore = \score { \grstaff \paper { -\scpaper -}} - -stscore = \score { \onestaff \paper { - \stpaper -}} - - -%\score {\stscore} -\score {\scscore} - -\score{\notes c''} -\score {\scscore} +\score {\grstaff} diff --git a/input/regression/beam-break.ly b/input/regression/beam-break.ly index 8543c7eac3..3be4bb42e4 100644 --- a/input/regression/beam-break.ly +++ b/input/regression/beam-break.ly @@ -4,6 +4,7 @@ } \version "1.7.19" + \paper { raggedright= ##t } \score { \notes \relative c'' { \property Score.forbidBeamBreak = ##f diff --git a/input/regression/beam-concave.ly b/input/regression/beam-concave.ly index 0d17e0c5b6..665decca67 100644 --- a/input/regression/beam-concave.ly +++ b/input/regression/beam-concave.ly @@ -1,7 +1,7 @@ \version "1.7.18" \header{ -texidoc = "Concave beams should be horizontal. informally spoken, +texidoc = "Concave beams should be horizontal. Informally spoken, concave refers to the shape of the notes that are opposite a beam. If an up-beam has high notes on its center stems, then we call it concave. This example shows borderline cases. Only the beams diff --git a/input/regression/beam-french.ly b/input/regression/beam-french.ly index 89064d2513..62dbcd7595 100644 --- a/input/regression/beam-french.ly +++ b/input/regression/beam-french.ly @@ -15,6 +15,9 @@ c8-[ c16 c16 c8] c8-[ c16 e16 g8] } + + \paper { raggedright= ##t } + } diff --git a/input/regression/beam-length.ly b/input/regression/beam-length.ly index 38ba76dff7..3759878446 100644 --- a/input/regression/beam-length.ly +++ b/input/regression/beam-length.ly @@ -5,6 +5,8 @@ texidoc=" beams should look the same " } + \paper { raggedright= ##t } + \score { \context Voice \notes\relative c { diff --git a/input/regression/beam-multiple-cross-staff.ly b/input/regression/beam-multiple-cross-staff.ly index bf0c827652..0dc544d61b 100644 --- a/input/regression/beam-multiple-cross-staff.ly +++ b/input/regression/beam-multiple-cross-staff.ly @@ -25,5 +25,6 @@ to the last beam. } > + \paper { raggedright= ##t } } diff --git a/input/regression/beam-over-barline.ly b/input/regression/beam-over-barline.ly index c1056fd4dc..2f6fbf03a9 100644 --- a/input/regression/beam-over-barline.ly +++ b/input/regression/beam-over-barline.ly @@ -4,4 +4,7 @@ texidoc = "explicit beams may cross barlines. " } \score { \notes \relative c'' { c2. c8-[ c8 c8 c8] } + + \paper { raggedright= ##t } + } diff --git a/input/regression/beam-postfix-notation.ly b/input/regression/beam-postfix-notation.ly index 41b627d6bd..7959292ad4 100644 --- a/input/regression/beam-postfix-notation.ly +++ b/input/regression/beam-postfix-notation.ly @@ -5,6 +5,8 @@ texidoc = "Beams and ties may be entered in postfix notation, separating the notes and the brackets with a dash." } + \paper { raggedright= ##t } + \score { diff --git a/input/regression/beamed-chord.ly b/input/regression/beamed-chord.ly index 06c49f8726..b441c08052 100644 --- a/input/regression/beamed-chord.ly +++ b/input/regression/beamed-chord.ly @@ -7,6 +7,9 @@ texidoc = "Hairy case for beam, chord, and automatic knees." %be fixed by uncommenting \stemUp" } +\paper { raggedright= ##t } + + \score{ \notes\relative c'{ %\stemUp diff --git a/input/regression/beams.ly b/input/regression/beams.ly index 12620ac878..91a03fd62f 100644 --- a/input/regression/beams.ly +++ b/input/regression/beams.ly @@ -2,6 +2,9 @@ \header { texidoc = "beams (simple)" } + + \paper { raggedright= ##t } + \score { \notes \relative c' { diff --git a/input/regression/collision-2.ly b/input/regression/collision-2.ly index 0b558c2a1b..3983d8f884 100644 --- a/input/regression/collision-2.ly +++ b/input/regression/collision-2.ly @@ -2,6 +2,8 @@ \header { texidoc = "Collisions for single head notes. " } + \paper { raggedright= ##t } + \score { \notes diff --git a/input/regression/collision-dots.ly b/input/regression/collision-dots.ly index a1f70b7f0d..6b90b4a6f2 100644 --- a/input/regression/collision-dots.ly +++ b/input/regression/collision-dots.ly @@ -6,6 +6,8 @@ } \version "1.7.18" + \paper { raggedright= ##t } + \score{ \context Staff \notes < diff --git a/input/regression/collision-heads.ly b/input/regression/collision-heads.ly index 627fcbd231..2b01470640 100644 --- a/input/regression/collision-heads.ly +++ b/input/regression/collision-heads.ly @@ -8,6 +8,9 @@ if the black note heads are from 8th or shorter notes. " } + \paper { raggedright= ##t } + + \score { \notes \context Staff\relative c''< \context Voice = VA { \voiceOne diff --git a/input/regression/collision-mesh.ly b/input/regression/collision-mesh.ly index 6c015b45d4..812e2f0583 100644 --- a/input/regression/collision-mesh.ly +++ b/input/regression/collision-mesh.ly @@ -4,6 +4,9 @@ texidoc = "Oppositely stemmed chords, meshing into each other, are resolved." } + \paper { raggedright= ##t } + + \score { \context Staff \notes \transpose c c' { \time 3/4 diff --git a/input/regression/completion-heads.ly b/input/regression/completion-heads.ly index 030fcaa472..1cf0e953c0 100644 --- a/input/regression/completion-heads.ly +++ b/input/regression/completion-heads.ly @@ -3,11 +3,17 @@ \header{ texidoc=" -If the Note_heads_engraver is replaced by the Completion_heads_engraver, -notes that cross bar lines are split into tied notes. +If the Note_heads_engraver is replaced by the +@code{Completion_heads_engraver}, notes that cross bar lines are split +into tied notes. + " } +\paper { raggedright= ##t } + + + \score{ \notes\relative c'{ \time 2/4 @@ -21,4 +27,4 @@ notes that cross bar lines are split into tied notes. \consists "Completion_heads_engraver" } } -} \ No newline at end of file +} diff --git a/input/regression/finger-chords.ly b/input/regression/finger-chords.ly index 127a79abff..38ab8b2aab 100644 --- a/input/regression/finger-chords.ly +++ b/input/regression/finger-chords.ly @@ -6,6 +6,8 @@ fingerings uniquely with notes. This makes horizontal fingering much easier to process." } + \paper { raggedright= ##t } + \score { \notes \relative c'{ diff --git a/input/regression/fingering.ly b/input/regression/fingering.ly index 1eedce77b7..d65e781f65 100644 --- a/input/regression/fingering.ly +++ b/input/regression/fingering.ly @@ -6,6 +6,9 @@ next to noteheads. " } + \paper { raggedright= ##t } + + \score { \notes\relative c' { diff --git a/input/regression/grace-beam.ly b/input/regression/grace-beam.ly index fa171aa398..22ab0f28bd 100644 --- a/input/regression/grace-beam.ly +++ b/input/regression/grace-beam.ly @@ -5,6 +5,9 @@ Unbeamed grace notes are not put into normal beams. " } + \paper { raggedright= ##t } + + \version "1.7.18" \score { \notes\relative c'' { c4 d8-[ \grace { e32-[ d c d] } e8] e-[ e \grace { f16 } e8 e] }} diff --git a/input/regression/grace-nest1.ly b/input/regression/grace-nest1.ly index dd82a24d0d..5b90d96078 100644 --- a/input/regression/grace-nest1.ly +++ b/input/regression/grace-nest1.ly @@ -3,6 +3,9 @@ texidoc = "grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example." } + \paper { raggedright= ##t } + + \score{ \notes diff --git a/input/regression/grace-nest2.ly b/input/regression/grace-nest2.ly index 3d149d2f37..cb23a9bfa8 100644 --- a/input/regression/grace-nest2.ly +++ b/input/regression/grace-nest2.ly @@ -4,6 +4,8 @@ texidoc = "grace code should not be confused by nested sequential musics, contai } + \paper { raggedright= ##t } + \score { \notes \context Voice { { \grace b'8 c''2 } \grace b'16 c''4 c''4 \bar "|." diff --git a/input/regression/grace-nest3.ly b/input/regression/grace-nest3.ly index e2ef2c27a4..c9535f8e70 100644 --- a/input/regression/grace-nest3.ly +++ b/input/regression/grace-nest3.ly @@ -2,6 +2,7 @@ \header { texidoc = "Another nested grace situation" } + \paper { raggedright= ##t } \score { \notes \relative c'' { f1 diff --git a/input/regression/grace-part-combine.ly b/input/regression/grace-part-combine.ly index 8fe664141b..bd1aa38a4b 100644 --- a/input/regression/grace-part-combine.ly +++ b/input/regression/grace-part-combine.ly @@ -2,6 +2,7 @@ \header { texidoc = "partcombiner and grace notes can go together" } + \paper { raggedright= ##t } \score { \context StaffGroup = group < diff --git a/input/regression/grace-staff-length.ly b/input/regression/grace-staff-length.ly index 1851e55bc8..9c7890f21b 100644 --- a/input/regression/grace-staff-length.ly +++ b/input/regression/grace-staff-length.ly @@ -2,6 +2,9 @@ \header{ texidoc = "Stripped version of trip.ly. Staffs should be of correct length." } + + \paper { raggedright= ##t } + \score{ \context PianoStaff \notes \relative c'' < \context Staff = treble { diff --git a/input/regression/grace-volta-repeat-2.ly b/input/regression/grace-volta-repeat-2.ly index b4a7b1e851..711d5021a4 100644 --- a/input/regression/grace-volta-repeat-2.ly +++ b/input/regression/grace-volta-repeat-2.ly @@ -8,6 +8,8 @@ merged into one :||:." } + \paper { raggedright= ##t } + \score {\notes\relative c' { \repeat volta 2 { c1 diff --git a/input/regression/hara-kiri-pianostaff.ly b/input/regression/hara-kiri-pianostaff.ly index bca6a36ac9..574917e51c 100644 --- a/input/regression/hara-kiri-pianostaff.ly +++ b/input/regression/hara-kiri-pianostaff.ly @@ -1,7 +1,8 @@ \version "1.7.19" \header { -texidoc = "Hara kiri should not upset fixed distance alignment like in pianostaff. In this example the middle staff is harakiried." +texidoc = "Hara kiri should not upset fixed distance alignment like in pianostaff. In this example the middle of 3 staves is harakiried." } + \paper { raggedright= ##t } \score { \notes \transpose c c'' diff --git a/input/regression/lyric-combine.ly b/input/regression/lyric-combine.ly index e07104284f..b53f3fc587 100644 --- a/input/regression/lyric-combine.ly +++ b/input/regression/lyric-combine.ly @@ -12,6 +12,8 @@ extenders do not assume anything about lyric lengths, so they continue to work." } + \paper { raggedright= ##t } + m = \notes \relative c'' { diff --git a/input/regression/lyric-extender.ly b/input/regression/lyric-extender.ly index 504fd3f96c..e98329bd57 100644 --- a/input/regression/lyric-extender.ly +++ b/input/regression/lyric-extender.ly @@ -1,5 +1,7 @@ \version "1.7.18" \header { texidoc= "Tests lyric extenders. "} + + \paper { raggedright= ##t } \score{ \notes \relative c' < \context Staff { c (c-) (c-) c } @@ -9,3 +11,4 @@ + diff --git a/input/regression/merge-differently-dotted.ly b/input/regression/merge-differently-dotted.ly index 78f63af970..8ff1addee1 100644 --- a/input/regression/merge-differently-dotted.ly +++ b/input/regression/merge-differently-dotted.ly @@ -5,6 +5,9 @@ texidoc = "If NoteCollision has merge-differently-dotted set, note heads that have differing dot counts may be merged anyway." } + \paper { raggedright= ##t } + + \score { \notes { \context Staff < diff --git a/input/regression/music-map.ly b/input/regression/music-map.ly index bc1277b66f..6ff691438c 100644 --- a/input/regression/music-map.ly +++ b/input/regression/music-map.ly @@ -27,6 +27,8 @@ Scripts and dynamics are maintained. ) + \paper { raggedright= ##t } + foobar = \notes \transpose c c' { c4-\>-^ c4-^ c4-\!-^ c4-^ } \score { diff --git a/input/regression/note-head-chord.ly b/input/regression/note-head-chord.ly index d21f37e978..2c9ec9dbd8 100644 --- a/input/regression/note-head-chord.ly +++ b/input/regression/note-head-chord.ly @@ -7,6 +7,8 @@ It also works for whole heads that have invisible stems. } + \paper { raggedright= ##t } + \score { \notes \relative c'' \context Thread { <>4 diff --git a/input/regression/prefatory-empty-spacing.ly b/input/regression/prefatory-empty-spacing.ly index c970c837f6..0499558217 100644 --- a/input/regression/prefatory-empty-spacing.ly +++ b/input/regression/prefatory-empty-spacing.ly @@ -8,6 +8,8 @@ the break alignment." } +\paper { raggedright= ##t } + \score{ \notes { a a a a \break \mark A diff --git a/input/regression/repeat-line-break.ly b/input/regression/repeat-line-break.ly index 0be66d9de1..cd6ebfc525 100644 --- a/input/regression/repeat-line-break.ly +++ b/input/regression/repeat-line-break.ly @@ -7,6 +7,8 @@ bracket should be equal " } + \paper { raggedright= ##t } + \score { \notes \context Staff\relative c'' { diff --git a/input/regression/repeat-percent-skipbars.ly b/input/regression/repeat-percent-skipbars.ly index c5b69bbc63..3a3a633543 100644 --- a/input/regression/repeat-percent-skipbars.ly +++ b/input/regression/repeat-percent-skipbars.ly @@ -5,6 +5,7 @@ texidoc = "Percent repeats are not skipped, even when skipBars is set. " } + \paper { raggedright= ##t } \score { \context Staff < diff --git a/input/regression/rest-collision-default.ly b/input/regression/rest-collision-default.ly index 1277955254..f790ca4f3c 100644 --- a/input/regression/rest-collision-default.ly +++ b/input/regression/rest-collision-default.ly @@ -7,6 +7,8 @@ texidoc = "Rests in collisions sit opposite of the note if no direction is } + \paper { raggedright= ##t } + \score{\notes\relative c'' \context Staff < \time 2/4 diff --git a/input/regression/rest-pitch.ly b/input/regression/rest-pitch.ly index 0331dd7861..7cd390cc86 100644 --- a/input/regression/rest-pitch.ly +++ b/input/regression/rest-pitch.ly @@ -7,6 +7,8 @@ collision will leave it alone." } + \paper { raggedright= ##t } + \score { \notes\relative c'' { a4\rest b4\rest c4\rest diff --git a/input/regression/script-stacked.ly b/input/regression/script-stacked.ly index b3eb46e942..b5ca9e46c8 100644 --- a/input/regression/script-stacked.ly +++ b/input/regression/script-stacked.ly @@ -1,5 +1,7 @@ \version "1.7.18" +\paper { raggedright= ##t } + \header { texidoc = "Scripts may be stacked." } diff --git a/input/regression/spacing-accidental-stretch.ly b/input/regression/spacing-accidental-stretch.ly index 00af523149..3b6ddcf5c6 100644 --- a/input/regression/spacing-accidental-stretch.ly +++ b/input/regression/spacing-accidental-stretch.ly @@ -10,6 +10,8 @@ d16 d d d d d cis d } + + %% not raggedright!! \paper { linewidth = 14.\cm } } diff --git a/input/regression/stem-direction-down.ly b/input/regression/stem-direction-down.ly deleted file mode 100644 index 80eadc7ee0..0000000000 --- a/input/regression/stem-direction-down.ly +++ /dev/null @@ -1,19 +0,0 @@ -\version "1.7.18" - -\header{ - -texidoc="Similarly, if @code{'neutral-direction} is set to @code{-1}. " - -} - -\score{ - \notes\relative c{ - \property Voice.Stem \override #'neutral-direction = #-1 - - b''4 ~ b8-(b8-) e4 e, - } - \paper{ - - } -} - diff --git a/input/regression/tie-chord-partial.ly b/input/regression/tie-chord-partial.ly index 2dfe8df45c..f510230bb7 100644 --- a/input/regression/tie-chord-partial.ly +++ b/input/regression/tie-chord-partial.ly @@ -6,6 +6,7 @@ to a different thread." } \version "1.7.18" + \paper { raggedright= ##t } \score { @@ -15,7 +16,6 @@ to a different thread." } -%% comment out New_tie_engraver for lily 1.6 \paper { \translator { \ThreadContext diff --git a/input/regression/tie-grace.ly b/input/regression/tie-grace.ly index 2b7e1fdd01..4cf3d09e5a 100644 --- a/input/regression/tie-grace.ly +++ b/input/regression/tie-grace.ly @@ -3,6 +3,8 @@ texidoc = "Tieing a grace to the to a following grace or main note works." } + \paper { raggedright= ##t } + \score { \notes \context Voice \relative c'' { c4 \grace { c8 ~ c16 ~ } c4 } diff --git a/input/regression/triplets.ly b/input/regression/triplets.ly deleted file mode 100644 index aa3a745453..0000000000 --- a/input/regression/triplets.ly +++ /dev/null @@ -1,28 +0,0 @@ -\version "1.7.18" - -\header { -texidoc="Simple beams. This broke somewhere < 1.3.110 - -DOCME ! what is this. - -" -} - -ex = \notes \relative c' { - \repeat "volta" 2 { - \times 2/3 {c8( cis d} \times 2/3 {dis e f} - \times 2/3 {fis g gis} \times 2/3 {a bes b} | - \property Voice.TupletBracket \override #'number-visibility = ##f - \property Voice.TupletBracket \override #'bracket-visibility = ##f - \times 2/3 {c8 cis d} \times 2/3 {dis e f} - \times 2/3 {fis g gis} \times 2/3 {a bes b} | - \times 2/3 {c b bes} \times 2/3 {a aes g} - \times 2/3 {fis f e} \times 2/3 {ees d des} | - \times 2/3 {c b bes} \times 2/3 {a aes g} - \times 2/3 {fis f e} \times 2/3 {ees d des-)} - } - c1 -} - -\score { \context Staff { \notes { \ex } } } - diff --git a/input/regression/tup.ly b/input/regression/tup.ly index e2dc24106f..0d6ef52e83 100644 --- a/input/regression/tup.ly +++ b/input/regression/tup.ly @@ -14,6 +14,7 @@ direction as the " } +\paper { raggedright= ##t } \score{ \notes \context Voice \relative c'' { diff --git a/input/regression/tuplet-beam.ly b/input/regression/tuplet-beam.ly index 64d30ab89e..9a6f294917 100644 --- a/input/regression/tuplet-beam.ly +++ b/input/regression/tuplet-beam.ly @@ -6,6 +6,7 @@ bracket is removed. This only happens if there is one beam, as long as the bracket." } + \paper { raggedright= ##t } \score { \notes \context Voice\relative c'' { \times 2/3 { r c8-[ c8] } diff --git a/input/regression/tuplet-staffline-collision.ly b/input/regression/tuplet-staffline-collision.ly index f2948f99aa..ca448184e2 100644 --- a/input/regression/tuplet-staffline-collision.ly +++ b/input/regression/tuplet-staffline-collision.ly @@ -6,6 +6,8 @@ to avoid staff line collisions." } + \paper { raggedright= ##t } + \score { \notes \context Voice\relative c'' { \times 2/3 { b'4 b b } \times 2/3 { f4 f f } diff --git a/input/screech-boink.ly b/input/screech-boink.ly index f2fbdf3091..f99daec80f 100644 --- a/input/screech-boink.ly +++ b/input/screech-boink.ly @@ -1,14 +1,7 @@ \version "1.7.23" -clusterSneeuwbal =\notes { - \property Thread.NoteHead \set #'transparent = ##t - \property Voice.Stem \set #'transparent = ##t - \property Voice.Beam \set #'transparent = ##t -% \property Staff.Accidental \set #'transparent = ##t - \property Voice.Cluster \set #'padding = #0.25 - \property Voice.Cluster \set #'style = #'ramp -} + \score { \notes \context PianoStaff < \context Staff = up { @@ -42,10 +35,10 @@ clusterSneeuwbal =\notes { \property Voice.Beam \set #'thickness = #0.3 \property Voice.Stem \set #'thickness = #4.0 g'16-[ b16 fis16 g16] -< { \clusterSneeuwbal - as16-\startCluster <> +< \apply #notes-to-clusters { + as16 <> <> - <>-\stopCluster + <> } \\ { \property Staff.Arpeggio \set #'arpeggio-direction =#-1 diff --git a/lily/note-head.cc b/lily/note-head.cc index 1d9045dc02..445abc8a63 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -57,6 +57,10 @@ */ +/* + TODO: ledger lines are also a property of the staff. Maybe move them + to there? + */ Molecule Note_head::brew_ledger_lines (Grob *me, int pos, diff --git a/lily/volta-bracket.cc b/lily/volta-bracket.cc index 6250dd8f9f..6cf4f8127f 100644 --- a/lily/volta-bracket.cc +++ b/lily/volta-bracket.cc @@ -102,14 +102,17 @@ Volta_bracket_interface::brew_molecule (SCM smob) Molecule mol = Lookup::line (t, Offset (0, h), Offset (w,h)); mol.add_molecule (start); mol.add_molecule (end); - - SCM text = me->get_grob_property ("text"); - SCM properties = me->get_property_alist_chain (SCM_EOL); - Molecule num = Text_item::interpret_new_markup (smob, properties, text); + if (first_bracket) + { + SCM text = me->get_grob_property ("text"); + SCM properties = me->get_property_alist_chain (SCM_EOL); + + Molecule num = Text_item::interpret_new_markup (smob, properties, text); - mol.add_at_edge (X_AXIS, LEFT, num, - num.extent (X_AXIS).length () - - 1.0, 0); + mol.add_at_edge (X_AXIS, LEFT, num, - num.extent (X_AXIS).length () + - 1.0, 0); + } mol.translate_axis (left, X_AXIS); return mol.smobbed_copy (); } diff --git a/scm/bass-figure.scm b/scm/bass-figure.scm index e65b116e49..b60a433eb4 100644 --- a/scm/bass-figure.scm +++ b/scm/bass-figure.scm @@ -15,6 +15,7 @@ ))) (define-public (make-bass-figure-markup figures context) + (define (no-end-bracket? f1 f2) (eq? (ly:get-mus-property f1 'bracket-stop) '()) ) @@ -25,22 +26,21 @@ ;; TODO: support slashed numerals here. (define (fig-to-markup fig-music) (let* - ( + ((align-accs (eq? #t (ly:get-context-property context 'alignBassFigureAccidentals))) (fig (ly:get-mus-property fig-music 'figure)) (acc (ly:get-mus-property fig-music 'alteration)) (acc-markup #f) (fig-markup (if (number? fig) (make-number-markup (number->string fig)) - (make-simple-markup " ") - )) - ) - - (if (number? acc) - (make-line-markup (list fig-markup - (alteration->text-accidental-markup acc))) - fig-markup) - )) + (make-simple-markup (if align-accs " " "")) + ))) + + (if (number? acc) + (make-line-markup (list fig-markup + (alteration->text-accidental-markup acc))) + fig-markup) + )) (define (fig-seq-to-markup figs) (let* diff --git a/scm/define-translator-properties.scm b/scm/define-translator-properties.scm index ea31420b18..6140b1bbd0 100644 --- a/scm/define-translator-properties.scm +++ b/scm/define-translator-properties.scm @@ -28,6 +28,11 @@ variable: store table with MusicName to Engraver entries.") "Internal variable: store interface to engraver smob table for current context. Don't mess with this.") (translator-property-description 'aDueText string? "text for begin of a due") +(translator-property-description 'alignBassFigureAccidentals boolean? + "If true, then the accidentals are aligned in bass figure context.") + +(translator-property-description 'allowBeamBreak boolean? + "If true allow line breaks during beams.") (translator-property-description 'associatedVoice string? "Name of the Voice that has the melody for this LyricsVoice.") (translator-property-description 'autoBeamSettings list? "Specifies @@ -111,8 +116,7 @@ file @file{lyrics-multi-stanza.ly}. set, \\addlyrics will assume that beams, slurs and ties signal melismata, and align lyrics accordingly. ") -(translator-property-description 'allowBeamBreak boolean? - "If true allow line breaks during beams.") + (translator-property-description 'barAlways boolean? "If set to true a bar line is drawn after each note. ") -- 2.39.2