Hi, The document attached here suggests edits to 36 examples in NR1 and NR2.
A few months ago, I took some time to compile the code for each example in the Notation Reference. I commented out each formatting command in every example, command by command. Doing this revealed 36 examples that could benefit from changes, frequently because LilyPond's defaults have gotten much smarter over the years, which has sometimes led to drift in the code for the examples. (Years ago it was necessary to \override Glissando.breakable = ##t when using \break. This is no longer necessary. But the docs still have the ancient override.) In other cases, a few legitimate errors popped up. Summary: Edit 1: NR 1.2.1: Tuplets: example 11: "Permitting line breaks within beamed tuplets" * The code contains \remove Forbid_line_break_engraver, which appears to do nothing * The code contains \override Beam.breakable = ##t, which appears to do nothing * The code contains \bar "", which appears to do nothing Edit 2: NR 1.2.1: Ties: notation examples 1 and 2 * Notation examples 1 and 2 duplicate each other exactly; this makes it look like something new / different is being shown between the two examples, but nothing is Edit 3: NR 1.2.3: Time signatures: notation example 9 * The code generates two programming errors: programming error: No spacing entry from TimeSignature to `custos' programming error: No spacing entry from TimeSignature to `custos' Edit 4: NR 1.2.3: Metronome marks: notation example 9 * The code claims to describe the effect of \markLengthOn, but \markLengthOn appears to do nothing Edit 5: NR 1.2.4: Automatic beaming: notation example 3: "Beams across line breaks" * The code claims that \override Beam.breakable = ##t is necessary to break beams across line breaks * But commenting out \override Beam.breakable = ##t produces the same output, contradicting what the example claims to show Edit 6: NR 1.2.5: Rehearsal marks: notation example 5: "Printing marks on every staff" * The code swaps Staff_collecting_engraver between contexts, which appears to do nothing Edit 7: NR 1.3.2: Slurs: notation example 2 * The code renders correctly at LilyPond's default 20 pt staff size; but the code renders incorrectly at staff sizes less than 20 pt Edit 8: NR 1.3.3: Glissando: notation example 6: "Making glissandi breakable" * The code contains \paper { tagline = ##f }, which appears to do nothing * The code contains \override Glissando.breakable = ##t, which appears to do nothing Edit 9: NR 1.3.3: Arpeggio: notation example 5 * The code contains \consists Span_arpeggio_engraver, which appears to do nothing Edit 10: NR 1.4.1: Other variations in repeated sections: notation example 2. * The code contains two s1 * 0, which seems to be much less common in the modern docs than the <> empty-chord construct Edit 11: NR 1.4.1: Segno repeat appearance: notation example 7. * The code uses deprecated voltaSpannerDuration context property Edit 12: NR 1.4.1: Segno repeat appearance: notation example 8: "Adding volta brackets to additional staves" * The code purports to show volta brackets above non-topmost staves, but the example doesn't do this: only one volta bracket appears Edit 13: NR 1.4.1: Percent repeats: notation example 9 * The code generates two programming errors: programming error: No spacing entry from DoublePercentRepeat to `right-edge' programming error: No spacing entry from DoublePercentRepeat to `right-edge' Edit 14: NR 1.4.1: Percent repeats: notation example 10 * The code generates four programming errors: programming error: No spacing entry from DoublePercentRepeat to `right-edge' programming error: No spacing entry from DoublePercentRepeat to `right-edge' programming error: No spacing entry from DoublePercentRepeat to `right-edge' programming error: No spacing entry from DoublePercentRepeat to `right-edge' Edit 15: NR 1.5.2: Automatic part comining: notation example 4: "Combining two parts on the same staff" * The code generates two warnings: warning: unterminated slur warning: unterminated slur Edit 16: NR 1.8.2: Text alignment: notation example 3 * The code generates 12 warnings: warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 Edit 17: NR 1.8.2: Text alignment: notation example 6 * The code generates 12 warnings: warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 warning: Found infinity or nan in output. Substituting 0.0 Edit 18: NR 2.1.2: Lyrics and repeats: notation example 6 * The code contains conflicting \repeat volta counts; The top staff contains \repeat volta 3; The bottom staff contains \repeat volta 2 Edit 19: NR 2.1.2: Divisi lyrics: notation example 2 * The code contains \slurDown, which appears to do nothing * The code spaces { We will _ } in a weird way Edit 20: NR 2.1.7: Setting a chant: notation example 4 * The code custom-defines divisioMinima, which appears to do nothing * The code custom-defines divisioMaior, which appears to do nothing * The code custom-defines divisioMaxima, which appears to do nothing * The code custom-defines finalis, which appears to do nothing * These are all now defined in ancient-init.ly, which is loaded automatically Edit 21: NR 2.1.7: Setting a chant: notation example 8: "Ancient notation template - modern transcription of gregorian [sic] music" * Docs spell "gregorian" with lowercase letter, which is incorrect (in English) * Code contains \set Score.timing = ##f, which appears to do nothing Edit 22: NR 2.1.7: Pointing a psalm: notations example 1, 2 and 3 * All three examples contain \left-align, which appears to do nothing Edit 23: NR 2.1.7: Phrase bar lines in hymn tunes: notation example 1 * Example contains \include "old-hundredth-example.ly", which can not be found under 2.25.19 Edit 24: NR 2.4.1: Default tablatures: notation example 11 * Example contains \consists Bend_spanner_engraver, which appears to do nothing * The markup labels ... 'hold 'pre-bend 'pre-bend-hold ... do not match the commands they annotate Edit 25: NR 2.4.1: Automatic fret diagrams: notation example 1 * The staff notation for chord 2 does not correctly illustrate the fretboard diagram for chord 2 Edit 26: NR 2.4.2: Indicating harmonics and dampened notes: notation example 3 * The code contains the following warning in a comment ... % Warning: explicit Voice instantiation is % required to have palmMuteOff work properly % when palmMuteOn comes at the beginning of % the piece. ... but this appears to be untrue Edit 27: NR 2.6.1: Fingerings: notation example 1: ``Fingering symbols for wind instruments'' * The code contains an overly complicated lambda to set TextScript.X-offset Edit 28: NR 2.9.2: Custodes: notation example 1 * The code appears correct * The problem is that the image on the LilyPond website ... https://lilypond.org/doc/v2.24/Documentation/notation/ancient-notation-_002d-common-features#custodes ... appears to truncate the tail of the custos, making the type of custos appear incorrect Edit 29: NR 2.9.3: White mensural ligatures: notation example 1 * The code contains \set Score.measureBarType = #'(), which appears to do nothing Edit 30: NR 2.9.5: Kievan contexts: notation example 1 * The code contains \cadenzaOn, which appears to do nothing Edit 31: NR 2.9.5: Kievan notes: notation example 1 * The code contains \autoBeamOff, which appears to do nothing Edit 32: NR 2.9.5: Kievan melismata: notation example 1 * The code contains \cadenzaOn, which appears to do nothing Edit 33: NR 2.9.6: Transcribing Gregorian chant: notation example 1 * The code generates three warnings: warning: the property 'self-alignment-X' must be of type 'number', ignoring invalid value '"-"' warning: the property 'self-alignment-X' must be of type 'number', ignoring invalid value '"-"' warning: unterminated hyphen; removing "concedat nobis Dominus" om -- ni -- po -- tens. Edit 34: NR 2.9.6: Transcribing Gregorian chant: notation example 2 * The code contains \set Score.timing = ##f, which appears to do nothing Edit 35: NR 2.9.6: Transcribing Gregorian chant: notation example 3 * The code contains \hide Beam, which appears to do nothing Edit 36: NR 2.9.6: Ancient and modern from one source: notation example 1 * The code contains \header { tagline = ##f }, which appears to do nothing * The code contains \set Score.timing = ##f, which appears to do nothing * The code contains \autoBeamOff, which appears to do nothing The file attached here explains each example and, where possible, suggests changes. Trevor. -- Trevor Bača www.trevorbaca.com soundcloud.com/trevorbaca
NR1-NR2-doc-edits.ly
Description: Binary data