]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge remote-tracking branch 'origin/master' into translation
authorDavid Kastrup <dak@gnu.org>
Wed, 30 Jul 2014 15:37:14 +0000 (17:37 +0200)
committerDavid Kastrup <dak@gnu.org>
Wed, 30 Jul 2014 15:37:14 +0000 (17:37 +0200)
505 files changed:
Documentation/changes.tely
Documentation/contributor/administration.itexi
Documentation/contributor/doc-work.itexi
Documentation/contributor/issues.itexi
Documentation/contributor/lsr-work.itexi
Documentation/contributor/release-work.itexi
Documentation/cs/web/community.itexi
Documentation/cs/web/manuals.itexi
Documentation/de/notation/expressive.itely
Documentation/de/notation/keyboards.itely
Documentation/de/web/community.itexi
Documentation/de/web/manuals.itexi
Documentation/es/notation/expressive.itely
Documentation/es/notation/keyboards.itely
Documentation/es/web/community.itexi
Documentation/es/web/manuals.itexi
Documentation/es/web/news.itexi
Documentation/essay/engraving.itely
Documentation/extending/programming-interface.itely
Documentation/fr/notation/expressive.itely
Documentation/fr/notation/keyboards.itely
Documentation/fr/web/community.itexi
Documentation/fr/web/manuals.itexi
Documentation/hu/web/manuals.itexi
Documentation/included/authors.itexi
Documentation/it/notation/expressive.itely
Documentation/it/web/community.itexi
Documentation/it/web/manuals.itexi
Documentation/ja/notation/expressive.itely
Documentation/ja/notation/keyboards.itely
Documentation/ja/web/community.itexi
Documentation/ja/web/manuals.itexi
Documentation/learning/fundamental.itely
Documentation/music-glossary.tely
Documentation/nl/web/manuals.itexi
Documentation/notation/ancient.itely
Documentation/notation/chords.itely
Documentation/notation/editorial.itely
Documentation/notation/expressive.itely
Documentation/notation/fretted-strings.itely
Documentation/notation/keyboards.itely
Documentation/notation/notation-appendices.itely
Documentation/notation/pitches.itely
Documentation/notation/rhythms.itely
Documentation/notation/spacing.itely
Documentation/notation/staff.itely
Documentation/notation/vocal.itely
Documentation/snippets/accordion-discant-symbols.ly
Documentation/snippets/accordion-register-symbols.ly [new file with mode: 0644]
Documentation/snippets/accordion-registers.ly [deleted file]
Documentation/snippets/adding-a-figured-bass-above-or-below-the-notes.ly
Documentation/snippets/adding-ambitus-per-voice.ly
Documentation/snippets/adding-an-extra-staff-at-a-line-break.ly
Documentation/snippets/adding-an-extra-staff.ly
Documentation/snippets/adding-an-ottava-marking-to-a-single-voice.ly
Documentation/snippets/adding-bar-lines-to-chordnames-context.ly
Documentation/snippets/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly
Documentation/snippets/adding-drum-parts.ly
Documentation/snippets/adding-extra-fingering-with-scheme.ly
Documentation/snippets/adding-fingerings-to-a-score.ly
Documentation/snippets/adding-fingerings-to-tablatures.ly
Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly
Documentation/snippets/adding-links-to-objects.ly
Documentation/snippets/adding-orchestral-cues-to-a-vocal-score.ly
Documentation/snippets/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly
Documentation/snippets/adding-the-current-date-to-a-score.ly
Documentation/snippets/adding-timing-marks-to-long-glissandi.ly
Documentation/snippets/adding-volta-brackets-to-additional-staves.ly
Documentation/snippets/additional-voices-to-avoid-collisions.ly
Documentation/snippets/adjusting-grace-note-spacing.ly
Documentation/snippets/adjusting-lyrics-vertical-spacing.ly
Documentation/snippets/adjusting-the-shape-of-falls-and-doits.ly
Documentation/snippets/aligning-and-centering-instrument-names.ly
Documentation/snippets/aligning-bar-numbers.ly
Documentation/snippets/aligning-objects-created-with-the--mark-command.ly
Documentation/snippets/aligning-syllables-with-melisma.ly
Documentation/snippets/allowing-fingerings-to-be-printed-inside-the-staff.ly
Documentation/snippets/altering-the-length-of-beamed-stems.ly
Documentation/snippets/alternative-bar-numbering.ly
Documentation/snippets/alternative-breve-notes.ly
Documentation/snippets/ambitus-with-multiple-voices.ly
Documentation/snippets/ambitus.ly
Documentation/snippets/analysis-brackets-above-the-staff.ly
Documentation/snippets/ancient-fonts.ly
Documentation/snippets/ancient-headword.ly
Documentation/snippets/ancient-notation-template----modern-transcription-of-gregorian-music.ly
Documentation/snippets/ancient-notation-template----modern-transcription-of-mensural-music.ly
Documentation/snippets/ancient-time-signatures.ly
Documentation/snippets/anglican-psalm-template.ly
Documentation/snippets/applying-note-head-styles-depending-on-the-step-of-the-scale.ly
Documentation/snippets/arabic-improvisation.ly
Documentation/snippets/asymmetric-slurs.ly
Documentation/snippets/automatic-beam-subdivisions.ly
Documentation/snippets/automatically-change-durations.ly
Documentation/snippets/automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly
Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly
Documentation/snippets/bar-chords-notation-for-guitar--with-text-spanner.ly [deleted file]
Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly [new file with mode: 0644]
Documentation/snippets/beam-endings-in-score-context.ly
Documentation/snippets/beam-grouping-in-7-8-time.ly
Documentation/snippets/beams-across-line-breaks.ly
Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.ly
Documentation/snippets/book-parts.ly
Documentation/snippets/breathing-signs.ly
Documentation/snippets/broken-crescendo-hairpin.ly
Documentation/snippets/caesura-railtracks-with-fermata.ly
Documentation/snippets/center-text-below-hairpin-dynamics.ly
Documentation/snippets/centered-measure-numbers.ly
Documentation/snippets/centering-markup-on-note-heads-automatically.ly
Documentation/snippets/changing--flageolet-mark-size.ly
Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly
Documentation/snippets/changing-beam-knee-gap.ly
Documentation/snippets/changing-beam-thickness-and-spacing.ly [new file with mode: 0644]
Documentation/snippets/changing-chord-separator.ly
Documentation/snippets/changing-form-of-multi-measure-rests.ly
Documentation/snippets/changing-fret-orientations.ly
Documentation/snippets/changing-midi-output-to-one-channel-per-voice.ly
Documentation/snippets/changing-partcombine-texts.ly
Documentation/snippets/changing-properties-for-individual-grobs.ly
Documentation/snippets/changing-stanza-fonts.ly
Documentation/snippets/changing-text-and-spanner-styles-for-text-dynamics.ly
Documentation/snippets/changing-the-ambitus-gap.ly
Documentation/snippets/changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
Documentation/snippets/changing-the-breath-mark-symbol.ly
Documentation/snippets/changing-the-chord-names-to-german-or-semi-german-notation.ly
Documentation/snippets/changing-the-default-text-font-family.ly
Documentation/snippets/changing-the-interval-of-lines-on-the-stave.ly
Documentation/snippets/changing-the-number-of-augmentation-dots-per-note.ly
Documentation/snippets/changing-the-number-of-lines-in-a-staff.ly
Documentation/snippets/changing-the-positions-of-figured-bass-alterations.ly
Documentation/snippets/changing-the-size-of-woodwind-diagrams.ly
Documentation/snippets/changing-the-staff-size.ly
Documentation/snippets/changing-the-tempo-without-a-metronome-mark.ly
Documentation/snippets/changing-the-text-for-sustain-markings.ly
Documentation/snippets/changing-the-tuplet-number.ly
Documentation/snippets/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly
Documentation/snippets/chant-or-psalms-notation.ly
Documentation/snippets/chord-glissando-in-tablature.ly
Documentation/snippets/chord-name-exceptions.ly
Documentation/snippets/chord-name-major7.ly
Documentation/snippets/chordchanges-for-fretboards.ly
Documentation/snippets/chords-headword.ly
Documentation/snippets/chords.snippet-list
Documentation/snippets/clefs-can-be-transposed-by-arbitrary-amounts.ly
Documentation/snippets/clip-systems.ly
Documentation/snippets/clusters.ly
Documentation/snippets/coloring-notes-depending-on-their-pitch.ly
Documentation/snippets/combining-dynamics-with-markup-texts.ly
Documentation/snippets/combining-two-parts-on-the-same-staff.ly
Documentation/snippets/compound-time-signatures.ly
Documentation/snippets/conducting-signs,-measure-grouping-signs.ly
Documentation/snippets/consistently-left-aligned-bar-numbers.ly
Documentation/snippets/contemporary-glissando.ly
Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly
Documentation/snippets/controlling-the-placement-of-chord-fingerings.ly
Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly
Documentation/snippets/controlling-tuplet-bracket-visibility.ly
Documentation/snippets/correction-wanted.snippet-list
Documentation/snippets/creating-a-delayed-turn.ly
Documentation/snippets/creating-a-sequence-of-notes-on-various-pitches.ly
Documentation/snippets/creating-arpeggios-across-notes-in-different-voices.ly
Documentation/snippets/creating-blank-staves.ly
Documentation/snippets/creating-cross-staff-arpeggios-in-a-piano-staff.ly
Documentation/snippets/creating-cross-staff-arpeggios-in-other-contexts.ly
Documentation/snippets/creating-double-digit-fingerings.ly
Documentation/snippets/creating-metronome-marks-in-markup-mode.ly
Documentation/snippets/creating-real-parenthesized-dynamics.ly
Documentation/snippets/creating-simultaneous-rehearsal-marks.ly
Documentation/snippets/creating-slurs-across-voices.ly
Documentation/snippets/creating-text-spanners.ly
Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly
Documentation/snippets/cross-staff-stems.ly
Documentation/snippets/cross-staff-tremolos.ly
Documentation/snippets/custodes.ly
Documentation/snippets/customizing-fretboard-fret-diagrams.ly
Documentation/snippets/customizing-markup-fret-diagrams.ly
Documentation/snippets/customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly [new file with mode: 0644]
Documentation/snippets/default-direction-of-stems-on-the-center-line-of-the-staff.ly
Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly
Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly
Documentation/snippets/demo-midiinstruments.ly
Documentation/snippets/demonstrating-all-headers.ly
Documentation/snippets/display-bracket-with-only-one-staff-in-a-system.ly
Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly
Documentation/snippets/displaying-complex-chords.ly
Documentation/snippets/displaying-grob-ancestry.ly
Documentation/snippets/dotted-harmonics.ly
Documentation/snippets/double-glissando.ly
Documentation/snippets/drawing-boxes-around-grobs.ly
Documentation/snippets/drawing-circles-around-note-heads.ly
Documentation/snippets/drawing-circles-around-various-objects.ly
Documentation/snippets/dynamics-custom-text-spanner-postfix.ly
Documentation/snippets/dynamics-text-spanner-postfix.ly
Documentation/snippets/editorial-headword.ly
Documentation/snippets/embedding-native-postscript-in-a--markup-block.ly
Documentation/snippets/engravers-one-by-one.ly
Documentation/snippets/engraving-ties-manually.ly
Documentation/snippets/engraving-tremolos-with-floating-beams.ly
Documentation/snippets/extending-a-trillspanner.ly [new file with mode: 0644]
Documentation/snippets/faking-a-hammer-in-tablatures.ly
Documentation/snippets/figured-bass-headword.ly
Documentation/snippets/fine-tuning-pedal-brackets.ly
Documentation/snippets/fingering-symbols-for-wind-instruments.ly
Documentation/snippets/fingerings,-string-indications,-and-right-hand-fingerings.ly
Documentation/snippets/flamenco-notation.ly
Documentation/snippets/flute-slap-notation.ly
Documentation/snippets/forcing-a-clef-symbol-to-be-displayed.ly
Documentation/snippets/forcing-horizontal-shift-of-notes.ly
Documentation/snippets/forcing-hyphens-to-be-shown.ly
Documentation/snippets/forcing-measure-width-to-adapt-to-metronomemarks-width.ly
Documentation/snippets/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly
Documentation/snippets/formatting-lyrics-syllables.ly
Documentation/snippets/fret-diagrams-explained-and-developed.ly
Documentation/snippets/fretboards-alternate-tables.ly
Documentation/snippets/fretted-string-harmonics-in-tablature.ly
Documentation/snippets/fretted-strings.snippet-list
Documentation/snippets/generating-random-notes.ly
Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly
Documentation/snippets/graphical-and-text-woodwind-diagrams.ly
Documentation/snippets/grid-lines--changing-their-appearance.ly
Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
Documentation/snippets/guitar-strum-rhythms.ly
Documentation/snippets/hairpins-with-different-line-styles.ly
Documentation/snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly
Documentation/snippets/hiding-the-extender-line-for-text-dynamics.ly
Documentation/snippets/how-to-change-fret-diagram-position.ly
Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly
Documentation/snippets/how-to-put-ties-between-syllables-in-lyrics.ly
Documentation/snippets/hymn-template.ly
Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly
Documentation/snippets/inserting-a-caesura.ly
Documentation/snippets/isolated-percent-repeats.ly
Documentation/snippets/keep-change-clefs-full-sized.ly
Documentation/snippets/keyboards.snippet-list
Documentation/snippets/laissez-vibrer-ties.ly
Documentation/snippets/letter-tablature-formatting.ly
Documentation/snippets/line-arrows.ly
Documentation/snippets/lyrics-alignment.ly
Documentation/snippets/makam-example.ly
Documentation/snippets/making-slurs-with-complex-dash-structure.ly
Documentation/snippets/making-some-staff-lines-thicker-than-the-others.ly
Documentation/snippets/manually-break-figured-bass-extenders-for-only-some-numbers.ly
Documentation/snippets/manually-controlling-beam-positions.ly
Documentation/snippets/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly
Documentation/snippets/markup-lines.ly
Documentation/snippets/measure-counter.ly
Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly
Documentation/snippets/modifying-default-values-for-articulation-shorthand-notation.ly
Documentation/snippets/moving-dotted-notes-in-polyphony.ly
Documentation/snippets/moving-slur-positions-vertically.ly
Documentation/snippets/multi-measure-rest-markup.ly
Documentation/snippets/nesting-staves.ly
Documentation/snippets/new/accordion-discant-symbols.ly [deleted file]
Documentation/snippets/new/accordion-registers.ly [deleted file]
Documentation/snippets/new/adding-a-figured-bass-above-or-below-the-notes.ly [deleted file]
Documentation/snippets/new/adding-extra-fingering-with-scheme.ly [deleted file]
Documentation/snippets/new/adding-orchestral-cues-to-a-vocal-score.ly [deleted file]
Documentation/snippets/new/adding-timing-marks-to-long-glissandi.ly [deleted file]
Documentation/snippets/new/alternative-bar-numbering.ly [deleted file]
Documentation/snippets/new/ancient-fonts.ly [deleted file]
Documentation/snippets/new/ancient-notation-template----modern-transcription-of-gregorian-music.ly [deleted file]
Documentation/snippets/new/bar-chords-notation-for-guitar--with-text-spanner.ly [deleted file]
Documentation/snippets/new/broken-crescendo-hairpin.ly [deleted file]
Documentation/snippets/new/centered-measure-numbers.ly [deleted file]
Documentation/snippets/new/centering-markup-on-note-heads-automatically.ly [deleted file]
Documentation/snippets/new/changing-the-tuplet-number.ly [deleted file]
Documentation/snippets/new/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly [deleted file]
Documentation/snippets/new/chant-or-psalms-notation.ly [deleted file]
Documentation/snippets/new/chords-headword.ly [deleted file]
Documentation/snippets/new/compound-time-signatures.ly [deleted file]
Documentation/snippets/new/conducting-signs,-measure-grouping-signs.ly [deleted file]
Documentation/snippets/new/creating-a-delayed-turn.ly [deleted file]
Documentation/snippets/new/creating-a-sequence-of-notes-on-various-pitches.ly
Documentation/snippets/new/creating-double-digit-fingerings.ly [deleted file]
Documentation/snippets/new/creating-real-parenthesized-dynamics.ly [deleted file]
Documentation/snippets/new/cross-staff-stems.ly [deleted file]
Documentation/snippets/new/using-an-extra-voice-for-breaks.ly [new file with mode: 0644]
Documentation/snippets/non-default-tuplet-numbers.ly
Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly
Documentation/snippets/open-string-harmonics-in-tablature.ly
Documentation/snippets/orchestra,-choir-and-piano-template.ly
Documentation/snippets/ottava-text.ly
Documentation/snippets/outputting-the-version-number.ly
Documentation/snippets/overriding-articulations-of-destinct-type.ly
Documentation/snippets/page-label.ly
Documentation/snippets/partcombine-and-autobeamoff.ly
Documentation/snippets/percent-repeat-count-visibility.ly
Documentation/snippets/percent-repeat-counter.ly
Documentation/snippets/percussion-beaters.ly
Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly
Documentation/snippets/piano-template-simple.ly
Documentation/snippets/piano-template-with-centered-lyrics.ly
Documentation/snippets/piano-template-with-melody-and-lyrics.ly
Documentation/snippets/placement-of-right-hand-fingerings.ly
Documentation/snippets/polyphony-in-tablature.ly
Documentation/snippets/positioning-arpeggios.ly
Documentation/snippets/positioning-fingering-indications-precisely.ly
Documentation/snippets/positioning-grace-note-beams-at-the-height-of-normal-note-beams.ly
Documentation/snippets/positioning-grace-notes-with-floating-space.ly
Documentation/snippets/positioning-segno-and-coda-with-line-break.ly
Documentation/snippets/positioning-text-markups-inside-slurs.ly
Documentation/snippets/preventing-extra-naturals-from-being-automatically-added.ly
Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly
Documentation/snippets/preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly
Documentation/snippets/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly [new file with mode: 0644]
Documentation/snippets/printing-bar-numbers-at-regular-intervals.ly
Documentation/snippets/printing-bar-numbers-inside-boxes-or-circles.ly
Documentation/snippets/printing-hairpins-using-al-niente-notation.ly
Documentation/snippets/printing-marks-at-the-end-of-a-line.ly
Documentation/snippets/printing-marks-on-every-staff.ly
Documentation/snippets/printing-metronome-and-rehearsal-marks-below-the-staff.ly
Documentation/snippets/printing-music-with-different-time-signatures.ly
Documentation/snippets/printing-note-names-with-and-without-an-octave-marker.ly
Documentation/snippets/printing-text-from-right-to-left.ly
Documentation/snippets/printing-the-bar-number-for-the-first-measure.ly
Documentation/snippets/proportional-strict-notespacing.ly
Documentation/snippets/putting-lyrics-inside-the-staff.ly
Documentation/snippets/quoting-another-voice.ly
Documentation/snippets/recorder-fingering-chart.ly
Documentation/snippets/removing-bar-numbers-from-a-score.ly
Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly [new file with mode: 0644]
Documentation/snippets/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly
Documentation/snippets/removing-the-first-empty-line.ly
Documentation/snippets/repeats-headword.ly
Documentation/snippets/repeats.snippet-list
Documentation/snippets/rest-styles.ly
Documentation/snippets/reverting-default-beam-endings.ly
Documentation/snippets/rhythmic-slashes.ly
Documentation/snippets/rhythms-headword.ly
Documentation/snippets/rhythms.snippet-list
Documentation/snippets/satb-choir-template---four-staves.ly
Documentation/snippets/scheme-language.snippet-list
Documentation/snippets/screech-and-boink.ly
Documentation/snippets/separating-key-cancellations-from-key-signature-changes.ly
Documentation/snippets/setting-hairpin-behavior-at-bar-lines.ly
Documentation/snippets/setting-system-separators.ly
Documentation/snippets/setting-the-double-repeat-default-for-volte.ly
Documentation/snippets/setting-the-minimum-length-of-hairpins.ly
Documentation/snippets/shortening-volta-brackets.ly
Documentation/snippets/showing-chords-at-changes.ly
Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly
Documentation/snippets/simple-lead-sheet.ly
Documentation/snippets/simultaneous-headword.ly
Documentation/snippets/single-staff-template-with-notes,-lyrics,-and-chords.ly
Documentation/snippets/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
Documentation/snippets/single-staff-template-with-notes-and-chords.ly
Documentation/snippets/single-staff-template-with-notes-and-lyrics.ly
Documentation/snippets/single-staff-template-with-only-notes.ly
Documentation/snippets/skips-in-lyric-mode-2.ly
Documentation/snippets/skips-in-lyric-mode.ly
Documentation/snippets/slides-in-tablature.ly
Documentation/snippets/snap-pizzicato-or-bartok-pizzicato.ly
Documentation/snippets/specific-notation.snippet-list
Documentation/snippets/staff-notation.snippet-list
Documentation/snippets/stand-alone-two-column-markup.ly
Documentation/snippets/stem-and-beam-behavior-in-tablature.ly
Documentation/snippets/stemlets.ly
Documentation/snippets/string-quartet-template-simple.ly
Documentation/snippets/string-quartet-template-with-separate-parts.ly
Documentation/snippets/subdividing-beams.ly
Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly
Documentation/snippets/symbols-and-glyphs.snippet-list
Documentation/snippets/syntax-and-expressions.snippet-list
Documentation/snippets/table-of-contents.ly
Documentation/snippets/text-headword.ly
Documentation/snippets/three-sided-box.ly
Documentation/snippets/tick-bar-lines.ly
Documentation/snippets/time-signature-in-parentheses---method-3.ly
Documentation/snippets/time-signature-in-parentheses.ly
Documentation/snippets/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly
Documentation/snippets/transcription-of-ancient-music-with-incipit.ly
Documentation/snippets/transposing-pitches-with-minimum-accidentals-smart-transpose.ly
Documentation/snippets/tuplet-bracket-and-change-staff.ly [new file with mode: 0644]
Documentation/snippets/tweaking-clef-properties.ly
Documentation/snippets/tweaking-grace-layout-within-music.ly
Documentation/snippets/tweaks-and-overrides.snippet-list
Documentation/snippets/use-square-bracket-at-the-start-of-a-staff-group.ly
Documentation/snippets/using-an-extra-voice-for-breaks.ly [new file with mode: 0644]
Documentation/snippets/using-arpeggiobracket-to-make-divisi-more-visible.ly
Documentation/snippets/using-autochange-with-more-than-one-voice.ly
Documentation/snippets/using-double-slurs-for-legato-chords.ly
Documentation/snippets/using-ly-grob-object-to-access-grobs-with--tweak.ly
Documentation/snippets/using-postscript-to-generate-special-note-head-shapes.ly
Documentation/snippets/using-the--tweak-command-to-tweak-individual-grobs.ly
Documentation/snippets/using-the-whiteout-property.ly
Documentation/snippets/using-ties-with-arpeggios.ly
Documentation/snippets/utf-8.ly
Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly
Documentation/snippets/vertical-line-as-a-baroque-articulation-mark.ly
Documentation/snippets/vertically-aligning-dynamics-across-multiple-notes.ly
Documentation/snippets/vertically-aligning-ossias-and-lyrics.ly
Documentation/snippets/vertically-centered-common-lyrics.ly
Documentation/snippets/vertically-centering-paired-figured-bass-extenders.ly
Documentation/snippets/vocal-ensemble-template-with-automatic-piano-reduction.ly
Documentation/snippets/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly
Documentation/snippets/vocal-ensemble-template.ly
Documentation/snippets/vocal-headword.ly
Documentation/snippets/volta-below-chords.ly
Documentation/snippets/volta-multi-staff.ly
Documentation/snippets/volta-text-markup-using-repeatcommands.ly
Documentation/snippets/wind-headword.ly
Documentation/snippets/woodwind-diagrams-listing.ly
Documentation/snippets/workaround.snippet-list
Documentation/usage/running.itely
Documentation/web/community.itexi
Documentation/web/manuals.itexi
Documentation/web/news-front.itexi
Documentation/web/news.itexi
Documentation/zh/web/community.itexi
Documentation/zh/web/manuals.itexi
ROADMAP
VERSION
input/regression/chord-name-override-text.ly
input/regression/fret-diagrams-dots.ly
input/regression/fret-diagrams-fingering.ly
input/regression/fret-diagrams-fret-label.ly
input/regression/input-order-alignment.ly [new file with mode: 0644]
input/regression/lyrics-no-notes.ly
input/regression/magnifyMusic-dots-beamlets.ly [new file with mode: 0644]
input/regression/magnifyMusic-laissez-vibrer-ties.ly [new file with mode: 0644]
input/regression/magnifyMusic-phrasing-slurs.ly [new file with mode: 0644]
input/regression/magnifyMusic-repeat-ties.ly [new file with mode: 0644]
input/regression/magnifyMusic-slurs.ly [new file with mode: 0644]
input/regression/magnifyMusic-stem-beam-spacing.ly
input/regression/magnifyMusic-ties.ly [new file with mode: 0644]
input/regression/magnifyStaff-bar-lines.ly [new file with mode: 0644]
input/regression/magnifyStaff-dots-beamlets.ly [new file with mode: 0644]
input/regression/magnifyStaff-space-alist.ly [new file with mode: 0644]
input/regression/magnifyStaff-staff-line-thickness.ly [new file with mode: 0644]
input/regression/modal-transforms.ly
input/regression/musicxml/01b-Pitches-Intervals.xml
input/regression/musicxml/02a-Rests-Durations.xml
input/regression/scheme-engraver.ly
input/regression/text-spanner-attachment-alignment.ly
input/regression/unassociated-lyrics-alignment.ly [new file with mode: 0644]
lily/align-interface.cc
lily/chord-name-engraver.cc
lily/drum-note-performer.cc
lily/dynamic-engraver.cc
lily/fingering-engraver.cc
lily/general-scheme.cc
lily/include/lily-guile.hh
lily/include/note-column.hh
lily/include/paper-column.hh
lily/include/pitch.hh
lily/include/self-alignment-interface.hh
lily/key-engraver.cc
lily/key-performer.cc
lily/lyric-engraver.cc
lily/multi-measure-rest-engraver.cc
lily/new-fingering-engraver.cc
lily/note-column.cc
lily/note-heads-engraver.cc
lily/page-layout-problem.cc
lily/paper-column.cc
lily/parser.yy
lily/percent-repeat-engraver.cc
lily/pitch-interval.cc
lily/pitch-scheme.cc
lily/self-alignment-interface.cc
lily/spanner.cc
lily/spring.cc
lily/staff-symbol-referencer-scheme.cc
lily/stem.cc
lily/stream-event-scheme.cc
lily/text-engraver.cc
ly/Welcome-to-LilyPond-MacOS.ly
ly/Welcome_to_LilyPond.ly
ly/engraver-init.ly
ly/music-functions-init.ly
po/ca.po
po/cs.po
po/de.po
po/el.po
po/eo.po
po/es.po
po/fr.po
po/it.po
po/ja.po
po/lilypond.pot
po/nl.po
python/convertrules.py
scm/bar-line.scm
scm/chord-entry.scm
scm/chord-name.scm
scm/define-context-properties.scm
scm/define-event-classes.scm
scm/define-grob-interfaces.scm
scm/define-grob-properties.scm
scm/define-grobs.scm
scm/document-backend.scm
scm/flag-styles.scm
scm/fret-diagrams.scm
scm/ly-syntax-constructors.scm
scm/modal-transforms.scm
scm/music-functions.scm
scm/output-lib.scm
scm/paper.scm
scm/tablature.scm
scm/titling.scm
scm/translation-functions.scm
scripts/auxiliar/make-countdown-announcement.sh [new file with mode: 0755]
scripts/auxiliar/makelsr.py
scripts/musicxml2ly.py

index 71320d7ea56c5fecb0540a710c69eb0cbf5a9cf0..37df7f9f75450e8fc62f7f2ab5837fad4ceb5857 100644 (file)
@@ -60,6 +60,104 @@ which scares away people.
 * only show user-visible changes.
 
 @end ignore
+@item
+The @code{thin-kern} property of the @code{BarLine} grob has been
+renamed to @code{segno-kern}.
+
+@item
+@code{KeyCancellation} grobs now ignore cue clefs (like
+@code{KeySignature} grobs do).
+
+@item
+Add support for @code{\once@tie{}\unset}
+
+@item
+It is now possible to individually color both the dots and parentheses
+in fret diagrams when using the @code{\fret-diagram-verbose} markup
+command.
+
+@lilypond[verbatim,quote,relative=1]
+\new Voice {
+  c1^\markup {
+    \override #'(fret-diagram-details . (
+                 (finger-code . in-dot))) {
+      \fret-diagram-verbose #'((mute 6)
+                               (place-fret 5 3 1 red)
+                               (place-fret 4 5 2 inverted)
+                               (place-fret 3 5 3 green)
+                               (place-fret 2 5 4 blue inverted)
+                               (place-fret 1 3 1 violet)
+                               (barre 5 1 3 ))
+    }
+  }
+  c1^\markup {
+    \override #'(fret-diagram-details . (
+                 (finger-code . below-string))) {
+      \fret-diagram-verbose #'((mute 6)
+                             (place-fret 5 3 1 red parenthesized)
+                             (place-fret 4 5 2 yellow
+                                               default-paren-color
+                                               parenthesized)
+                             (place-fret 3 5 3 green)
+                             (place-fret 2 5 4 blue )
+                             (place-fret 1 3 1)
+                             (barre 5 1 3))
+    }
+  }
+}
+@end lilypond
+
+@item
+Two new properties have been added for use in
+@code{fret-diagram-details} when using the @code{\fret-diagram-verbose}
+markup command; @code{fret-label-horizontal-offset} which affects the
+@code{fret-label-indication} and @code{paren-padding} which controls the
+space between the dot and the parentheses surrounding it.
+
+@lilypond[verbatim,quote,relative=1]
+\new Voice {
+  c1^\markup {
+    \fret-diagram-verbose #'((mute 6)
+                             (place-fret 5 3 1)
+                             (place-fret 4 5 2)
+                             (place-fret 3 5 3)
+                             (place-fret 1 6 4 parenthesized)
+                             (place-fret 2 3 1)
+                             (barre 5 2 3))
+  }
+  c1^\markup {
+    \override #'(fret-diagram-details . (
+                 (fret-label-horizontal-offset . 2)
+                 (paren-padding . 0.25))) {
+      \fret-diagram-verbose #'((mute 6)
+                               (place-fret 5 3 1)
+                               (place-fret 4 5 2)
+                               (place-fret 3 5 3)
+                               (place-fret 1 6 4 parenthesized)
+                               (place-fret 2 3 1)
+                               (barre 5 2 3))
+    }
+  }
+}
+@end lilypond
+
+@item
+A new markup command @code{\justify-line} has been added.  Similar to
+the @code{\fill-line} markup command except that instead of setting
+@emph{words} in columns, the @code{\justify-line} command balances the
+whitespace between them ensuring that when there are three or more
+words in a markup, the whitespace is always consistent.
+
+@lilypond[quote,verbatim,papersize=a6]
+\markup \fill-line {oooooo oooooo oooooo oooooo}
+\markup \fill-line {ooooooooo oooooooo oo ooo}
+@end lilypond
+
+@lilypond[quote,verbatim,papersize=a6]
+\markup \justify-line {oooooo oooooo oooooo oooooo}
+\markup \justify-line {ooooooooo oooooooo oo ooo}
+@end lilypond
+
 @item
 A new command @code{\magnifyMusic} has been added, which allows
 the notation size to be changed without changing the staff size,
@@ -74,6 +172,7 @@ while automatically scaling stems, beams, and horizontal spacing.
   \new Voice \relative {
     \voiceTwo
     \magnifyMusic 0.63 {
+      \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
       r32 c'' a c a c a c r c a c a c a c
       r c a c a c a c a c a c a c a c
     }
@@ -235,14 +334,17 @@ A new note head style for Tabulature has been added;
 @code{TabNoteHead.style = #'slash}.
 
 @item
-Four new Clefs have been added.  @emph{Double G}, @emph{Tenor G},
-@emph{Varpercussion} and @emph{varC}.
+Four new Clef glyphs have been added @emph{Double G}, @emph{Tenor G},
+@emph{Varpercussion} and @emph{varC} and their related tessitura.
 @lilypond[verbatim,quote,fragment]
   \override Staff.Clef.full-size-change = ##t
 
   \clef "GG" c c c c
   \clef "tenorG" c c c c
   \clef "varC" c c c c
+  \clef "altovarC" c c c c
+  \clef "tenorvarC" c c c c
+  \clef "baritonevarC" c c c c
   \clef "varpercussion" c c c c
 
   \break
@@ -251,6 +353,9 @@ Four new Clefs have been added.  @emph{Double G}, @emph{Tenor G},
   \clef "GG" c c c c
   \clef "tenorG" c c c c
   \clef "varC" c c c c
+  \clef "altovarC" c c c c
+  \clef "tenorvarC" c c c c
+  \clef "baritonevarC" c c c
   \clef "varpercussion" c c c c
 @end lilypond
 
index 90fe795a0cffa5b3617765afc330674f90225b64..787a0994631096bc8f891476fd93bd99467c843d 100644 (file)
@@ -1,4 +1,3 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
 @node Administrative policies
 @chapter Administrative policies
 
@@ -9,7 +8,7 @@ don't fit anywhere else.
 * Meta-policy for this document::
 * Environment variables::
 * Meisters::
-* Patchy::
+* Automated testing with Patchy::
 * Administrative mailing list::
 * Grand Organization Project (GOP)::
 * Grand LilyPond Input Syntax Standardization (GLISS)::
@@ -137,153 +136,675 @@ Currently: Francisco
 
 @end itemize
 
-@node Patchy
-@section Patchy
 
-@subheading Introduction
+@node Automated testing with Patchy
+@section Automated testing with Patchy
 
-Patchy is a set of Python scripts to automate two administrative
-tasks:
+@menu
+* Overview of Patchy::
+* Patchy requirements::
+* Installing Patchy::
+* Configuring Patchy::
+* Running the scripts::
+* Automating Patchy::
+* Troubleshooting Patchy::
+@end menu
+
+@node Overview of Patchy
+@subsection Overview of Patchy
+
+Patchy is a set of Python scripts used for testing patches or testing &
+pushing new commits added to @code{remote/origin/staging} to
+@code{remote/origin/master}.
+
+No programmatic skill is required to run either of the scripts; although
+knowledge of compiling LilyPond and its documentation along with
+understanding how to configure the @var{PATH} environment of your
+computer is required.  See @ref{Working with source code}.
+
+The two scripts that are used for each function are:
 
 @itemize
 @item
-@code{lilypond-patchy-staging.py}: checks that new commits in
-@code{staging} can compile the regtests and documentation before
-merging @code{staging} into @code{master}.
+@code{test-patches.py}. This script tests issues labelled as
+@qq{Patch-New} on the LilyPond issue tracker.  Part of the testing
+process involves running the regression tests, so this script always
+requires some human intervention in order to visually check for any
+differences that may be present after a successful test has occurred.
+
+@item
+@code{lilypond-patchy-staging.py}.  This script checks for any new
+commits in @code{remote/origin/staging}, makes sure that the new HEAD
+compiles along with all the LilyPond documentation.  Then finally
+pushing to @code{remote/origin/master}.  This script can be run and left
+unattended, requiring no human intervention.
+
+@end itemize
+
+Both of the scripts can be run independently of each other and it is not
+necessary to be able to run both.  So if you wanted to contribute to
+LilyPond development, for example by @emph{just} testing patches then
+this would still be a helpful contribution to LilyPond's development.
+
+Patchy can also be configured to send emails after each successful (or
+unsuccessful) operation.  This is not a requirement and is turned off
+by default.
+
+@c Need to explain in more detail how to set up Patchy for email but
+@c as I don't use myself it I have no experience - JL
+
+
+@node Patchy requirements
+@subsection Patchy requirements
+
+@unnumberedsubsec Testing new patches
 
-(completely automatic)
+@itemize
+
+@item
+A full local copy of the source code.  See
+@ref{Working with source code}.
 
 @item
-@code{test-patches.py}: checks that patches apply to Git @code{master},
-compile, and lets a human check that there are no big unintended
-changes to the regtests.
+All the software needed for compiling LilyPond @emph{and} the
+documentation.  Although being able to build the full set of LilyPond's
+manuals is not mandatory for testing (most) patches, part of the patch
+testing process requires that the regression tests are run and it is
+this that requires the software normally used for compiling
+documentation.  See @ref{Compiling}.
 
-(requires some human input)
+@item
+Commit access is @emph{not} required to test patches, but a valid login
+to @uref{http://code.google.com/} @emph{is}.
 
 @end itemize
 
-@subheading Installing Patchy
 
-To install Patchy, you should do the following:
+@unnumberedsubsec Testing & pushing new commits
+
+@itemize
+
+@item
+A full local copy of the source code.  See
+@ref{Working with source code}.
 
-@enumerate
 @item
-Create a new user on your box to run Patchy; this is a security
-step for your own protection.  It is recommended that this should
-not be an administrator.  New users are created from System;
-Administration; Users and Groups.
+All the software needed for compiling LilyPond @emph{and} the
+documentation.  Unlike testing patches, being able to build the full set
+of LilyPond's documentation is required to be able to test & push new
+commits.  See @ref{Compiling}.
 
 @item
-Get the Patchy scripts from
+Commit access @emph{is} required to test and push new commits, but a
+valid login to @uref{http://code.google.com/} is @emph{not}.  See
+@ref{Commit access}.
+
+@end itemize
+
+
+@node Installing Patchy
+@subsection Installing Patchy
+
+The Patchy scripts are not part of the LilyPond code base, but can be
+downloaded from @uref{https://github.com/gperciva/lilypond-extra/}.  The
+scripts and related Python libraries are all located in the
+@file{patches/} directory.
+
+Alternatively, use @code{git clone};
+
 @example
-@uref{https://github.com/gperciva/lilypond-extra/}
+git clone https://github.com/gperciva/lilypond-extra/
 @end example
-Patchy is in the @file{patches/} directory.
+
+This makes it simpler to update the scripts if any changes are ever made
+to them.  Finally, add the location of the @file{patches/} directory to
+your @var{PATH}.
+
+
+@node Configuring Patchy
+@subsection Configuring Patchy
+
+@warning{It is recommended to create a new user on your computer
+specifically to run the Patchy scripts as a security precaution and that
+this user should not have any administrative privileges.  Also do not
+set password protection for your ssh key else you will not be able to
+run the scripts unattended.}
+
+@enumerate
 
 @item
-Put the scripts and Python libraries contained in @file{patches} in a
-sensible place on your system; this can be done by appending
-@file{patches/} full path to the @var{PATH} of the user that runs
-Patchy.
+Make sure the environment variables @var{LILYPOND_GIT} and
+@var{LILYPOND_BUILD_DIR} are configured appropriately.  See
+@ref{Environment variables}.
 
 @item
-Create a new git repository with
+To save being prompted for your login and password to
+@uref{http://code.google.com/} when testing patches. create a
+@emph{plain-text} file in your Patchy user's @code{$HOME} directory
+called @code{.lilypond-project-hosting-login} containing your login and
+password, each on a separate line.
+
 @example
-git clone git://git.sv.gnu.org/lilypond.git
+joe_smith123@@gmail.com
+mYp455w0rd!
 @end example
-This will create a directory called lilypond with the repo in it.
-Make sure it's where you want it and name it lilypond-git
-(assuming you want to follow the standard naming conventions).
 
 @item
-Create environment variables @var{LILYPOND_GIT} and
-@var{LILYPOND_BUILD_DIR}, see @ref{Environment variables}.
+Manually run either the @code{test-patches.py} or
+@code{lilypond-patchy-staging.py} scripts and when prompted:
+
+@smallexample
+Warning: using default config; please edit /home/joe/.lilypond-patchy-config
+Are you sure that you want to continue with the default config? (y/[n])
+@end smallexample
+
+Answer @qq{@code{n}} and press enter.
+
+The next time either of the scripts are run they will use the
+@code{.lilypond-patchy-config} settings copied to your @code{$HOME}
+directory.
 
 @item
-Run Patchy once to set up config files, answer @q{@code{n}} when it
-asks for going on, unless the default config file happens to suit your
-setup:
+Manually edit the @file{.lilypond-patchy-config} file, located in your
+@code{$HOME} directory to change any of the default settings.
+
+@end enumerate
+
+These include:
+
+@itemize
+
+@item
+All @code{make} operations are run with;
 @example
-lilypond-patchy-staging.py
+extra_make_options = -j3 CPU_COUNT=3
 @end example
 
+See @ref{Saving time with the -j option}
+
 @item
-Edit @file{$HOME/.lilypond-patchy-config} to provide the location of
-your local lilypond Git repository, working directories for your build
-directory, your results directory, compiler options and notification
-method.  If you don't want to use email notification, then delete
-everything after @code{smtp_command:}.
+A complete build of all the LilyPond documentation is @emph{not}
+performed;
+@example
+patch_test_build_docs = no
+@end example
 
 @item
-Ensure that your new user has git push access.  Follow the
-instructions in the CG at @ref{Commit access}.  Do not set
-password protection for the key --- if you do you will not be able
-to run patchy unattended.
+Each instance of either a patch test or commit test & push is logged in;
+@example
+auto_compile_results_dir = ~/lilypond-auto-compile-results/
+@end example
 
-@end enumerate
+@item
+Both scripts will perform their build operations in;
+@example
+build_dir = /tmp/lilypond-autobuild/
+@end example
+
+@end itemize
 
-@subheading lilypond-patchy-staging.py
+Each completed patch test will also generate its own directory in
+@file{/tmp/...} labelled with the tracker issue number prefixed by
+@code{show-}.
+@example
+\tmp\show-3446
+@end example
+
+Both the scripts create clones of @code{staging} and @code{master}
+branches (prefixed with @code{test-}) with a third branch, called
+@code{test-master-lock} used as a check to protect against two or more
+instances of Patchy being run locally at the same time.
+
+
+@node Running the scripts
+@subsection Running the scripts
+
+@unnumberedsubsec Testing & pushing new commits
+
+@code{lilypond-patchy-staging.py} is run @emph{without} any arguments.
+It then checks to see if @code{remote/origin/staging} is
+@qq{further ahead} than @code{remote/origin/master}.
+
+@noindent
+If there are no new differences between the two branches since the last
+run check, the script will report something like this:
+
+@smallexample
+(UTC) Begin LilyPond compile, previous commit at 4726764cb591f622e7893407db0e7d42bcde90d9
+Success:               No new commits in staging
+@end smallexample
+
+@noindent
+If there are any differences between the two branches since the last
+run check, (or if the script cannot for any reason, locate the last
+instance of a commit that it checked) it will report something like
+this:
+
+@smallexample
+(UTC) Begin LilyPond compile, previous commit at 4726764cb591f622e7893407db0e7d42bcde90d9
+Merged staging, now at:        79e98a773b6570cfa28a15775a9dea3d3e54d6b5
+       Success:                ./autogen.sh --noconfigure
+       Success:                /tmp/lilypond-autobuild/configure --disable-optimising
+...
+@end smallexample
+
+and proceed with running @code{make}, @code{make test} and a
+@code{make doc}.  Unlike @code{test-patches.py} if all the tests pass,
+the script then pushes the changes to @code{remote/origin/master}.
+
+@smallexample
+...
+Success:               nice make clean
+Success:               nice make -j7 CPU_COUNT=7
+Success:               nice make test -j7 CPU_COUNT=7
+Success:               nice make doc -j7 CPU_COUNT=7
+To ssh://joe@@git.sv.gnu.org/srv/git/lilypond.git
+   79e98a7..4726764  test-staging -> master
+       Success:                pushed to master
+@end smallexample
+
+@warning{In the case where any of the @code{lilypond-patchy-staging.py}
+tests fail, do not try to push your own fixes but report the failures to
+the Developers List <lilypond-devel@@gnu.org> for advice.}
+
+
+@unnumberedsubsec Testing new patches
+
+When run without any argument, @code{test-patches.py} will check
+@uref{http://code.google.com/p/lilypond/issues/list} for all tracker
+issues that are marked with the label @code{Patch-new}.  It then scrapes
+the issue, looking for the last Rietveld URL entered.  It then downloads
+the patch file and applies it to @code{test-master}.
+
+Here is an example where two tracker issues labeled as @code{Patch-new}
+were detected:
+
+@smallexample
+...
+issues [4007, 4008]
+Trying issue 4007
+Found url: http://codereview.appspot.com/112210043
+Found patch: 4007,/home/joe/lilypond-git/issue112210043_1.diff,
+Trying issue 4008
+Found url: http://codereview.appspot.com/115770043
+Found patch: 4008,/home/joe/lilypond-git/issue115770043_1.diff,
+Fetching, cloning, compiling master.
+...
+@end smallexample
+
+If run no tracker items with the @var{Patch-New} label are found it will
+report:
 
-@code{lilypond-patchy-staging.py} is run with
 @example
-python lilypond-patchy-staging.py
+issues []
 @end example
-Not much appears to happen except you can see a lot of CPU gets used
-if you open System Monitor. There's not much point running
-@code{lilypond-patchy-staging.py} unless there is something in
-@code{staging} to be merged to @code{master}, however, if there's
-nothing new in @code{staging} then the script won't waste resources by
-compiling anything.
-
-The script fetches the current patches in staging and runs
-@code{make}, @code{make test} and @code{make doc} to ensure that all of
-these complete error-free. If you have set Patchy up to use email,
-it emails its results to you.  If you haven't, then you can view
-them in a logfile.  It also merges @code{staging} into @code{master}.
-
-@warning{in case the build fails, do not try to push fixes on top of
-staging branch, for details see @ref{Pushing to staging}.}
-
-When you have run Patchy a few successful times with email sending,
-you are ready for running it as a cron job. First, make sure you have
-the following in @file{$HOME/.lilypond-patchy-config} to avoid
-email flood:
+
+The script can also be run using the tracker issue number(s) as an
+argument regardless if the @var{Patch-New} label has been assigned;
 
 @example
-[notification]
-notify_non_action = no
+test-patches.py 4006
+@end example
+
+or
+
+@example
+test-patches.py 4006 3992 4020
+@end example
+
+The script then checks to see if any previously
+@code{make test-baseline}s have been generated and if the commit ID of
+@code{remote/origin/master} is different from that previously completed
+test.
+
+@noindent
+If no previous @code{make test-baseline} test is discovered or if the
+commit ID of @code{remote/origin/master} has changed, then a new
+@code{make test-baseline} will run first automatically before the patch
+is tested:
+
+This shows when the commit ID has changed:
+
+@smallexample
+...
+(UTC) Begin LilyPond compile, previous commit at       3f92dcb2c81dcd2755542b57a0a5f2039f29a211
+Merged master, now at: 4726764cb591f622e7893407db0e7d42bcde90d9
+       Success:                ./autogen.sh --noconfigure
+       Success:                /tmp/lilypond-autobuild/configure --disable-optimising
+       Success:                nice make clean
+       Success:                nice make -j3 CPU_COUNT=3
+       Success:                nice make test-baseline -j3 CPU_COUNT=3
+       Success:                nice make doc -j3 CPU_COUNT=3
+       Success:                nice make doc-clean
+...
+@end smallexample
+
+@noindent
+If a previous regression test @emph{is} discovered @emph{and} if the
+commit ID of @code{remote/origin/master} has not changed, then the patch
+will be tested against the previous @code{make test-baseline} without
+the need to re-generate a new one:
+
+@smallexample
+...
+issues [4009]
+Trying issue 4009
+Found url: http://codereview.appspot.com/110540043
+Found patch: 4009,/home/joe/lilypond-extra/patches/issue110540043_1.diff,
+Fetching, cloning, compiling master.
+(UTC) Begin LilyPond compile, previous commit at       4726764cb591f622e7893407db0e7d42bcde90d9
+       Success:                No new commits in master
+Using test baseline from previous build.
+...
+@end smallexample
+
+The patch is then applied and a @code{make} and @code{make check} are
+run.  A full @code{make doc} is also run if the
+@file{.lilypond-patchy-config} file has been edited accordingly;
+
+@smallexample
+...
+Issue 4009:
+Issue 4009: Testing patch issue110540043_1.diff
+       Success:                git apply --index /home/joe/lilypond-git/issue112210043_1.diff
+       Success:                ./autogen.sh --noconfigure
+       Success:                /tmp/lilypond-autobuild/configure --disable-optimising
+       Success:                nice make clean
+       Success:                nice make -j3 CPU_COUNT=3
+       Success:                nice make check -j3 CPU_COUNT=3
+       Success:                nice make doc -j3 CPU_COUNT=3
+...
+@end smallexample
+
+Once all the tests have run (successfully or not), the script will clean
+up from the previous patch and, if required, start testing the next
+issue;
+
+@smallexample
+...
+Issue 4007: Cleaning up
+       Success:                nice make test-clean
+       Success:                nice make doc-clean
+       Success:                nice make clean
+       Success:                git reset --hard
+Issue 4007: Done.
+Issue 4008:
+Issue 4008: Testing patch issue115770043_1_diff
+       Success:                git apply --index /home/joe/lilypond-git/issue115770043_1.diff
+       Success:                ./autogen.sh --noconfigure
+...
+@end smallexample
+
+and so on.
+
+@unnumberedsubsubsec Checking the regression test results
+
+Assuming the patch passed all the @code{make} tests, the regression
+differences will be located in the @file{/test-results/} directory
+within the build location for the patch issue number;
+
+@example
+/tmp/show-4007/test-results/
+@end example
+
+Open @file{index.html} in a browser of your choice to view any
+differences.
+
+@noindent
+Alternatively if the Firefox browser is installed, then the regression
+test results can be opened by calling the appropriate
+@file{show-regtests-} file located in the auto-compile log location;
+
+@example
+sh ~/lilypond-auto-compile-results/show-regtests-4007
+@end example
+
+See @ref{Regression tests}.
+
+@unnumberedsubsec Reporting test results
+
+Once a patch has been tested and the regression tests have been
+manually checked, the tracker can be updated manually by editing the
+tracker issue directly in the web browser or by using two additional
+python scripts that are included as part of the Patchy suite.
+
+@unnumberedsubsubsec For patches that have passed
+
+Use the @code{accept-patch.py} script and run it with the Google issue
+tracker number (not the Rietveld issue number) as an argument;
+
+@example
+accept-patch.py 4007
+@end example
+
+This will automatically update the tracker issue with the phrase
+@qq{Patchy the autobot says: passes tests.}.
+
+@noindent
+It is also possible to add additional information to the default
+message by adding a second argument within double-quote marks.
+
+@example
+accept-patch.py 4007 "This also includes a full documentation build."
+@end example
+
+The tracker issue's label is then changed automatically to
+@qq{Patch-review}.
+
+@unnumberedsubsubsec Patches that have failed
+
+Use the @code{reject-patch.py} script and run it with the Google issue
+tracker number (not the Rietveld issue number) as an argument but you
+@emph{must} also include a second argument, in double-quotes, stating
+the reason the patch has been rejected;
+
+@example
+reject-patch.py 4007 "Fails the 'make check' test."
 @end example
 
-Then, assuming Patchy run with user account @code{patchy}, write the
-following to @file{$HOME/lilypond-patchy.cron}, adapting it as
-necessary (the @code{/2} means @qq{run this every 2 hours}):
+Once the @code{reject-patch.py} script has been run, the tracker issue's
+label is changed automatically to @qq{Patch-Needs_work}.
+
+
+@node Automating Patchy
+@subsection Automating Patchy
+
+To run as a cron job make sure you have;
+
 @example
-02 0-23/2 * * * /home/patchy/git/lilypond-extra/patches/lilypond-patchy-staging.py
+[notification]
+notify_non_action = no
 @end example
 
-@warning{@code{cron} will not inherit environment variables from
-your main setup, so you must re-define any variables inside
-@file{$HOME/lilypond-patchy.cron}. For instance, @var{LILYPOND_GIT}
-may need to be defined if @var{git_repository_dir} is not correctly
-set in @file{$HOME/.lilypond-patchy-config}.}
+in @file{$HOME/.lilypond-patchy-config} to avoid any unintentional email
+flooding:
+
+Assuming that Patchy run a user @qq{patchy}, create a file called
+@file{$HOME/lilypond-patchy.cron}, adapting it as necessary (the
+@code{/2} means @qq{run this every 2 hours}):
+
+@smallexample
+02 0-23/2 * * * /home/patchy/lilypond-extra/patches/lilypond-patchy-staging.py
+@end smallexample
 
-Finally, install the cron job (you may need superuser privileges for
+@warning{@code{cron} will not inherit environment variables so you must
+re-define any variables inside @file{$HOME/lilypond-patchy.cron}.  For
+instance, @var{LILYPOND_GIT} may need to be defined if
+@var{git_repository_dir} is not correctly set in
+@file{$HOME/.lilypond-patchy-config}.}
+
+Finally, apply the cron job (you may need superuser privileges for
 this):
+
 @example
 crontab -u patchy /home/patchy/lilypond-patchy.cron
 @end example
 
-@subheading test-patches.py
-@code{test-patches.py} prepares a regtest comparison for a human to
-quickly glance at, to determine if the patch is ready for a review.
-After looking at the comparison (or the lack of a comparison in the
-case of problems), run @code{accept-patch.py} or
-@code{reject-patch.py}.
-
-Once a patch has gotten a "LGTM" from Patchy, it should be
-reviewed by relevant developers, and if it passes this, it can be
-considered for countdown (see @ref{Commits and patches}) and
-pushing to staging (see @ref{Pushing to staging}).
+
+@node Troubleshooting Patchy
+@subsection Troubleshooting Patchy
+
+The following is a list of the most common messages that the scripts
+may report with explanations.
+
+@itemize
+
+@item
+@example
+issues []
+@end example
+
+@itemize
+
+@item
+There are currently no tracker issues with the @code{Patch-New} status.
+
+@item
+If specific tracker issue number has been used as an argument when
+running @code{test-patches.py}, then the issue contains no URL to
+Rietveld.
+
+@end itemize
+
+@item
+@smallexample
+this Git revision has already been pushed by an operator other than this Patchy.
+@end smallexample
+
+@itemize
+
+@item
+Another, remote, machine has already tested and pushed the new commits
+in staging.
+
+@item
+You may also see this on your local machine if the auto-build files
+have been deleted and this computer has previously already pushed the
+listed commit ID to @code{master}.
+
+@end itemize
+
+
+
+@item
+@smallexample
+Git revision has not changed but checksum of test baseline has, must rebuild.
+@end smallexample
+
+This occurs when Patchy detects that the commit ID has not changed
+since the last test but it cannot locate the last
+@code{make test-baseline} (usually because it has been deleted or moved)
+and so a new @code{test-baseline} is rebuilt.
+
+@item
+@example
+Last patch for issue xxxx already tested or under testing
+by another Patchy instance, skipping.
+@end example
+
+@itemize
+
+@item
+There is another instance of Patchy running on your computer that is
+testing the same tracker issue.
+
+@item
+A previous test attempt was unsuccessful for some reason and the scripts
+were not able to tidy up after themselves (for example if you manually
+halt the testing process by killing it or closing the terminal you may
+have been running the script in).
+
+@noindent
+There is a hidden file located in the @code{$HOME} directory of the user
+running Patchy called @code{.lilypond-patchy-cache} that records the
+current patches that are being tested, have been tested and the commit
+ID of @code{remote/origin/master} since the last test.  It will contain
+a line like this:
+
+@example
+[3995]
+issue105560044_120001_diff = testing
+@end example
+
+for any issue that it thinks is still in the process of being tested.
+
+@noindent
+Manually remove this entry and re-run the script.
+
+@end itemize
+
+@item
+@example
+test-master-lock and PID entry exist but previous Patchy
+run (PID xxxxx) died, resetting test-master-lock anyway.
+@end example
+
+@item
+A previous test attempt was unsuccessful for some reason and the scripts
+were not able to tidy up after themselves (for example if you manually
+halt the testing process by killing it or closing the terminal you may
+have been running the script in).  The @code{test-master-lock} branch
+was therefore not able to be deleted cleanly however, nothing needs to
+be done the scripts will rebuild any tests it needs to.
+
+@item
+@example
+fatal: A branch named 'test-master-lock' already exists.
+@end example
+
+@itemize
+
+@item
+There is another instance of Patchy running on your computer that is
+testing the same tracker issue.
+
+@item
+A previous test attempt was unsuccessful for some reason and the scripts
+were not able to tidy up after themselves (for example if you manually
+halt the testing process by killing it or closing the terminal you may
+have been running the script in).  The @code{test-master-lock} branch
+was therefore not able to be deleted cleanly, in this case you must
+manually delete the @code{test-master-lock} branch in your
+@code{$LILYPOND_GIT} directory.
+
+@example
+git branch -d test-master-lock
+@end example
+
+@noindent
+It may be wise to also manually delete @code{test-master} and
+@code{test-staging} too, just to be safe.
+
+@end itemize
+
+@item
+@example
+*** FAILED STEP ***
+        merge from staging
+        Another instance (PID xxxxx) is already running.
+@end example
+
+@noindent
+This occurs when trying to run @code{lilypond-patchy-staging.py} when
+another instance of either script is already running locally.
+
+@item
+@example
+Warning: something went wrong; omitting patch for issue 3976
+@end example
+
+@itemize
+
+@item
+The Rietveld URL as listed in the tracker is incorrect (e.g. missing or
+incorrect issue number
+
+@item
+The patch on Rietveld is too large to download
+
+@end itemize
+
+@end itemize
 
 
 @node Administrative mailing list
index f0bb52e8affd176264abb1003bea3364c2c41aee..cdd069ed5dc22d3fa5d9b59cb954f4eacad63798 100644 (file)
@@ -194,7 +194,7 @@ have the @qq{docs} tag can then be easily added as a
 @emph{selected snippet} in the documentation.  It will also appear
 automatically in the Snippets lists.  See @ref{Introduction to LSR}.
 
-Snippets that @emph{don't} have the @qq{docs} tage will still be
+Snippets that @emph{don't} have the @qq{docs} tag will still be
 searchable and viewable within the LSR, but will be not be included in
 the Snippets list or be able to be included as part of the main
 documentation.
@@ -945,6 +945,18 @@ the same format as @code{@@enumerate}.  Do not use
 @node Special characters
 @unnumberedsubsubsec Special characters
 
+@warning{In Texinfo, the backslash is an ordinary character, and
+is entered without escaping (e.g.
+@samp{The@tie{}@@code@{@bs{}foo@}@tie{}command}).  However, within
+double-quoted Scheme and/or LilyPond strings, backslashes
+(including those ending up in Texinfo markup) need to be escaped
+by doubling them:
+@example
+(define (foo x)
+  "The @@code@{@bs{}@bs{}foo@} command..."
+  ...)
+@end example}
+
 @itemize
 @item
 @code{--}, @code{---} --- Create an en dash (--) or an em dash
index d534b073e45b7ecc73427ca9301e6424fbf53325..8fe73428eefb6b50f452ae211661ee47b77b943c 100644 (file)
@@ -885,38 +885,22 @@ PATCH: Countdown to 20130113
 The text of the email sets the deadline for this countdown batch.  At
 present, batches are done on Tuesday, Thursday and Sunday evenings.
 
-The body of the email lists the patches grouped by patch type, and for
-each patch, shows the tracker issue number and title, with a link to
-the Rietveld item.  Copying the information from the website and pasting
-into the email gives a hyperlinked version of the information.
-
-@smallexample
-
-For 20:00 MST Tuesday January 8:
-
-Crash:
-    Issue 2990: \RemoveEmptyStaves in StaffGroup context crashes - R 7069044
-
-Defect:
-    Issue 677: \score markup confuses paper settings - R 7028045
-    Issue 3050: displayLilyMusic produced erroneous code for rightHandFinger arguments - R 7032045
-
-Documentation:
-    Issue 2952: Upgrade documentation of \once - R 7031053
-    Issue 3044: Dual license the files under mf/ using OFL. - R 6970046
-    Issue 3084: [DOC]Add "Known issue" in NR 1.2.1 about Scaling durations with rational numbers - R 7071044
-
-Enhancement:
-    Issue 3061: make \articulate handle colon-type tremolos - R 7033045
-    Issue 3082: Patch: Let ChordNameVoice use the same performers as Voice - R 7054043
-    Issue 3083: Patch: Chord change detection in fretboards should depend on placements, not notes - R 7062043
-    Issue 2983: assertion failed with \glissando - R 6625078
+To create the countdown announcement, use the
+@code{make-countdown-announcement.sh} script, which takes the
+deadline date, and optionally your name.  Follow the instructions
+provided:
 
+@example
+cd $LILYPOND_BUILD_DIR
+../scripts/auxiliar/make-countdown-announcement.sh "Jan 1, 2001" James
+@end example
 
-Cheers,
-Colin
+The script produces an announcement that is easily readable in all
+email clients.  Also, whenever a new contributor submits a patch,
+you will be prompted to add the new username and author name to
+the script itself, and then commit those changes to the main git
+repository.
 
-@end smallexample
 
 @item
 On the scheduled countdown day, the Patch Meister reviews the
index 6e134ea1eb23f205ce97a9ead9ae2a0d923f2afa..31bf9c4168654f90690832625d3a08716550513e 100644 (file)
@@ -17,7 +17,7 @@
 @section Introduction to LSR
 
 The
-@uref{http://lsr.dsi.unimi.it/, LilyPond Snippet Repository (LSR)}
+@uref{http://lsr.di.unimi.it/, LilyPond Snippet Repository (LSR)}
 is a collection of lilypond examples.  A subset of these examples
 are automatically imported into the documentation, making it easy
 for users to contribute to the docs without learning Git and
@@ -31,7 +31,7 @@ Texinfo.
 
 When you create (or find!) a nice snippet, if it is supported by
 the LilyPond version running on the LSR, please add it to the LSR.
-Go to @uref{http://lsr.dsi.unimi.it/, LSR} and log in -- if you haven't
+Go to @uref{http://lsr.di.unimi.it/, LSR} and log in -- if you haven't
 already, create an account.  Follow the instructions on the website.
 These instructions also explain how to modify existing snippets.
 
@@ -108,7 +108,7 @@ filename.
 @section Approving snippets
 
 The main task of LSR editors is approving snippets.  To find a list of
-unapproved snippets, log into @uref{http://lsr.dsi.unimi.it/, LSR} and
+unapproved snippets, log into @uref{http://lsr.di.unimi.it/, LSR} and
 select @qq{No} from the dropdown menu to the right of the word
 @qq{Approved} at the bottom of the interface, then click
 @qq{Enable filter}.
@@ -198,7 +198,7 @@ Next, download the updated snippets and run @command{makelsr.py}
 against them.  From the top source directory, run:
 
 @smallexample
-wget http://lsr.dsi.unimi.it/download/lsr-snippets-docs-`date +%F`.tar.gz
+wget http://lsr.di.unimi.it/download/lsr-snippets-docs-`date +%F`.tar.gz
 tar -xzf lsr-snippets-docs-`date +%F`.tar.gz
 make -C $LILYPOND_BUILD_DIR
 scripts/auxiliar/makelsr.py lsr-snippets-docs-`date +%F`
@@ -360,7 +360,7 @@ updating the binary running the LSR.
 
 @item
 Download the latest snippet tarball from
-@uref{http://lsr.dsi.unimi.it/download/} and extract it.
+@uref{http://lsr.di.unimi.it/download/} and extract it.
 The relevant files can be found in the @file{all} subdirectory.
 Make sure your shell is using an English language version, for
 example @code{LANG=en_US}, then run @command{convert-ly} on all
index 4dc75330d8203b9caec327d4cdc7b39c925968d0..8227763e40d08f819ede3f958451a49aba6c6736 100644 (file)
@@ -76,9 +76,40 @@ A @qq{minor release} means an update of @code{y} in @code{2.x.y}.
 
 @item
 Using any system with git pull access (not necessarily the GUB
-build machine), use the commands below to switch to the release
-branch, get changes and prepare the release
-announcement.  This requires a system which has the release/unstable
+build machine), use the commands below to do the following:
+
+@itemize
+@item
+switch to the release branch
+
+@item
+update the release branch from origin/master
+
+@item
+update the translation files
+
+@item
+create the release announcement
+
+@item
+update the build versions.
+
+@itemize
+@item
+VERSION_DEVEL = the current development version (previous VERSION_DEVEL + 0.01)
+
+@item
+VERSION_STABLE = the current stable version (probably no change here)
+
+@end itemize
+
+@item
+update the @qq{Welcome to Lilypond} version numbers to the version about to be
+released
+
+@end itemize
+
+This requires a system which has the release/unstable
 branch.  If you get a warning saying you are in @code{detached HEAD}
 state, then you should create a release/unstable branch with
 @code{git checkout release/unstable}.
@@ -98,22 +129,9 @@ make -C $LILYPOND_BUILD_DIR po-replace
 mv $LILYPOND_BUILD_DIR/po/lilypond.pot po/
 gedit Documentation/web/news-front.itexi Documentation/web/news.itexi
 gedit VERSION
+gedit ly/Wel*.ly
 @end example
 
-@itemize
-@item
-VERSION_DEVEL = the current development version (previous VERSION_DEVEL + 0.01)
-
-@item
-VERSION_STABLE = the current stable version (probably no change here)
-
-@end itemize
-
-@item
-Manually edit the two files @file{../ly/Welcome_to_LilyPond.ly} and
-@file{../ly/Welcome-to-LilyPond-MacOS.ly} such that the hard coded
-@code{\version} number reflects the version number about to be released.
-
 @item
 Commit, push, switch back to master (or wherever else):
 
@@ -123,6 +141,7 @@ git commit -m "Release: bump VERSION_DEVEL." ly/Welcome_to_LilyPond.ly
 git commit -m "Release: bump VERSION_DEVEL." ly/Welcome-to-LilyPond-MacOS.ly
 git commit -m "PO: update template." po/lilypond.pot
 git commit -m "Release: update news." Documentation/web/
+git commit -m "Release: bump Welcome versions." ly/Wel*.ly
 git push origin HEAD:release/unstable
 git checkout master
 @end example
index c4e37ed8d74e67f7d629497f8bf22699c68e2d77..07b0065088559c62db1cd3c1421db7c0b4ac6e85 100644 (file)
@@ -127,7 +127,7 @@ dílech.  Podívejte se, co vytvořili jiní lidé a napište své vlastní
 příklady!
 
 @example
-@uref{http://lsr.dsi.unimi.it}
+@uref{http://lsr.di.unimi.it}
 @end example
 
 Obzvláště poučné příklady z LSR jsou zahrnuty v naší
index 376a6996d298cd9ff4954201948ad82a5c8bdfe2..021fb99b63c4ac2b2ad13dadd23169cc333282ab 100644 (file)
@@ -320,7 +320,7 @@ tento dokument přečíst, dříve než si člověk začne myslet na větší pr
 
 Zde jsou vybrané úryvky ukázány na kódu LilyPondu s vytvořeným notovým
 zápisem.  Úryvky pocházejí z
-@uref{http://lsr@/.dsi@/.unimi@/.it,Skladiště s úryvky LilyPondu}
+@uref{http://lsr@/.di@/.unimi@/.it,Skladiště s úryvky LilyPondu}
 (LSR) a všechny se nacházejí pod Public Domain.
 
 Vezměte na vědomí, že tento dokument nepředstavuje žádnou určitou
index 46429221957295fd662e92c3ac835260a2b51fd0..7dafb65025ff9652ebf06b5da48ffdd68553efbc 100644 (file)
@@ -1166,7 +1166,7 @@ Besondere Arpeggios mit Klammern können erstellt werden:
 @end lilypond
 
 Die @code{dash}-Eigenschaft der Arpeggioklammern werden von
-der @code{'dash-details}-Eigenschaft kontrolliert, die
+der @code{'dash-definition}-Eigenschaft kontrolliert, die
 beschrieben ist in @ref{Legatobögen}.
 
 Ein Arpeggio kann auch explizit ausgeschrieben werden, indem
index eb262ad22122ef581fc6dd58cf64be22a66169e1..d140dbf62d1b28ba491c7c7a513840899cfa4058 100644 (file)
@@ -130,7 +130,7 @@ können, sind demonstriert in
 @c @snippets
 @c @lilypondfile[verbatim,quote,texidoc,doctitle]
 @c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\Staff \RemoveEmptyStaves.ly}
-@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312
+@c http://lsr.di.unimi.it/LSR/Item?u=1&id=312
 
 
 @seealso
index 8b68907ace7b0e1a08486c5c790307dc8ea9d459..86c3779bdd35825252d24fffb031775b8d60d84d 100644 (file)
@@ -139,7 +139,7 @@ dürfen.  Schauen Sie, was andere Leute konstruiert haben und schreiben Sie
 eigene Beispiele!
 
 @example
-@uref{http://lsr.dsi.unimi.it}
+@uref{http://lsr.di.unimi.it}
 @end example
 
 Besonders lehrreiche Beispiele aus dem LSR werden in unsere offizielle
index d236a6f28955938cbfdc204c1961042a73ee97ac..08b451f84dbe589f428ff3eec38e606ae1b41ca5 100644 (file)
@@ -137,7 +137,7 @@ vorhergehende stabile Versionen und die aktuelle Version als komprimiertes Archi
 der Übersetzungsstatus für nicht Nicht-Englischsprachige.
 
 @item
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}:
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}:
 Beispiele, Tricks und Tipps, von LilyPond-Benutzern erstellt.
 
 @item
@@ -327,7 +327,7 @@ in Angriff nimmt.
 
 Hier werden ausgewählte Schnipsel an LilyPond-Code mit der produzierten
 Notation gezeigt.  Die Schnipsel stammen aus dem
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond-Schnipsel-Depot}
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond-Schnipsel-Depot}
 (LSR) und stehen alle unter der Public Domain.
 
 Beachten Sie, dass dieses Dokument keine bestimmte Teilmenge von
index 7dfba42e5a4c58ee3b23546895bf070d101abf87..07b8868e6efbe7059936300758ee396d365e194d 100644 (file)
@@ -491,7 +491,7 @@ texto e indicaciones de pedal de piano.
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {printing-hairpins-using-al-niente-notation.ly}
 
-@cindex Ferneyhough, reguladores de 
+@cindex Ferneyhough, reguladores de
 @cindex reguladores de Ferneyhough
 @cindex reguladores acampanados
 @cindex acampanados, reguladores
@@ -1260,8 +1260,8 @@ Se pueden crear símbolos especiales de arpegio @emph{con corchete}:
 @end lilypond
 
 Las propiedades de discontinuidad del paréntesis del arpegio se
-controlan mediante la propiedad @code{'dash-details}, que se describe
-en @ref{Ligaduras de expresión}.
+controlan mediante la propiedad @code{'dash-definition}, que se
+describe en @ref{Ligaduras de expresión}.
 
 Los acordes arpegiados se pueden desarrollar explícitamente utilizando
 @notation{ligaduras de unión}.  Véase @ref{Ligaduras de unión}.
index ef4962d579ec86537f4c9b5608bfbde2949aecca..f512aebf7316f90efaa2342b6e9a772be564265e 100644 (file)
@@ -119,7 +119,7 @@ se cruzan entre voces, como se explica en @rlearning{Otras aplicaciones de los t
 @c @snippets
 @c @lilypondfile[verbatim,quote,texidoc,doctitle]
 @c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly}
-@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312
+@c http://lsr.di.unimi.it/LSR/Item?u=1&id=312
 
 @seealso
 Manual de aprendizaje:
@@ -618,7 +618,7 @@ ejecución.
 @snippets
 
 @lilypondfile[verbatim,quote,texidoc,doctitle]
-{accordion-registers.ly}
+{accordion-register-symbols.ly}
 
 @seealso
 Fragmentos de código:
index 2def991e76784144cfbc41c81e2126f754ba9d6d..d97742d08f59fe423afe44ee9662003a9d85e3ce 100644 (file)
@@ -136,7 +136,7 @@ y usar libremente en sus propias obras.  ¡Vea las cosas que otros han
 escrito, y añada las suyas propias!
 
 @example
-@uref{http://lsr.dsi.unimi.it}
+@uref{http://lsr.di.unimi.it}
 @end example
 
 Los ejemplos del LSR que son especialmente instructivos se incluyen en
index b83f0fd9899a48ab98e2ada8445925182917631d..e4648d8266bcba188a871ac2355e4aa3f3a07575 100644 (file)
@@ -132,7 +132,7 @@ Versiones estables anteriores y versión actual como un archivo comprimido.
 estado del proceso de traducción para los lectores no anglófonos.
 
 @item
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository (el almacén de fragmentos de código de LilyPond)}:
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository (el almacén de fragmentos de código de LilyPond)}:
 ejemplos, consejos y trucos creados por los usuarios.
 
 @item
@@ -340,7 +340,7 @@ su lectura antes de afrontar proyectos grandes.
 
 Este manual presenta un conjunto seleccionado de fragmentos de código
 de LilyPond extraídos del
-@uref{http://lsr@/.dsi@/.unimi@/.it,Repositorio de fragmentos de
+@uref{http://lsr@/.di@/.unimi@/.it,Repositorio de fragmentos de
 código de LilyPond} (LSR).  Todos los fragmentos se encuentran en el
 dominio público.
 
index 4883a59c92b0ddcd98db934b80f8922effa20bee..905a701380afca59c6558a63d4567f2af008c940 100644 (file)
@@ -4370,7 +4370,7 @@ file and download @ref{Descargas antiguas}!
 
 @newsItem
 @subsubheading February 26, 2005
-The @uref{http://lsr.dsi.unimi.it/,Lilypond Snippet
+The @uref{http://lsr.di.unimi.it/,Lilypond Snippet
 Repository (LSR)} is a searchable database of Lilypond code
 snippets.  You can add snippets too, so join the LSR project, and
 contribute creative ideas for using Lilypond.
index 5040f2771b64d67fffad9e73b2fa46626789700a..5136a331e04fc3174a33372d598dd12979c9a39b 100644 (file)
@@ -447,13 +447,9 @@ magnified by 236% to print at the same size as the previous example:
 At smaller sizes, LilyPond uses proportionally heavier lines so the
 music will still read well.
 
-@ignore
 This also allows staves of different sizes to coexist peacefully when
 used together on the same page:
 
-@c TODO: are the stems in this example the right thickness? How should
-@c line weights be scaled for small staves?
-
 @c Grieg's Violin Sonata Op. 45
 @lilypond[indent=1.5cm]
 global = {
@@ -464,9 +460,7 @@ global = {
 \score {
   <<
     \new Staff \with {
-      fontSize = #-4
-      \override StaffSymbol.staff-space = #(magstep -4)
-      \override StaffSymbol.thickness = #(magstep -3)
+      \magnifyStaff #2/3
     }
     \relative c' {
       \global
@@ -503,7 +497,7 @@ global = {
   >>
 }
 @end lilypond
-@end ignore
+
 
 @node Why work so hard?
 @unnumberedsubsec Why work so hard?
index 3494a5fdd1fff9747d7b6cea26772bb5b7c66937..9c4cbe7805fd2eace8878c056101853a9f15ffc7 100644 (file)
@@ -336,32 +336,32 @@ Installed Files:
 
 @node Music function usage
 @subsection Music function usage
-Music functions may currently be used in several places.  Depending on
-where they are used, restrictions apply in order to be able to parse
-them unambiguously.  The result a music function returns must be
-compatible with the context in which it is called.
+A @q{music function} has to return an expression matching the predicate
+@code{ly:music?}.  This makes music function calls suitable as arguments
+of type @code{ly:music?} for another music function call.
+
+When using a music function call in other contexts, the context may
+cause further semantic restrictions.
 
 @itemize
 @item
-At top level in a music expression.  No restriction apply here.
+At the top level in a music expression a post-event is not accepted.
 
 @item
-As a post-event, explicitly started with a direction indicator (one of
-@code{-}, @code{^}, @w{and @code{_}}).
-
-In this case, you can't use an @emph{open} music expression as the last
-argument, one that would end with a music expression able to accept
-additional postevents.
+When a music function (as opposed to an event function) returns an
+expression of type post-event, LilyPond requires one of the named
+direction indicators (@code{-}, @code{^}, @w{and @code{_}})) in order to
+properly integrate the post-event produced by the music function call
+into the surrounding expression.
 
 @item
-As a chord constituent.  The returned expression must be of
+As a chord constituent.  The returned expression must be of a
 @code{rhythmic-event} type, most likely a @code{NoteEvent}.
 @end itemize
 
 @noindent
-The special rules for trailing arguments make it possible to write
-polymorphic functions like @code{\tweak} that can be applied to
-different constructs.
+@q{Polymorphic} functions, like @code{\tweak}, can be applied to
+post-events, chord constituent and top level music expressions.
 
 @node Simple substitution functions
 @subsection Simple substitution functions
@@ -1135,25 +1135,137 @@ This new markup list command can be used as follows:
 
 @cindex calling code during interpreting
 @funindex \applyContext
+@funindex make-apply-context
+@funindex ly:context-property
+@funindex ly:context-set-property!
+@funindex ly:context-grob-definition
+@funindex ly:assoc-get
+@funindex ly:context-pushpop-property
+
+Contexts can be modified during interpretation with Scheme code.
+In a LilyPond code block, the syntax for this is:
 
-Contexts can be modified during interpretation with Scheme code.  The
-syntax for this is
 @example
 \applyContext @var{function}
 @end example
 
+In Scheme code, the syntax is:
+
+@example
+(make-apply-context @var{function})
+@end example
+
 @code{@var{function}} should be a Scheme function that takes a
 single argument: the context in which the @code{\applyContext}
-command is being called.  The following code will print the
-current bar number on the standard output during the compile:
+command is being called.  The function can access as well as
+override/set grob properties and context properties.  Any actions
+taken by the function that depend on the state of the context are
+limited to the state of the context @emph{when the function is
+called}.  Also, changes effected by a call to @code{\applyContext}
+remain in effect until they are directly modified again, or
+reverted, even if the initial conditions that they depended on
+have changed.
+
+The following scheme functions are useful when using
+@code{\applyContext}:
 
-@example
+@table @code
+@item ly:context-property
+look up a context property value
+
+@item ly:context-set-property!
+set a context property
+
+@item ly:context-grob-definition
+@itemx ly:assoc-get
+look up a grob property value
+
+@item ly:context-pushpop-property
+do a @code{\temporary@tie{}\override}
+or a @code{\revert} on a grob property
+@end table
+
+
+The following example looks up the current @code{fontSize} value, and
+then doubles it:
+
+@lilypond[quote,verbatim]
+doubleFontSize =
 \applyContext
-  #(lambda (x)
-    (format #t "\nWe were called in barnumber ~a.\n"
-     (ly:context-property x 'currentBarNumber)))
-@end example
+  #(lambda (context)
+     (let ((fontSize (ly:context-property context 'fontSize)))
+       (ly:context-set-property! context 'fontSize (+ fontSize 6))))
+
+{
+  \set fontSize = -3
+  b'4
+  \doubleFontSize
+  b'
+}
+@end lilypond
+
 
+The following example looks up the current colors of the
+@code{NoteHead}, @code{Stem}, and @code{Beam} grobs, and then changes
+each to a less saturated shade.
+
+@lilypond[quote,verbatim]
+desaturate =
+\applyContext
+  #(lambda (context)
+     (define (desaturate-grob grob)
+       (let* ((grob-def (ly:context-grob-definition context grob))
+              (color (ly:assoc-get 'color grob-def black))
+              (new-color (map (lambda (x) (min 1 (/ (1+ x) 2))) color)))
+         (ly:context-pushpop-property context grob 'color new-color)))
+     (for-each desaturate-grob '(NoteHead Stem Beam)))
+
+\relative g' {
+  \time 3/4
+  g8[ g] \desaturate g[ g] \desaturate g[ g]
+  \override NoteHead.color = #darkred
+  \override Stem.color = #darkred
+  \override Beam.color = #darkred
+  g[ g] \desaturate g[ g] \desaturate g[ g]
+}
+@end lilypond
+
+
+This also could be implemented as a music function, in order to
+restrict the modifications to a single music block.  Notice how
+@code{ly:context-pushpop-property} is used both as a
+@code{\temporary@tie{}\override} and as a @code{\revert}:
+
+@lilypond[quote,verbatim]
+desaturate =
+#(define-music-function
+   (parser location music) (ly:music?)
+   #{
+     \applyContext
+     #(lambda (context)
+        (define (desaturate-grob grob)
+          (let* ((grob-def (ly:context-grob-definition context grob))
+                 (color (ly:assoc-get 'color grob-def black))
+                 (new-color (map (lambda (x) (min 1 (/ (1+ x) 2))) color)))
+            (ly:context-pushpop-property context grob 'color new-color)))
+        (for-each desaturate-grob '(NoteHead Stem Beam)))
+     #music
+     \applyContext
+     #(lambda (context)
+        (define (revert-color grob)
+          (ly:context-pushpop-property context grob 'color))
+        (for-each revert-color '(NoteHead Stem Beam)))
+   #})
+
+\relative g' {
+  \override NoteHead.color = #darkblue
+  \override Stem.color = #darkblue
+  \override Beam.color = #darkblue
+  g8 a b c
+  \desaturate { d c b a }
+  g b d b g2
+}
+@end lilypond
 
 
 @node Running a function on all layout objects
@@ -1265,21 +1377,21 @@ can by found in the Internals Reference or the file 'define-grobs.scm':
 
 If routines with multiple arguments must be called, the current grob
 can be inserted with a grob closure.  Here is a setting from
-@code{AccidentalSuggestion},
+@code{RehearsalMark},
 
 @example
 `(X-offset .
-  ,(ly:make-simple-closure
-    `(,+
+   ,(ly:make-simple-closure
+     `(,+
+        ,(ly:make-simple-closure
+          (list ly:break-alignable-interface::self-align-callback))
         ,(ly:make-simple-closure
-           (list ly:self-alignment-interface::centered-on-x-parent))
-      ,(ly:make-simple-closure
-           (list ly:self-alignment-interface::x-aligned-on-self)))))
+          (list ly:self-alignment-interface::x-aligned-on-self)))))
 @end example
 
 @noindent
-In this example, both @code{ly:self-alignment-interface::x-aligned-on-self} and
-@code{ly:self-alignment-interface::centered-on-x-parent} are called
+In this example, both @code{ly:break-alignable-interface::self-align-callback} and
+@code{ly:self-alignment-interface::x-aligned-on-self} are called
 with the grob as argument.  The results are added with the @code{+}
 function.  To ensure that this addition is properly executed, the whole
 thing is enclosed in @code{ly:make-simple-closure}.
index d876d99f986e86eb11e4b94b278c75ece51c2dba..664ca80e34718f471134e687a98e02340462f05e 100644 (file)
@@ -1251,8 +1251,8 @@ arpégé :
 @end lilypond
 
 Les indications d'arpeggio peuvent se présenter sous la forme de ligne
-discontinue à l'aide de la propriété  @code{'dash-details}.  Pour plus
-de détails à ce propos, consultez @ref{Liaisons d'articulation}.
+discontinue à l'aide de la propriété  @code{'dash-definition}.  Pour
+plus de détails à ce propos, consultez @ref{Liaisons d'articulation}.
 
 Un arpège peut parfois s'écrire de manière explicite, à l'aide de
 liaisons de tenue.  Pour plus d'information, voir
index 5f0075d66a5a1ba794e96b4433d36cce480947bd..8bbdaf0b0b0415495113c85ad4daa689034b0d92 100644 (file)
@@ -607,7 +607,7 @@ pour exécuter un morceau.
 
 @snippets
 @lilypondfile[verbatim,quote,texidoc,doctitle]
-{accordion-registers.ly}
+{accordion-register-symbols.ly}
 
 @seealso
 Morceaux choisis :
index 4d7ae628d9f98daa04f29d5bddb75b9d7c8b65bd..75f3e5913cc92520fa3fa15178be283e0d5c5987 100644 (file)
@@ -147,7 +147,7 @@ Ils sont librement réutilisables dans vos propres travaux.  N'hésitez
 pas à apporter votre concours à cette banque de trucs et astuces !
 
 @example
-@uref{http://lsr.dsi.unimi.it}
+@uref{http://lsr.di.unimi.it}
 @end example
 
 Un certain nombre d'exemples issus du LSR et particulièrement pertinents
index 67097dab1aa0656f81cbd6bbc1e5090b6ba3be8a..ced9d07b6ce805803da6a514bb4d7f766ea3aaad 100644 (file)
@@ -145,7 +145,7 @@ versions.
 état des traductions pour les lecteurs non anglophones.
 
 @item
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} :
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository} :
 collection d'exemples, trucs et astuces élaborés par des utilisateurs.
 
 @item
@@ -356,7 +356,7 @@ recommandée avant d'aborder de grands projets.
 
 Il s'agit d'une sélection de petits exemples montrant des trucs,
 astuces et fonctionnalités particulières de LilyPond, issus de
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}
 (LSR).  Tous ces exemples sont dans le domaine public.
 
 Notez bien que cette annexe n'est en aucune manière un miroir ou même
index bf052b46caa227b6eb8ab6679cf40237158cb7a2..c63a76cc38d090d494b7b2d436e1048b91c6a7b9 100644 (file)
@@ -313,7 +313,7 @@ Ajánlott elolvasni, mielőtt nagy művek bevitelébe kezd az ember.
 @subheading Kódrészletek
 
 Ez egy válogatás a
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Kódrészletek Tárházából}.
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Kódrészletek Tárházából}.
 Minden kódrészlet közkincs.
 
 A kottaírás kézikönyvének megfelelő szakaszaiban is találhatóak ilyenek a
index fa67b32769a47c1fd1e406d8565710b2bbb9a22d..8d8db69c3e61c7506ba1fbd3c5824aedd7e4788e 100644 (file)
@@ -83,6 +83,9 @@ Main author
 @uref{http://AvatarAcademy.nl},
 Main author
 
+@item Mark Polesky:
+Documentation, Code cleanup
+
 @item Mike Solomon:
 @email{mike@@mikesolomon.org},
 Core developer, Frog meister
@@ -139,9 +142,6 @@ SVG guru, bug squad member, bug squasher, text handling
 @uref{http://percival-music.ca},
 Bug meister, Grand Documentation Project leader
 
-@item Mark Polesky:
-Assistant documentation editor, Code cleanup
-
 @item Neil Puttock:
 Core developer
 
@@ -171,8 +171,11 @@ LSR editor and Bug squad member
 
 Aleksandr Andreev,
 Frédéric Bron,
-Torsten Hämmerle ,
+Torsten Hämmerle,
+Rutger Hofmann,
 Marc Hohl,
+Felix Janda,
+Thomas Klausner,
 James Lowe,
 Andrew Main,
 Thomas Morley,
@@ -266,6 +269,7 @@ Federico Bruni,
 Luca Rossetto Casel,
 Felipe Castro,
 Pavel Fric,
+Walter Garcia-Fontes,
 Jean-Charles Malahieude,
 Till Paala,
 Yoshiki Sawada
index 86e9ad2b7abce30ef013477257bf46d1163aa059..bb360d6be81f3a3587412e25cc4259ddf1932ded 100644 (file)
@@ -1212,7 +1212,7 @@ Si possono creare simboli di arpeggio speciali @emph{in forma di parentesi}:
 @end lilypond
 
 Le proprietà del tratteggio della parentesi dell'arpeggio sono regolate
-dalla proprietà @code{'dash-details}, descritta in @ref{Slurs}.
+dalla proprietà @code{'dash-definition}, descritta in @ref{Slurs}.
 
 Gli arpeggi possono essere scritti in modo esplicito con le legature di
 valore.  Per maggiori dettagli si veda @ref{Ties}.
index 4737b5c964061e3471ba9ef5480601fb431859a0..2f6d65a2317d4d13c1a313b4fcc9771ccffe47e3 100644 (file)
@@ -136,7 +136,7 @@ usati nei tuoi lavori.  Guarda quello che hanno scritto altre persone,
 e aggiungi i tuoi esempi!
 
 @example
-@uref{http://lsr.dsi.unimi.it}
+@uref{http://lsr.di.unimi.it}
 @end example
 
 Esempi particolarmente istruttivi provenienti dal LSR sono inclusi nella
index 15761b230c2943a71b6aa9b2fe2bc40e31b7fe95..0a83725e44eaf8cc64368360a710b98f7bdf2149 100644 (file)
@@ -126,7 +126,7 @@ versioni stabili precedenti e quella attuale in un archivio compresso.
 stato delle traduzioni per i lettori di lingua non inglese.
 
 @item
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}:
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}:
 esempi, consigli e trucchi creati dagli utenti.
 
 @item
@@ -329,7 +329,7 @@ intraprendere un progetto impegnativo.
 @subheading Frammenti
 
 Questo manuale presenta una selezione di frammenti di codice LilyPond tratti dal
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}
 (LSR).  Tutti i frammenti di codice sono nel pubblico dominio.
 
 Si prega di notare che questo documento non è un sottoinsieme esatto del LSR.  LSR
index 97973e4d2b0087726716eaa972e4f5946e2077a4..fd3d755797100534015d2ed3f3387b10e8fc033e 100644 (file)
@@ -1229,9 +1229,9 @@ c1\glissando |
 <c e g c>2\arpeggio
 @end lilypond
 
-括弧スタイルのアルペジオの破線プロパティは @code{'dash-details} プロパティで@c
+括弧スタイルのアルペジオの破線プロパティは @code{'dash-definition} プロパティで@c
 制御します。@c
-@code{'dash-details} プロパティについては @ref{スラー} で説明しています。
+@code{'dash-definition} プロパティについては @ref{スラー} で説明しています。
 
 アルペジオをタイを用いて明示的に描き出すことができます。@c
 詳細は @ref{タイ} を参照してください。
index 9827d26632d3a79b1a96b54ebb67a8864c731148..3822d009b0f2f81ebf4f75ac29ed35e25aef1ea1 100644 (file)
 @c @snippets
 @c @lilypondfile[verbatim,quote,texidoc,doctitle]
 @c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly}
-@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312
+@c http://lsr.di.unimi.it/LSR/Item?u=1&id=312
 
 @seealso
 学習マニュアル:
index d196af2d1cc30513021d8a2aa9e238fcd3a14b75..54fc3582007a883fc91fac95d88df48ee5831efb 100644 (file)
@@ -131,7 +131,7 @@ LilyPond コード断片リポジトリ (LSR) はユーザが投稿した例の@
 他の人が書いた楽譜を見て、あなた自身も投稿してください!
 
 @example
-@uref{http://lsr.dsi.unimi.it}
+@uref{http://lsr.di.unimi.it}
 @end example
 
 LSR から、@c
index 1d63b8ffd04712de0946003af8d55dca6d40ddf5..386d24b1435a87b3ec8f44436040ca715a3433e5 100644 (file)
@@ -123,7 +123,7 @@ LilyPond は @strong{テキスト ベース} の楽譜作成プログラムで
 非英語圏の読者のための翻訳状況。
 
 @item
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}:
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}:
 ユーザが作成した例、ヒント、それに TIPS。
 
 @item @ref{Development}:
@@ -305,7 +305,7 @@ LilyPond 記譜法を他のプログラムと統合する方法について説
 @divClass{column-left-top}
 @subheading コード断片集
 
-これは @uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond コード断片リポジトリ}
+これは @uref{http://lsr@/.di@/.unimi@/.it,LilyPond コード断片リポジトリ}
 (LSR) から選び出した LilyPond のコード断片集です。@c
 LSR にあるすべてのコード断片はパブリック ドメインにあります
 (公開されています)。
index 60e67ee1358a51eb8b88b5100d5ca4cff4a71150..c64af67ed473d7116901149afe108c447848a065 100644 (file)
@@ -3060,9 +3060,6 @@ violin = \relative c'' @{
 @}
 @end example
 
-@c TODO Replace the following with a better example  -td
-@c Skylining handles this correctly without padText
-
 So far we've seen static substitution -- when LilyPond
 sees @code{\padText}, it replaces it with the stuff that
 we've defined it to be (ie the stuff to the right of
@@ -3080,12 +3077,12 @@ padText =
      \once \override TextScript.padding = #padding
    #})
 
-\relative c''' {
-  c4^"piu mosso" b a b |
+\relative c'' {
+  c4^"piu mosso" b a b
   \padText #1.8
-  c4^"piu mosso" d e f |
+  c4^"piu mosso" b a b
   \padText #2.6
-  c4^"piu mosso" fis a g |
+  c4^"piu mosso" b a b
 }
 @end lilypond
 
index a58b49971ba2a011a8dfab4e5d458edab486fa0a..056d6b00643d9ba58e2119860fa9d32a3863216b 100644 (file)
@@ -3618,8 +3618,7 @@ played above the bass notes.
 @lilypond[quote,line-width=13.0\cm]
 \new GrandStaff <<
   \new Staff = "rh" \with {
-    fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
+    \magnifyStaff #2/3
   } \relative c'' {
     \clef treble
     \key es \major
index 61db2db59e7d6cbee7c8fb810c550db37bd3a92e..427b1d210a68fbcf757163c03c520c179aacc1ae 100644 (file)
@@ -137,7 +137,7 @@ vorige stabiele versies en huidige als gecomprimeerd archief.
 status van de vertaling voor niet-Engelstaligen.
 
 @item
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippers Repository}:
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippers Repository}:
 voorbeelden door gebruikers, hints en tips.
 
 @item
@@ -330,7 +330,7 @@ lectuur indien je een groot project wilt beginnen.
 
 Dit toont een geselecteerde set LilyPond-snippers
 (codefragementen) uit de
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet
 Repository} (LSR).  Al deze snippers zijn publiek domein.
 
 Let op dat dit document geen exacte deelverzameling is van
index 67aefbd86d0fbb92a38dec37565962d91c9f8029..e4ded2fa4f88b7a93582d05e085085e49e6b43d0 100644 (file)
@@ -2699,13 +2699,6 @@ the @code{Stem_engraver} from the Voice context:
 @}
 @end example
 
-However, in some transcription styles, stems are used
-occasionally, for example to indicate the transition from a
-single-tone recitative to a fixed melodic gesture.  In these cases,
-one can use either @code{\hide Stem} or
-@code{\override Stem.length = #0} instead, and restore the stem
-when needed with the corresponding @code{\once \override Stem.transparent = ##f} (see example below).
-
 @b{Timing.} For unmetered chant, there are several alternatives.
 
 The Time_signature_engraver can be removed from the Staff context
@@ -2751,7 +2744,10 @@ verba = \lyricmode {
       \Staff
       \remove "Time_signature_engraver"
       \remove "Bar_engraver"
-      \hide Stem
+    }
+    \context {
+      \Voice
+      \remove "Stem_engraver"
     }
   }
 }
@@ -2759,17 +2755,25 @@ verba = \lyricmode {
 
 This works fine, as long as the text doesn't span a line break.  If
 that is the case, an alternative is to add hidden notes to the
-score, here in combination with changing stem visibility:
+score, as below.
 
+In some transcription styles, stems are used
+occasionally, for example to indicate the transition from a
+single-tone recitative to a fixed melodic gesture.  In these cases,
+one can use either @code{\hide Stem} or
+@code{\override Stem.length = #0} instead of @code{\remove}-ing
+the @code{Stem_engraver} and restore the stem
+when needed with the corresponding @code{\undo \hide Stem}.
 
 @lilypond[verbatim,ragged-right]
 \include "gregorian.ly"
 chant = \relative c' {
   \clef "G_8"
   \set Score.timing = ##f
+  \hide Stem
   c\breve \hide NoteHead  c c c c c
   \undo \hide NoteHead
-  \override Stem.transparent = ##f \stemUp c4 b4 a
+  \undo \hide Stem \stemUp c4 b4 a
   \hide Stem c2 c4  \divisioMaior
   c\breve \hide NoteHead c c c c c c c
   \undo \hide NoteHead c4 c f, f \finalis
@@ -2790,7 +2794,6 @@ verba = \lyricmode {
       \Staff
       \remove "Time_signature_engraver"
       \hide BarLine
-      \hide Stem
     }
   }
 }
index f8340dadace78f591f95a51822115416cebdf19f..8ba8009eddae37244afd5532aff7689ef1a4a60a 100644 (file)
@@ -90,25 +90,6 @@ Snippets:
 Predefined shorthands for articulations and ornaments cannot be used
 on notes in chord mode, see @ref{Articulations and ornamentations}.
 
-When chord mode and note mode are mixed in sequential music, and
-chord mode comes first, the note mode will create a new @code{Staff}
-context:
-
-@lilypond[verbatim,quote,ragged-right,relative=1]
-\chordmode { c2 f }
-<c e g>2 <g' b d>
-@end lilypond
-
-@noindent
-To avoid this behavior, explicitly create the @code{Staff} context:
-
-@lilypond[verbatim,quote,ragged-right,relative=1]
-\new Staff {
-  \chordmode { c2 f }
-  <c e g>2  <g' b d>
-}
-@end lilypond
-
 
 @node Common chords
 @unnumberedsubsubsec Common chords
@@ -360,7 +341,7 @@ chord) and added bass notes can be specified by appending
 
 @lilypond[quote,ragged-right,verbatim]
 \chordmode {
-  c1 c/g c/f
+  c'1 c'/e c'/f
 }
 @end lilypond
 
@@ -371,7 +352,7 @@ moved as part of an inversion, by using @code{/+}@var{pitch}.
 
 @lilypond[quote,ragged-right,verbatim]
 \chordmode {
-  c1 c/g c/+g
+  c'1 c'/g c'/+e
 }
 @end lilypond
 
@@ -395,16 +376,6 @@ interpreted last.
 \chordmode { c1:5.5-.5+ }
 @end lilypond
 
-Only the second inversion can be created by adding a bass
-note.  The first inversion requires changing the root of
-the chord.
-
-@lilypond[quote,ragged-right,verbatim]
-\chordmode {
-  c'1: c':/g e:6-3-^5 e:m6-^5
-}
-@end lilypond
-
 
 @node Displaying chords
 @subsection Displaying chords
index 34822b3da70912c770cad3c12cf66cfc99052d8b..fe624548cc43c24c511b663ae9815a7d8a949298 100644 (file)
@@ -86,6 +86,7 @@ command:
   \new Voice \relative {
     \voiceTwo
     \magnifyMusic 0.63 {
+      \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
       r32 c'' a c a c a c r c a c a c a c
       r c a c a c a c a c a c a c a c
     }
@@ -93,6 +94,9 @@ command:
 >>
 @end lilypond
 
+The @code{\override} in the example above is a bug workaround.
+See the @qq{Known issues and warnings} at the end of this section.
+
 If a normal sized note head is merged with a smaller one, the size
 of the smaller note may need to be reset (with
 @w{@samp{\once@tie{}\normalsize}}) so that the stems and
@@ -106,6 +110,7 @@ accidentals align properly:
   \new Voice \relative {
     \voiceOne
     \magnifyMusic 0.63 {
+      \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
       \once \normalsize cis'32( cis' gis b a fis \once \normalsize d d'
       \once \normalsize cis, cis' gis b a gis \once \normalsize fis fis'
       \once \normalsize fis, fis' ais, cis b gis \once \normalsize eis eis'
@@ -289,6 +294,28 @@ Snippets:
 Internals Reference:
 @rinternals{font-interface}.
 
+@c The two issues mentioned below:
+@c http://code.google.com/p/lilypond/issues/detail?id=3987
+@c http://code.google.com/p/lilypond/issues/detail?id=3990
+@knownissues
+There are currently two bugs that are preventing proper horizontal
+spacing when using @code{\magnifyMusic}.  There is only one
+available workaround, and it is not guaranteed to work in every
+case.  In the example below, replace the @var{mag} variable with
+your own value.  You may also try removing one or both of the
+@code{\newSpacingSection} commands, and/or the @code{\override}
+and @code{\revert} commands:
+
+@example
+\magnifyMusic @var{mag} @{
+  \newSpacingSection
+  \override Score.SpacingSpanner.spacing-increment = #(* 1.2 @var{mag})
+  @var{[music]}
+  \newSpacingSection
+  \revert Score.SpacingSpanner.spacing-increment
+@}
+@end example
+
 
 @node Fingering instructions
 @unnumberedsubsubsec Fingering instructions
@@ -535,8 +562,10 @@ a web browser might not display a difference between @code{LimeGreen}
 and @code{ForestGreen}.  For web use normal colors are recommended
 (i.e., @code{blue}, @code{green}, @code{red}).
 
-Notes in a chord cannot be colored with @code{\override}; use
-@code{\tweak} instead, see @ref{The tweak command}.
+Notes in a chord cannot be separately colored with
+@code{\override}; use @code{\tweak} or the equivalent
+@code{\single\override} before the respective note instead, see
+@ref{The tweak command}.
 
 
 @node Parentheses
index 40326a0eddf7700193bcb6e7cc75d2c36ee785a2..c5c5fa5c0855e9dfa6175abebec28196dd002225 100644 (file)
@@ -1218,7 +1218,8 @@ Special @emph{bracketed} arpeggio symbols can be created:
 @end lilypond
 
 The dash properties of the parenthesis arpeggio are controlled
-with the @code{'dash-details} property, which is described at @ref{Slurs}.
+with the @code{'dash-definition} property, which is described at
+@ref{Slurs}.
 
 Arpeggios can be explicitly written out with ties.  For more
 information, see @ref{Ties}.
index f8461b4ada4139feb0bf57c228d123e9571e00a1..76d8f5d37578943e75901c57308a992d709d0a8e 100644 (file)
@@ -998,12 +998,15 @@ can be placed on the fret diagram.  The capo indication is
 a thick bar that covers all strings.  The fret with the
 capo will be the lowest fret in the fret diagram.
 
+Fingering indication dots can be colored as well as parenthesized;
+the parenthesis's color can also be altered independently.
+
 @c \override is necessary to make fingering visible
 @lilypond[quote, verbatim]
 <<
     \new ChordNames {
       \chordmode {
-        f1 g c
+        f1 g c c
       }
     }
   \new Staff {
@@ -1039,6 +1042,17 @@ capo will be the lowest fret in the fret diagram.
         (place-fret 2 5 3)
       )
     }
+    \override Voice.TextScript.size = 1.5
+    <c g c' e' g'>1^\markup {
+      \fret-diagram-verbose #'(
+        (place-fret 6 3 1 red parenthesized default-paren-color)
+        (place-fret 5 3 1 inverted)
+        (place-fret 4 5 2 blue parenthesized)
+        (place-fret 3 5 3 blue)
+        (place-fret 2 5 4 blue)
+        (place-fret 1 3 1 inverted)
+      )
+    }
   }
 >>
 @end lilypond
index a8405b5274f29b9008be04c9afbaba92c08b5aa4..d9213d98f9dbeac3170e535820d0f58fbf94cb7b 100644 (file)
@@ -112,7 +112,7 @@ as shown in @rlearning{Other uses for tweaks}.
 @c @snippets
 @c @lilypondfile[verbatim,quote,texidoc,doctitle]
 @c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly}
-@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312
+@c http://lsr.di.unimi.it/LSR/Item?u=1&id=312
 
 @seealso
 Learning Manual:
@@ -580,7 +580,7 @@ come into use to simplify the performance instructions.
 @snippets
 
 @lilypondfile[verbatim,quote,texidoc,doctitle]
-{accordion-registers.ly}
+{accordion-register-symbols.ly}
 
 @seealso
 Snippets:
index 2e8ff7841c614d5cc8048cb82c920d2f349ba118..d4e6806d884eda779c10f30dbecf17ea0ad04f79 100644 (file)
@@ -23,6 +23,7 @@
 * List of colors::
 * The Feta font::
 * Note head styles::
+* Clef styles::
 * Text markup commands::
 * Text markup list commands::
 * List of special characters::
@@ -1227,6 +1228,7 @@ see @ref{Formatting text}.
             \doc-chars #kievan
 @end lilypond
 
+
 @node Note head styles
 @appendixsec Note head styles
 
@@ -1236,6 +1238,241 @@ The following styles may be used for note heads.
 @lilypondfile[noindent]{note-head-style.ly}
 
 
+@node Clef styles
+@appendixsec Clef styles
+
+The following table shows all the different clef styles possible
+(including where @emph{middle C} sits relative to the clef).
+
+@multitable @columnfractions .30 .2 .30 .2
+
+@headitem
+Example
+@tab
+Output
+@tab
+Example
+@tab
+Output
+
+
+@item
+@code{\clef G}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef G c1
+@end lilypond
+
+@tab
+@code{\clef "G2"}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef "G2"
+c1
+@end lilypond
+
+@item
+@code{\clef treble}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef treble
+c1
+@end lilypond
+
+@tab
+@code{\clef violin}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef violin
+c1
+@end lilypond
+
+@item
+@code{\clef french}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef french
+c1
+@end lilypond
+
+@tab
+@code{\clef GG}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef GG
+c1
+@end lilypond
+
+@item
+@code{\clef tenorG}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef tenorG
+c1
+@end lilypond
+
+@tab
+@code{\clef soprano}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef soprano
+c1
+@end lilypond
+
+@item
+@code{\clef mezzosoprano}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef mezzosoprano
+c1
+@end lilypond
+
+@tab
+@code{\clef C}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef C
+c1
+@end lilypond
+
+@item
+@code{\clef alto}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef alto
+c1
+@end lilypond
+
+@tab
+@code{\clef tenor}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef tenor
+c1
+@end lilypond
+
+@item
+@code{\clef baritone}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef baritone
+c1
+@end lilypond
+
+@tab
+@code{\clef varC}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef varC
+c1
+@end lilypond
+
+@item
+@code{\clef altovarC}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef altovarC
+c1
+@end lilypond
+
+@tab
+@code{\clef tenorvarC}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef tenorvarC
+c1
+@end lilypond
+
+@item
+@code{\clef baritonevarC}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef baritonevarC
+c1
+@end lilypond
+
+@tab
+@code{\clef varbaritone}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef varbaritone
+c1
+@end lilypond
+
+@item
+@code{\clef baritonevarF}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef baritonevarF
+c1
+@end lilypond
+
+@tab
+@code{\clef F}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef F
+c1
+@end lilypond
+
+@item
+@code{\clef bass}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef bass
+c1
+@end lilypond
+
+@tab
+@code{\clef subbass}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef subbass
+c1
+@end lilypond
+
+@item
+@code{\clef percussion}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef percussion
+c1
+@end lilypond
+
+@tab
+@c @example does not work as expected within multitables
+@code{
+\new TabStaff @{ @*
+@ @ \clef tab @*
+@}
+}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\new TabStaff {
+  \clef tab
+  c1
+}
+@end lilypond
+
+@item
+@c @example does not work as expected within multitables
+@code{
+\new TabStaff @{ @*
+@ @ \clef moderntab @*
+@}
+}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\new TabStaff {
+  \clef moderntab
+  c1
+}
+@end lilypond
+
+
+@end multitable
+
+
 @node Text markup commands
 @appendixsec Text markup commands
 
@@ -1319,7 +1556,7 @@ for more readability.
 @cindex verylongfermata
 
 The following scripts are available in the Feta font and may be
-attached to notes (eg. @samp{c\accent}).
+attached to notes (eg. @samp{f\accent}).
 
 @c Articulations and ornamentations
 @c Fingering instructions (for "thumb")
@@ -1344,18 +1581,172 @@ attached to notes (eg. @samp{c\accent}).
 @node Articulation scripts
 @unnumberedsubsec Articulation scripts
 
-@lilypond[quote]
-\include "script-chart.ly"
-\new RhythmicStaff { \scriptStaff #articulations }
+@multitable @columnfractions .25 .25 .25 .25
+
+@headitem
+Example
+@tab
+Output
+@tab
+Example
+@tab
+Output
+
+@item
+@code{\accent}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\accent e,_\accent
+@end lilypond
+@tab
+@code{\espressivo}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\espressivo e,_\espressivo
+@end lilypond
+
+@item
+@code{\marcato}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\marcato e,_\marcato
+@end lilypond
+@tab
+@code{\portato}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\portato e,_\portato
 @end lilypond
 
+@item
+@code{\staccatissimo}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\staccatissimo e,_\staccatissimo
+@end lilypond
+@tab
+@code{\staccato}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\staccato e,_\staccato
+@end lilypond
+
+@item
+@code{\tenuto}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\tenuto e,_\tenuto
+@end lilypond
+
+@end multitable
+
+
 @node Ornament scripts
 @unnumberedsubsec Ornament scripts
 
-@lilypond[quote]
-\include "script-chart.ly"
-\new RhythmicStaff { \scriptStaff #ornaments }
+@multitable @columnfractions .25 .25 .25 .25
+
+@headitem
+Example
+@tab
+Output
+@tab
+Example
+@tab
+Output
+
+@item
+@code{\prall}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\prall e,_\prall
+@end lilypond
+@tab
+@code{\mordent}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\mordent e,_\mordent
+@end lilypond
+
+@item
+@code{\prallmordent}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\prallmordent e,_\prallmordent
+@end lilypond
+@tab
+@code{\turn}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\turn e,_\turn
+@end lilypond
+
+@item
+@code{\upprall}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\upprall e,_\upprall
+@end lilypond
+@tab
+@code{\downprall}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\downprall e,_\downprall
+@end lilypond
+
+@item
+@code{\upmordent}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\upmordent e,_\upmordent
+@end lilypond
+@tab
+@code{\downmordent}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\downmordent e,_\downmordent
+@end lilypond
+
+@item
+@code{\lineprall}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\lineprall e,_\lineprall
+@end lilypond
+@tab
+@code{\prallprall}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\prallprall e,_\prallprall
+@end lilypond
+
+@item
+@code{\pralldown}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\pralldown e,_\pralldown
 @end lilypond
+@tab
+@code{\prallup}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\prallup e,_\prallup
+@end lilypond
+
+@item
+@code{\reverseturn}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\reverseturn e,_\reverseturn
+@end lilypond
+@tab
+@code{\trill}
+@tab
+@lilypond[notime,ragged-right,relative=2]
+f\trill e,_\trill
+@end lilypond
+
+@end multitable
 
 @node Fermata scripts
 @unnumberedsubsec Fermata scripts
index b5cc66246d5856e4f609528fb5aa964d587bc704..e11a4fb1f308b0e36f658aa73eefce03dab5b51a 100644 (file)
@@ -1104,8 +1104,16 @@ This section discusses how to alter the output of pitches.
 @funindex \clef
 @funindex clef
 
-The clef may be altered.  Middle C is shown in every example.  The
-following clef names can (but do not need to) be enclosed in quotes.
+Without any explicit command, the default clef for LilyPond is the
+treble (or @emph{G}) clef.
+
+@lilypond[verbatim,quote,relative=1,ragged-right]
+c2 c
+@end lilypond
+
+However, the clef can be changed by using the @code{\clef} command and
+an appropriate clef name.  @emph{Middle C} is shown in each of the
+following examples.
 
 @lilypond[verbatim,quote,relative=1]
 \clef treble
@@ -1118,36 +1126,17 @@ c2 c
 c2 c
 @end lilypond
 
-Other clefs include:
-
-@lilypond[verbatim,quote,relative=1]
-\clef french
-c2 c
-\clef soprano
-c2 c
-\clef mezzosoprano
-c2 c
-\clef baritone
-c2 c
+For the full range of possible clef names see @ref{Clef styles}.
 
-\break
+Specialized clefs, such as those used in @emph{Ancient} music, are
+described in @ref{Mensural clefs} and @ref{Gregorian clefs}.  Music that
+requires tablature clefs is discussed in @ref{Default tablatures} and
+@ref{Custom tablatures}.
 
-\clef varbaritone
-c2 c
-\clef subbass
-c2 c
-\clef percussion
-c2 c
-
-\break
-
-\clef G   % synonym for treble
-c2 c
-\clef F   % synonym for bass
-c2 c
-\clef C   % synonym for alto
-c2 c
-@end lilypond
+@cindex Cue clefs
+@cindex Clefs with cue notes
+For mixing clefs when using cue notes, see the @code{\cueClef} and
+@code{\cueDuringWithClef} commands in @ref{Formatting cue notes}.
 
 @cindex transposing clef
 @cindex clef, transposing
@@ -1191,13 +1180,12 @@ c2 c
 The pitches are displayed as if the numeric argument were
 given without parentheses/brackets.
 
-Some special purpose clefs are described in @ref{Mensural clefs},
-@ref{Gregorian clefs}, @ref{Default tablatures}, and @ref{Custom
-tablatures}.  For mixing different clefs when using cue notes within a
-score, see the @code{\cueClef} and @code{\cueDuringWithClef} functions
-in @ref{Formatting cue notes}.
-
 @snippets
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{forcing-a-clef-symbol-to-be-displayed.ly}
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{keep-change-clefs-full-sized.ly}
 
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {tweaking-clef-properties.ly}
@@ -1210,6 +1198,9 @@ Notation Reference:
 @ref{Custom tablatures},
 @ref{Formatting cue notes}.
 
+Installed Files:
+@file{../scm/parser-clef.scm}.
+
 Snippets:
 @rlsr{Pitches}.
 
@@ -2452,7 +2443,7 @@ musicB = {
 
 Like with the dodecaphonic accidental style @emph{every} note
 gets an accidental sign by default, but accidentals are
-suppressed for pitches immediately repeated within one voice.
+suppressed for pitches immediately repeated within the same staff.
 
 @lilypond[quote]
 musicA = {
index 72c963cdb7d84b3e3c2baea0968984a27ce2cbbf..92ace48df055b1038425756ebcf9d86dc3d9bfc6 100644 (file)
@@ -199,18 +199,16 @@ rests from 128th to maxima (8 x whole) may be printed.
 @funindex tuplet
 
 Tuplets are made from a music expression with the @code{\tuplet}
-command, multiplying the speed of the music expression by a
-fraction:
+command, multiplying the speed of the music expression by a fraction:
 
 @example
 \tuplet @var{fraction} @{ @var{music} @}
 @end example
 
 @noindent
-The fraction's numerator will be printed over or
-under the notes, optionally with a bracket.  The most common
-tuplets are triplets: 3@tie{}notes sound within the duration
-normally allowed for@tie{}2:
+The fraction's numerator will be printed over or under the notes,
+optionally with a bracket.  The most common tuplets are triplets
+(3@tie{}notes sound within the duration normally allowed for@tie{}2).
 
 @lilypond[quote,verbatim,relative=2]
 a2 \tuplet 3/2 { b4 4 4 }
@@ -220,10 +218,9 @@ c4 c \tuplet 3/2 { b4 a g }
 @cindex tuplet grouping
 @noindent
 When entering long passages of tuplets, having to write a separate
-@code{\tuplet} command for each group is inconvenient.  It is
-possible to specify the duration of one tuplet group directly
-before the music in order to have the tuplets grouped
-automatically:
+@code{\tuplet} command for each group is inconvenient.  It is possible
+to specify the duration of one tuplet group directly before the music
+in order to have the tuplets grouped automatically:
 
 @lilypond[quote,verbatim,relative=2]
 g2 r8 \tuplet 3/2 8 { cis16 d e e f g g f e }
@@ -238,8 +235,14 @@ g2 r8 \tuplet 3/2 8 { cis16 d e e f g g f e }
 @funindex \tupletNeutral
 @funindex tupletNeutral
 
-Tuplet brackets may be manually placed above or below the staff;
-see @ref{Direction and placement}.
+Tuplet brackets may be manually placed above or below the staff:
+
+@lilypond[quote,verbatim,relative=2]
+\tupletUp \tuplet 3/2 { c8 d e }
+\tupletNeutral \tuplet 3/2 { c8 d e }
+\tupletDown \tuplet 3/2 { f,8 g a }
+\tupletNeutral \tuplet 3/2 { f8 g a }
+@end lilypond
 
 Tuplets may be nested:
 
@@ -248,12 +251,11 @@ Tuplets may be nested:
 c4 \tuplet 5/4 { f8 e f \tuplet 3/2 { e[ f g] } } f4
 @end lilypond
 
-Modifying nested tuplets which begin at the same musical moment
-must be done with @code{\tweak}.
-
-To modify the duration of notes without printing a tuplet bracket,
-see @ref{Scaling durations}.
+Modifying nested tuplets which begin at the same musical moment must be
+done with @code{\tweak}.
 
+To modify the duration of notes without printing a tuplet bracket, see
+@ref{Scaling durations}.
 
 @predefined
 @code{\tupletUp},
@@ -299,6 +301,7 @@ Learning Manual:
 @rlearning{Tweaking methods}.
 
 Notation Reference:
+@ref{Direction and placement},
 @ref{Time administration},
 @ref{Scaling durations},
 @ref{The tweak command},
@@ -312,20 +315,6 @@ Internals Reference:
 @rinternals{TupletNumber},
 @rinternals{TimeScaledMusic}.
 
-@cindex grace notes within tuplet brackets
-
-@knownissues
-Grace notes may be placed within tuplet brackets, @emph{except}
-when a staff begins with a grace note followed by a tuplet.  In this
-particular case, the grace note must be placed before the @code{\tuplet}
-command to avoid errors.
-
-@cindex tempo marks within tuplet brackets
-
-When using a tuplet at the beginning of a piece with a @code{\tempo}
-mark, the music must be explicitly entered in a @code{\new Voice}
-block, as discussed in @rlearning{Voices contain music}.
-
 
 @node Scaling durations
 @unnumberedsubsubsec Scaling durations
@@ -2401,6 +2390,7 @@ in only one staff.
     \time 3/4
     \set Timing.baseMoment = #(ly:make-moment 1/8)
     \set Timing.beatStructure = #'(1 5)
+    \set Timing.beamExceptions = #'()
     \repeat unfold 6 { a8 }
   }
   \new Staff {
index 3ee12b679876fdc986ccaabbbb78690b2d7cd06a..b2da6c861b26921356eda5d4693a56ebcffe418a 100644 (file)
@@ -1283,24 +1283,17 @@ block:
 @end example
 
 @item
-To set the staff size for a single staff within a system, set the
-staff's font-size and staff-space using units relative to the
-score's default staff size.  Using relative units prevents the
-proportion of staff sizes from being altered if the default staff
-size is modified with @code{set-global-staff-size} or
-@code{layout-set-staff-size}.
-
-For example, traditionally engraved chamber music scores with
-piano often used 7mm piano staves while the other staves were up
-to 5/7 as large (if space allowed), or down to 3/5 as large (if
-space was cramped).  To achieve the 5/7 proportion, use:
+To set the staff size for a single staff within a system, use the
+@code{\magnifyStaff} command.  For example, traditionally engraved
+chamber music scores with piano often used 7mm piano staves while
+the other staves were typically between 3/5 and 5/7 as large
+(between 60% and 71%).  To achieve the 5/7 proportion, use:
 
 @example
 \score @{
   <<
     \new Staff \with @{
-      fontSize = #(magnification->font-size 5/7)
-      \override StaffSymbol.staff-space = #5/7
+      \magnifyStaff #5/7
     @} @{ @dots{} @}
     \new PianoStaff @{ @dots{} @}
   >>
@@ -1314,8 +1307,7 @@ could use the following form:
 \score @{
   <<
     \new Staff \with @{
-      fontSize = -3
-      \override StaffSymbol.staff-space = #(magstep -3)
+      \magnifyStaff #(magstep -3)
     @} @{ @dots{} @}
     \new PianoStaff @{ @dots{} @}
   >>
@@ -1365,12 +1357,7 @@ staff lines.
 @menu
 * Line breaking::
 * Page breaking::
-* Optimal page breaking::
-* Optimal page turning::
-* Minimal page breaking::
-* One-line page breaking::
 * Explicit breaks::
-* Using an extra voice for breaks::
 @end menu
 
 
@@ -1380,9 +1367,9 @@ staff lines.
 @cindex line breaks
 @cindex breaking lines
 
-Line breaks are normally determined automatically.  They are chosen
-so that lines look neither cramped nor loose, and consecutive
-lines have similar density.
+Line breaks are normally determined automatically.  They are
+chosen so that lines look neither cramped nor loose, and
+consecutive lines have similar density.
 
 To manually force a line break at a bar line, use the
 @code{\break} command:
@@ -1459,15 +1446,13 @@ but affects only the last line of the piece.
 @}
 @end example
 
-
-
 @cindex regular line breaks
 @cindex four bar music.
 
-For line breaks at regular intervals use @code{\break} separated by
-skips and repeated with @code{\repeat}.  For example, this would
-cause the following 28 measures (assuming 4/4 time) to be broken
-every 4 measures, and only there:
+For line breaks at regular intervals use @code{\break} separated
+by skips and repeated with @code{\repeat}.  For example, this
+would cause the following 28 measures (assuming 4/4 time) to be
+broken every 4 measures, and only there:
 
 @example
 <<
@@ -1489,7 +1474,8 @@ every 4 measures, and only there:
 
 @seealso
 Notation Reference:
-@ref{paper variables for line breaking,,@code{@bs{}paper} variables for line breaking}.
+@ref{paper variables for line breaking}
+@ref{The layout block}.
 
 Snippets:
 @rlsr{Spacing}.
@@ -1501,12 +1487,27 @@ Internals Reference:
 @node Page breaking
 @subsection Page breaking
 
+This section describes the different page breaking methods, and
+how to modify them.
+
+@menu
+* Manual page breaking::
+* Optimal page breaking::
+* Optimal page turning::
+* Minimal page breaking::
+* One-line page breaking::
+@end menu
+
+
+@node Manual page breaking
+@unnumberedsubsubsec Manual page breaking
+
 The default page breaking may be overridden by inserting
-@code{\pageBreak} or @code{\noPageBreak} commands.  These commands are
-analogous to @code{\break} and @code{\noBreak}.  They should be
-inserted at a bar line.  These commands force and forbid a page-break
-from happening.  Of course, the @code{\pageBreak} command also forces
-a line break.
+@code{\pageBreak} or @code{\noPageBreak} commands.  These commands
+are analogous to @code{\break} and @code{\noBreak}.  They should
+be inserted at a bar line.  These commands force and forbid a
+page-break from happening.  Of course, the @code{\pageBreak}
+command also forces a line break.
 
 The @code{\pageBreak} and @code{\noPageBreak} commands may also be
 inserted at top-level, between scores and top-level markups.
@@ -1520,11 +1521,12 @@ bottom of the final page (or the final page in each
 @code{\bookpart}).  See
 @ref{Fixed vertical spacing paper variables,,Fixed vertical spacing @code{@bs{}paper} variables}.
 
-Page breaks are computed by the @code{page-breaking} function.  LilyPond
-provides three algorithms for computing page breaks,
+Page breaks are computed by the @code{page-breaking} function.
+LilyPond provides three algorithms for computing page breaks,
 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} and
-@code{ly:minimal-breaking}.  The default is @code{ly:optimal-breaking},
-but the value can be changed in the @code{\paper} block:
+@code{ly:minimal-breaking}.  The default is
+@code{ly:optimal-breaking}, but the value can be changed in the
+@code{\paper} block:
 
 @example
 \paper @{
@@ -1534,12 +1536,12 @@ but the value can be changed in the @code{\paper} block:
 
 @funindex \bookpart
 
-When a book has many scores and pages, the page breaking problem may be
-difficult to solve, requiring large processing time and memory.  To ease
-the page breaking process, @code{\bookpart} blocks are used to divide
-the book into several parts: the page breaking occurs separately on each
-part.  Different page breaking functions may also be used in different
-book parts.
+When a book has many scores and pages, the page breaking problem
+may be difficult to solve, requiring large processing time and
+memory.  To ease the page breaking process, @code{\bookpart}
+blocks are used to divide the book into several parts: the page
+breaking occurs separately on each part.  Different page breaking
+functions may also be used in different book parts.
 
 @example
 \bookpart @{
@@ -1575,65 +1577,111 @@ book parts.
 
 @seealso
 Notation Reference:
-@ref{paper variables for page breaking,,@code{@bs{}paper} variables for page breaking}.
+@ref{paper variables for page breaking}.
 
 Snippets:
 @rlsr{Spacing}.
 
 
 @node Optimal page breaking
-@subsection Optimal page breaking
+@unnumberedsubsubsec Optimal page breaking
 
 @funindex ly:optimal-breaking
 
-The @code{ly:optimal-breaking} function is LilyPond's default method of
-determining page breaks.  It attempts to find a page breaking that minimizes
-cramping and stretching, both horizontally and vertically.  Unlike
-@code{ly:page-turn-breaking}, it has no concept of page turns.
+The @code{ly:optimal-breaking} function is LilyPond's default
+method of determining page breaks.  It attempts to find a page
+breaking that minimizes cramping and stretching, both horizontally
+and vertically.  Unlike @code{ly:page-turn-breaking}, it has no
+concept of page turns.
+
+@seealso
+Snippets:
+@rlsr{Spacing}.
+
+
+@node Minimal page breaking
+@unnumberedsubsubsec Minimal page breaking
+
+@funindex ly:minimal-breaking
+
+The @code{ly:minimal-breaking} function performs minimal
+computations to calculate the page breaking: it fills a page with
+as many systems as possible before moving to the next one.  Thus,
+it may be preferred for scores with many pages, where the other
+page breaking functions could be too slow or memory demanding, or
+a lot of texts.  It is enabled using:
+
+@example
+\paper @{
+  page-breaking = #ly:minimal-breaking
+@}
+@end example
 
 @seealso
 Snippets:
 @rlsr{Spacing}.
 
 
+@node One-line page breaking
+@unnumberedsubsubsec One-line page breaking
+
+@funindex ly:one-line-breaking
+
+The @code{ly:one-line-breaking} function is a special-purpose
+page breaking algorithm that puts each score on its own page, and
+on a single line.  This page breaking function does not typeset
+titles or margins; only the score will be displayed.
+
+The page width will be adjusted so that the longest score fits on
+one line.  In particular, @code{paper-width}, @code{line-width}
+and @code{indent} variables in the @code{\paper} block will be
+ignored, although @code{left-margin} and @code{right-margin} will
+still be honored.  The height of the page will be left unmodified.
+
+
 @node Optimal page turning
-@subsection Optimal page turning
+@unnumberedsubsubsec Optimal page turning
 
 @funindex ly:page-turn-breaking
 
-Often it is necessary to find a page breaking configuration so that there is
-a rest at the end of every second page.  This way, the musician can turn the
-page without having to miss notes.  The @code{ly:page-turn-breaking} function
-attempts to find a page breaking minimizing cramping and stretching, but with
-the additional restriction that it is only allowed to introduce page turns
-in specified places.
-
-There are two steps to using this page breaking function.  First, you
-must enable it in the @code{\paper} block, as explained in @ref{Page
-breaking}.  Then you must tell the function where you would like to allow
-page breaks.
-
-There are two ways to achieve the second step.  First, you can specify each
-potential page turn manually, by inserting @code{\allowPageTurn} into your
-input file at the appropriate places.
-
-If this is too tedious, you can add a @code{Page_turn_engraver} to a Staff or
-Voice context.  The @code{Page_turn_engraver} will scan the context for
-sections without notes (note that it does not scan for rests; it scans for
-the absence of notes.  This is so that single-staff polyphony with rests in one
-of the parts does not throw off the @code{Page_turn_engraver}).  When it finds
-a sufficiently long section without notes, the @code{Page_turn_engraver} will
-insert an @code{\allowPageTurn} at the final bar line in that section, unless
-there is a @q{special} bar line (such as a double bar), in which case the
-@code{\allowPageTurn} will be inserted at the final @q{special} bar line in
-the section.
+Often it is necessary to find a page breaking configuration so
+that there is a rest at the end of every second page.  This way,
+the musician can turn the page without having to miss notes.  The
+@code{ly:page-turn-breaking} function attempts to find a page
+breaking minimizing cramping and stretching, but with the
+additional restriction that it is only allowed to introduce page
+turns in specified places.
+
+There are two steps to using this page breaking function.  First,
+you must enable it in the @code{\paper} block, as explained in
+@ref{Page breaking}.  Then you must tell the function where you
+would like to allow page breaks.
+
+There are two ways to achieve the second step.  First, you can
+specify each potential page turn manually, by inserting
+@code{\allowPageTurn} into your input file at the appropriate
+places.
+
+If this is too tedious, you can add a @code{Page_turn_engraver} to
+a Staff or Voice context.  The @code{Page_turn_engraver} will scan
+the context for sections without notes (note that it does not scan
+for rests; it scans for the absence of notes.  This is so that
+single-staff polyphony with rests in one of the parts does not
+throw off the @code{Page_turn_engraver}).  When it finds a
+sufficiently long section without notes, the
+@code{Page_turn_engraver} will insert an @code{\allowPageTurn} at
+the final bar line in that section, unless there is a @q{special}
+bar line (such as a double bar), in which case the
+@code{\allowPageTurn} will be inserted at the final @q{special}
+bar line in the section.
 
 @funindex minimumPageTurnLength
 The @code{Page_turn_engraver} reads the context property
-@code{minimumPageTurnLength} to determine how long a note-free section must
-be before a page turn is considered.  The default value for
-@code{minimumPageTurnLength} is @code{(ly:make-moment 1/1)}.  If you want
-to disable page turns, you can set it to something very large.
+@code{minimumPageTurnLength} to determine how long a note-free
+section must be before a page turn is considered.  The default
+value for @code{minimumPageTurnLength} is
+@code{(ly:make-moment 1/1)}.  If you want to disable page turns,
+set it to something @q{very large}.
 
 @example
 \new Staff \with @{ \consists "Page_turn_engraver" @}
@@ -1650,16 +1698,18 @@ to disable page turns, you can set it to something very large.
 @end example
 
 @funindex minimumRepeatLengthForPageTurn
-The @code{Page_turn_engraver} detects volta repeats.  It will only allow a page
-turn during the repeat if there is enough time at the beginning and end of the
-repeat to turn the page back.  The @code{Page_turn_engraver} can also disable
-page turns if the repeat is very short.  If you set the context property
-@code{minimumRepeatLengthForPageTurn} then the @code{Page_turn_engraver} will
-only allow turns in repeats whose duration is longer than this value.
-
-The page turning commands, @code{\pageTurn}, @code{\noPageTurn} and
-@code{\allowPageTurn}, may also be used at top-level, between scores and
-top-level markups.
+With volta repeats, the @code{Page_turn_engraver} will only
+allow a page turn during the repeat if there is enough time at the
+beginning and end of the repeat to turn the page back.  If the
+repeat is very short, the @code{Page_turn_engraver} can also be
+used to disable page turns by setting a value for the context
+property @code{minimumRepeatLengthForPageTurn} where as
+@code{Page_turn_engraver} only allows turns in repeats whose
+duration is longer than this value.
+
+The page turning commands, @code{\pageTurn}, @code{\noPageTurn}
+and @code{\allowPageTurn}, may also be used at top-level, in
+top-level markups and between scores.
 
 @predefined
 @funindex \pageTurn
@@ -1672,70 +1722,33 @@ top-level markups.
 
 @seealso
 Notation Reference:
-@ref{paper variables for line breaking,,@code{@bs{}paper} variables for line breaking}.
+@ref{paper variables for line breaking}.
 
 Snippets:
 @rlsr{Spacing}.
 
 @knownissues
-There should only be one @code{Page_turn_engraver} in a score.  If there is more
-than one, they will interfere with each other.
-
-
-@node Minimal page breaking
-@subsection Minimal page breaking
-
-@funindex ly:minimal-breaking
+Use only one @code{Page_turn_engraver} per score.  If there are
+more, they will interfere with each other.
 
-The @code{ly:minimal-breaking} function performs minimal computations to
-calculate the page breaking: it fills a page with as many systems as
-possible before moving to the next one.  Thus, it may be preferred for
-scores with many pages, where the other page breaking functions could be
-too slow or memory demanding, or a lot of texts.  It is enabled using:
-
-@example
-\paper @{
-  page-breaking = #ly:minimal-breaking
-@}
-@end example
-
-@seealso
-Snippets:
-@rlsr{Spacing}.
-
-@node One-line page breaking
-@subsection One-line page breaking
-
-@funindex ly:one-line-breaking
-
-The @code{ly:one-line-breaking} function is a special-purpose
-page breaking algorithm that puts each score on its own page,
-and on a single line.  This page breaking function does not
-typeset titles or margins; only the score will be displayed.
-
-The page width will be adjusted so that
-the longest score fits on one line.  In particular,
-@code{paper-width}, @code{line-width} and @code{indent}
-variables in the @code{\paper} block will be ignored, although
-@code{left-margin} and @code{right-margin} will
-still be honored.  The height of the page will
-be left unmodified.
 
 @node Explicit breaks
 @subsection Explicit breaks
 
-Lily sometimes rejects explicit @code{\break} and @code{\pageBreak}
-commands.  There are two commands to override this behavior:
+There are cases when manual @code{\break} or @code{\pageBreak}
+commands are ignored by LilyPond.  There are two commands to
+override this behavior:
 
 @example
 \override NonMusicalPaperColumn.line-break-permission = ##f
 \override NonMusicalPaperColumn.page-break-permission = ##f
 @end example
 
-When @code{line-break-permission} is overridden to false, Lily will insert
-line breaks at explicit @code{\break} commands and nowhere else.  When
-@code{page-break-permission} is overridden to false, Lily will insert
-page breaks at explicit @code{\pageBreak} commands and nowhere else.
+If @code{line-break-permission} is set to @code{##f}, all line
+breaks must be explicitly inserted with a @code{\break} command.
+Likewise, if @code{page-break-permission} is set to @code{##f},
+all page breaks must be explicitly inserted with a
+@code{\pageBreak} command.
 
 @lilypond[quote,verbatim]
 \paper {
@@ -1767,99 +1780,10 @@ music = \relative c'' { c8 c c c }
 }
 @end lilypond
 
-@seealso
-Snippets:
-@rlsr{Spacing}.
-
-
-@node Using an extra voice for breaks
-@subsection Using an extra voice for breaks
-
-Line- and page-breaking information usually appears within note entry directly.
-
-@example
-music = \relative c'' @{ c4 c c c @}
-
-\score @{
-  \new Staff @{
-    \repeat unfold 2 @{ \music @} \break
-    \repeat unfold 3 @{ \music @}
-  @}
-@}
-@end example
-
-This makes @code{\break} and @code{\pageBreak} commands easy to enter but mixes
-music entry with information that specifies how music should lay out
-on the page.  You can keep music entry and line- and page-breaking
-information in two separate places by introducing an extra voice to
-contain the  breaks.  This extra voice
-contains only skips together with @code{\break}, @code{pageBreak} and other
-breaking layout information.
-
-@lilypond[quote,verbatim]
-music = \relative c'' { c4 c c c }
-
-\header { tagline = ##f }
-\paper { left-margin = 0\mm }
-\book {
-  \score {
-    \new Staff <<
-      \new Voice {
-        s1 * 2 \break
-        s1 * 3 \break
-        s1 * 6 \break
-        s1 * 5 \break
-      }
-      \new Voice {
-        \repeat unfold 2 { \music }
-        \repeat unfold 3 { \music }
-        \repeat unfold 6 { \music }
-        \repeat unfold 5 { \music }
-      }
-    >>
-  }
-}
-@end lilypond
-
-This pattern becomes especially helpful when overriding
-@code{line-break-system-details} and the other useful but long properties of
-@code{NonMusicalPaperColumnGrob}, as explained in @ref{Vertical spacing}.
-
-@lilypond[quote,verbatim]
-music = \relative c'' { c4 c c c }
+@snippets
 
-\header { tagline = ##f }
-\paper { left-margin = 0\mm }
-\book {
-  \score {
-    \new Staff <<
-      \new Voice {
-        \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
-          #'((Y-offset . 0))
-        s1 * 2 \break
-
-        \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
-          #'((Y-offset . 5))
-        s1 * 3 \break
-
-        \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
-          #'((Y-offset . 15))
-        s1 * 6 \break
-
-        \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
-          #'((Y-offset . 30))
-        s1 * 5 \break
-      }
-      \new Voice {
-        \repeat unfold 2 { \music }
-        \repeat unfold 3 { \music }
-        \repeat unfold 6 { \music }
-        \repeat unfold 5 { \music }
-      }
-    >>
-  }
-}
-@end lilypond
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
+{using-an-extra-voice-for-breaks.ly}
 
 @seealso
 Notation Reference:
@@ -1877,8 +1801,8 @@ Snippets:
 
 Vertical spacing is controlled by three things: the amount of
 space available (i.e., paper size and margins), the amount of
-space between systems, and the amount of space between
-staves inside a system.
+space between systems, and the amount of space between staves
+inside a system.
 
 @menu
 * Flexible vertical spacing within systems::
@@ -2361,8 +2285,8 @@ Internals Reference:
 @emph{Non-staff lines} (such as @code{Lyrics}, @code{ChordNames},
 etc.) are contexts whose layout objects are engraved like staves
 (i.e. in horizontal lines within systems).  Specifically,
-non-staff lines are non-staff contexts that create the
-@code{VerticalAxisGroup} layout object.
+non-staff lines are non-staff contexts that contain the
+@rinternals{Axis_group_engraver}.
 
 The following properties affect the spacing of non-staff lines:
 
@@ -2517,7 +2441,7 @@ by looking at an example that includes no overrides at all.
 This score isolates line- and page-breaking information in a dedicated
 voice.  This technique of creating a breaks voice will help keep layout
 separate from music entry as our example becomes more complicated.
-See @ref{Using an extra voice for breaks}.
+See @ref{Explicit breaks}.
 
 Explicit @code{\breaks} evenly divide the music into six measures per
 line.  Vertical spacing results from LilyPond's defaults.  To set
@@ -2747,7 +2671,7 @@ Snippets:
 * Horizontal spacing overview::
 * New spacing area::
 * Changing horizontal spacing::
-* Line length::
+* Line width::
 * Proportional notation::
 @end menu
 
@@ -3000,8 +2924,8 @@ Snippets:
 @rlsr{Spacing}.
 
 
-@node Line length
-@subsection Line length
+@node Line width
+@subsection Line width
 
 @cindex page breaks
 @cindex breaking pages
index 1462d0996e6b07cbec99d08948c1e07c4cb315a6..d2bb608d3208c8c0b690e05ac9bd029e7eb86bdc 100644 (file)
@@ -274,9 +274,6 @@ Internals Reference:
 @rinternals{SystemStartBracket},
 @rinternals{SystemStartSquare}.
 
-@knownissues
-@code{PianoStaff} does not, by default, accept @code{ChordNames}.
-
 
 @node Nested staff groups
 @unnumberedsubsubsec Nested staff groups
@@ -611,9 +608,7 @@ only a few ossia staves are needed.
     \new Staff \with {
       \remove "Time_signature_engraver"
       alignAboveContext = #"main"
-      fontSize = #-3
-      \override StaffSymbol.staff-space = #(magstep -3)
-      \override StaffSymbol.thickness = #(magstep -3)
+      \magnifyStaff #2/3
       firstClef = ##f
     }
     { e4 d f e }
@@ -635,9 +630,7 @@ example.
   \new Staff = "ossia" \with {
     \remove "Time_signature_engraver"
     \hide Clef
-    fontSize = #-3
-    \override StaffSymbol.staff-space = #(magstep -3)
-    \override StaffSymbol.thickness = #(magstep -3)
+    \magnifyStaff #2/3
   }
   { \stopStaff s1*6 }
 
@@ -674,9 +667,7 @@ break.  For more information about
   \new Staff = "ossia" \with {
     \remove "Time_signature_engraver"
     \hide Clef
-    fontSize = #-3
-    \override StaffSymbol.staff-space = #(magstep -3)
-    \override StaffSymbol.thickness = #(magstep -3)
+    \magnifyStaff #2/3
   } \relative c'' {
     R1*3
     c4 e8 d c2
index 62600cf5478aa0f2d27d84db3a5453d6119183d5..187e10566f2970b358bce44a92f543ae645e25b5 100644 (file)
@@ -309,11 +309,6 @@ see @ref{Manual syllable durations}.  This technique is also useful
 when setting dialogue over music; for examples showing this, see
 @ref{Dialogue over music}.
 
-When entered in this way the words are left-aligned to the notes
-by default, but may be center-aligned to the notes of a melody by
-specifying an associated voice, if one exists.  For details, see
-@ref{Manual syllable durations}.
-
 @end itemize
 
 @seealso
@@ -509,8 +504,7 @@ completely independently of notes.  In this case do not use
 but with pitches replaced by text -- and the duration of each
 syllable is entered explicitly after the syllable.
 
-By default, syllables will be left-aligned to the corresponding
-musical moment.  Hyphenated lines may be drawn between syllables
+Hyphenated lines may be drawn between syllables
 as usual, but extender lines cannot be drawn when there is no
 associated voice.
 
@@ -519,11 +513,10 @@ Here are two examples:
 @lilypond[relative=1,verbatim,quote]
 <<
   \new Voice = "melody" {
-    \time 3/4
-    c2 e4 g2 f
+    c'2 a f f e e
   }
   \new Lyrics \lyricmode {
-    play1 the4 game4
+    c4. -- a -- f -- f -- e2. -- e
   }
 >>
 @end lilypond
@@ -554,27 +547,22 @@ Here are two examples:
 This technique is useful when writing dialogue over music, see
 @ref{Dialogue over music}.
 
-To center-align syllables on the notes at the corresponding musical
-moments, set @code{associatedVoice} to the name of the Voice context
-containing those notes.  When @code{associatedVoice} is set, both
-double hyphens and double underscores can be used to draw
-hyphenated lines and extenders under melismata correctly.
+To change syllable alignment, simply override the @code{self-alignment-X}
+property:
 
 @lilypond[relative=1,verbatim,quote]
 <<
   \new Voice = "melody" {
     \time 3/4
-    c2 e4 g f g
+    c2 e4 g2 f
   }
   \new Lyrics \lyricmode {
-    \set associatedVoice = #"melody"
-    play2 the4 game2. __
+    \override LyricText.self-alignment-X = #LEFT
+    play1 a4 game4
   }
 >>
 @end lilypond
 
-@c TODO see also feature request 707 - show how to do this with manual durations
-
 @seealso
 Notation Reference:
 @ref{Dialogue over music}.
@@ -2418,7 +2406,7 @@ Notation Reference:
 @ref{Score layout},
 @ref{Separating systems},
 @ref{Setting the staff size},
-@ref{Using an extra voice for breaks},
+@ref{Explicit breaks},
 @ref{Vertical spacing}.
 
 Internals Reference:
index 505bda3c57299a86ccac556f802e48f5ffeda9f1..0cecbfdc914bb724fc148f2dd4d5d19443bcae31 100644 (file)
@@ -1,28 +1,27 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.16.0
-\version "2.16.0"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "keyboards, specific-notation, symbols-and-glyphs, workaround"
 
   texidoc = "
 This snippet has been obsoleted by predefined markup commands, see
-@ruser{Accordion Registers}.  It's still useful as a simple
-demonstration of how to combine symbols: the placement of the symbols
-added with @code{\\markup} can be tweaked by changing the
-@code{\\translate-scaled} arguments.  @code{\\translate-scaled} is
-used here rather than @code{\\translate} in order to let the
-positioning of the symbol parts adapt to changes of @code{font-size}.
+'Accordion Registers' in the Notation Reference.  It's still useful as
+a simple demonstration of how to combine symbols: the placement of the
+symbols added with @code{\\markup} can be tweaked by changing the
+@code{\\translate-scaled} arguments.  @code{\\translate-scaled} is used
+here rather than @code{\\translate} in order to let the positioning of
+the symbol parts adapt to changes of @code{font-size}.
+
 "
   doctitle = "Accordion-discant symbols"
 } % begin verbatim
 
-
 discant = \markup {
   \musicglyph #"accordion.discant"
 }
diff --git a/Documentation/snippets/accordion-register-symbols.ly b/Documentation/snippets/accordion-register-symbols.ly
new file mode 100644 (file)
index 0000000..deba1ee
--- /dev/null
@@ -0,0 +1,46 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
+
+\header {
+  lsrtags = "keyboards, specific-notation, symbols-and-glyphs"
+
+  texidoc = "
+Accordion register symbols are available as @code{\\markup} as well as
+as standalone music events (as register changes tend to occur between
+actual music events.  Bass registers are not overly standardized.  The
+available commands can be found in 'Accordion Registers' in the
+Notation Reference.
+
+"
+  doctitle = "Accordion register symbols"
+} % begin verbatim
+
+#(use-modules (scm accreg))
+
+\new PianoStaff
+<<
+  \new Staff \relative {
+    \clef treble \discant "10" r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a]
+    <<
+      { r16 <f bes> r <e a> r <d g> }
+      \\
+      { d r a r bes r }
+    >> |
+    <cis e a>1
+  }
+  \new Staff \relative {
+    \clef treble \freeBass "1" r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16
+    \clef bass \stdBass "Master"
+    <<
+      { r16 <f, bes d>^"b" r <e a c>^"am" r <d g bes>^"gm" |
+      <e a cis>1^"a" }
+      \\
+      { d8_"D" c_"C" bes_"B" | a1_"A" }
+    >>
+  }
+>>
diff --git a/Documentation/snippets/accordion-registers.ly b/Documentation/snippets/accordion-registers.ly
deleted file mode 100644 (file)
index 00df021..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.23
-\version "2.17.23"
-
-\header {
-  lsrtags = "keyboards, specific-notation, symbols-and-glyphs"
-
-  texidoc = "Accordion register symbols are available as
-@code{\\markup} as well as as standalone music events (as register
-changes tend to occur between actual music events.  Bass registers are
-not overly standardized.  The available commands can be found in
-@ruser{Accordion Registers}."
-
-  doctitle = "Accordion register symbols"
-} % begin verbatim
-
-
-\layout { ragged-right = ##t }
-
-#(use-modules (scm accreg))
-
-\new PianoStaff
-<<
-  \new Staff \relative
-  { \clef treble \discant "10" r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a]
-    << { r16 <f bes> r <e a> r <d g> } \\ { d r a r bes r } >> | <cis e a>1 }
-  \new Staff \relative
-  { \clef treble \freeBass "1" r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16
-    \clef bass \stdBass "Master"
-    << { r16 <f, bes d>^"b" r <e a c>^"am" r <d g bes>^"gm" |
-        <e a cis>1^"a" } \\
-       { d8_"D" c_"C" bes_"B" | a1_"A" }
-     >>
-  }
->>
index d0e13e5adc93b4ecda3f6befe272008c790b717e..35f23de0a5ecd5764dbd4a05214dbd419b586c6a 100644 (file)
@@ -1,11 +1,10 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.6
-\version "2.17.6"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "ancient-notation, chords, contexts-and-engravers"
 When writing a figured bass, you can place the figures above or below
 the bass notes, by defining the
 @code{BassFigureAlignmentPositioning.direction} property (exclusively
-in a @code{Staff} context).  Choices are @code{#UP} (or @code{#1}),
+in a @code{Staff} context). Choices are @code{#UP} (or @code{#1}),
 @code{#CENTER} (or @code{#0}) and @code{#DOWN} (or @code{#-1}).
 
-This property can be changed as many times as you wish.  Use
+This property can be changed as many times as you wish. Use
 @code{\\once \\override} if you don't want the override to apply to the
 whole score.
 
@@ -25,13 +24,12 @@ whole score.
   doctitle = "Adding a figured bass above or below the notes"
 } % begin verbatim
 
-
-
 bass = {
   \clef bass
   g4 b, c d
   e d8 c d2
 }
+
 continuo = \figuremode {
   <_>4 <6>4 <5/>4
   \override Staff.BassFigureAlignmentPositioning.direction = #UP
@@ -42,6 +40,7 @@ continuo = \figuremode {
   %\bassFigureStaffAlignmentDown
   <4>4. <4>8 <_+>4
 }
+
 \score {
   <<
     \new Staff = bassStaff \bass
index 6f05ed94eda50c4efc88120bf3960a9ab349a313..5223ba116ee0516d9c00106542bdffac4cd14845 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, staff-notation, vocal-music"
@@ -17,7 +17,6 @@ manually to prevent collisions.
   doctitle = "Adding ambitus per voice"
 } % begin verbatim
 
-
 \new Staff <<
   \new Voice \with {
     \consists "Ambitus_engraver"
index f4a9963b3fdc39d1335482e98407899b7e045970..ef1d5ad8ae9087c699bc1ba5b8d762d8ead6b8d6 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "breaks, contexts-and-engravers, staff-notation, workaround"
@@ -21,7 +21,6 @@ workaround is to add a setting of
   doctitle = "Adding an extra staff at a line break"
 } % begin verbatim
 
-
 \score {
   \new StaffGroup \relative c'' {
     \new Staff
index 430371a6444e42ddcddf69e5dbafa66a4c3fe808..7bf2674b7ac3571084ff1deb130165bb0a8b6dde 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, really-simple, staff-notation"
@@ -17,7 +17,6 @@ piece.
   doctitle = "Adding an extra staff"
 } % begin verbatim
 
-
 \score {
   <<
     \new Staff \relative c'' {
index fce68d84b75b46612697c1ce25f9673135da40f8..99971e914a09552065968d3a3e25c352f9e97e94 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, tweaks-and-overrides"
index ee14a8aff5b52dfef57e7abfda0c4549e378ac4a..893733a42dc5a1ef814820ab167f213980510768 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, specific-notation"
@@ -17,11 +17,11 @@ To add bar line indications in the @code{ChordNames} context, add the
   doctitle = "Adding bar lines to ChordNames context"
 } % begin verbatim
 
-
 \new ChordNames \with {
   \override BarLine.bar-extent = #'(-2 . 2)
   \consists "Bar_engraver"
 }
+
 \chordmode {
   f1:maj7 f:7 bes:7
 }
index 5912d2d8aa1728e60b98c52e22c0fbb2deae650b..e2952812867b581419080b6307dd990ac50cc379 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, rhythms"
@@ -24,7 +24,6 @@ sections (enclosed within curly braces).
   doctitle = "Adding beams slurs ties etc. when using tuplet and non-tuplet rhythms"
 } % begin verbatim
 
-
 {
   r16[ g16 \tuplet 3/2 { r16 e'8] }
   g16( a \tuplet 3/2 { b d e') }
index 7f354029fe14650377e8c0d964c58fdd7fc30d64..168e82e65b32b63b6ecbf0501bf7dcf6eb4ed751 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "percussion, preparing-parts, really-simple, rhythms, specific-notation"
@@ -21,7 +21,6 @@ lines is possible.
   doctitle = "Adding drum parts"
 } % begin verbatim
 
-
 drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh hhc8 hho hhc8 hh16 hh hhc4 r4 r2 }
 drl = \drummode { bd4 sn8 bd bd4 << bd ss >>  bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
 timb = \drummode { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb }
index 9e3f6072cb2ecd4d76d3872724b72bd31075a4cf..7c7a7b9dbcd2f3666f839fec46b383fe895268d4 100644 (file)
@@ -1,27 +1,26 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.16.0
-\version "2.16.0"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "scheme-language"
 
   texidoc = "
-You can add additional elements to notes using @code{map-some-music}. In this
-example, an extra script is attached to a note.
+You can add additional elements to notes using @code{map-some-music}.
+In this example, an extra script is attached to a note.
 
 In general, first do a @code{\\displayMusic} of the music you want to
 create, then write a function that will work on the appropriate parts
 of the music for you.
+
 "
   doctitle = "Adding extra fingering with scheme"
 } % begin verbatim
 
-
 addScript =
 #(define-music-function (parser location script music)
    (ly:event? ly:music?)
index 0d32b04f1c835aab46f25118e0bf21ef93e6aff0..6231619a918421c359dc822246d09563c81bbd64 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, fretted-strings, really-simple"
@@ -16,7 +16,6 @@ Fingering instructions can be entered using a simple syntax.
   doctitle = "Adding fingerings to a score"
 } % begin verbatim
 
-
 \relative c'' {
   c4-1 d-2 f-4 e-3
 }
index af261ba71d0b8ec14e50f91d5e323c4be62e1815..1ff5fc74fd5238e52c8e9b607d632aead7890f19 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, specific-notation"
@@ -17,8 +17,6 @@ and @code{\\finger}.
   doctitle = "Adding fingerings to tablatures"
 } % begin verbatim
 
-
-
 one = \markup { \finger 1 }
 two = \markup { \finger 2 }
 threeTwo = \markup {
index 80df7dc6d0539e8beb736e61b6737f1663db7fc4..bdaf405cafd6c2ef33e206fcc8e27861870f9605 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "staff-notation, symbols-and-glyphs, vocal-music"
@@ -20,85 +20,144 @@ their own in the next system.
 } % begin verbatim
 
 #(define-markup-command (arrow-at-angle layout props angle-deg length fill)
-   (number? number? boolean?)
-   (let* (
-          ;; PI-OVER-180 and degrees->radians are taken from flag-styles.scm
-          (PI-OVER-180 (/ (atan 1 1) 45))
-          (degrees->radians (lambda (degrees) (* degrees PI-OVER-180)))
-          (angle-rad (degrees->radians angle-deg))
-          (target-x (* length (cos angle-rad)))
-          (target-y (* length (sin angle-rad))))
-     (interpret-markup layout props
-                       (markup
-                        #:translate (cons (/ target-x 2) (/ target-y 2))
-                        #:rotate angle-deg
-                        #:translate (cons (/ length -2) 0)
-                        #:concat (#:draw-line (cons length 0)
-                                              #:arrow-head X RIGHT fill)))))
+  (number? number? boolean?)
+  (let* (
+      (PI-OVER-180 (/ (atan 1 1) 34))
+      (degrees->radians (lambda (degrees) (* degrees PI-OVER-180)))
+      (angle-rad (degrees->radians angle-deg))
+      (target-x (* length (cos angle-rad)))
+      (target-y (* length (sin angle-rad))))
+    (interpret-markup layout props
+      (markup
+      #:translate (cons (/ target-x 2) (/ target-y 2))
+      #:rotate angle-deg
+      #:translate (cons (/ length -2) 0)
+      #:concat (#:draw-line (cons length 0)
+      #:arrow-head X RIGHT fill)))))
 
-splitStaffBarLineMarkup = \markup \with-dimensions #'(0 . 0) #'(0 . 0) {
-  \combine
-    \arrow-at-angle #45 #(sqrt 8) ##f
-    \arrow-at-angle #-45 #(sqrt 8) ##f
+splitStaffBarLine = {
+  \once \override Staff.BarLine.stencil =
+  #(lambda (grob)
+    (ly:stencil-combine-at-edge
+    (ly:bar-line::print grob)
+    X RIGHT
+    (grob-interpret-markup grob #{
+      \markup\with-dimensions #'(0 . 0) #'(0 . 0) {
+        \translate #'(5.95 . .14)\arrow-at-angle #45 #(sqrt 8) ##t
+        \translate #'(5.35 . -.13)\arrow-at-angle #-45 #(sqrt 8) ##t }#})
+    0))
+  \break
 }
 
-splitStaffBarLine = {
+convDownStaffBarLine = {
   \once \override Staff.BarLine.stencil =
-    #(lambda (grob)
-       (ly:stencil-combine-at-edge
-        (ly:bar-line::print grob)
-        X RIGHT
-        (grob-interpret-markup grob splitStaffBarLineMarkup)
-        0))
+  #(lambda (grob)
+    (ly:stencil-combine-at-edge
+    (ly:bar-line::print grob)
+    X RIGHT
+    (grob-interpret-markup grob #{
+        \markup\with-dimensions #'(0 . 0) #'(0 . 0) {
+          \translate #'(5.3 . -.13)\arrow-at-angle #-45 #(sqrt 8) ##t }#})
+      0))
   \break
 }
 
-\paper {
-  ragged-right = ##t
-  short-indent = 5\mm
+convUpStaffBarLine = {
+  \once \override Staff.BarLine.stencil =
+  #(lambda (grob)
+    (ly:stencil-combine-at-edge
+    (ly:bar-line::print grob)
+    X RIGHT
+    (grob-interpret-markup grob #{
+        \markup\with-dimensions #'(0 . 0) #'(0 . 0) {
+          \translate #'(5.28 . .14)\arrow-at-angle #45 #(sqrt 8) ##t }#})
+      0))
+  \break
 }
 
+
 \score {
   <<
     \new ChoirStaff <<
-      \new Staff \with { instrumentName = #"High I + II" } {
+      \new Staff
+      \with {
+        instrumentName = #"H I + H II"
+      } {
+        \key f\minor
         <<
           \repeat unfold 4 f''1
           \\
-          \repeat unfold 4 d''1
+          \repeat unfold 4 des''1
         >>
+        \key f\major
         \splitStaffBarLine
       }
       \new Staff \with { instrumentName = #"Low" } {
+        \key f\minor
         <<
-          \repeat unfold 4 b'1
+          \repeat unfold 4 bes'1
           \\
           \repeat unfold 4 g'1
         >>
+        \key f\major
       }
 
-      \new Staff \with { shortInstrumentName = #"H I" } {
+      \new Staff \with { shortInstrumentName = #"I" } {
+        \key f \major
         R1*4
         \repeat unfold 2 { r4 f''2 r4 } \repeat unfold 2 e''1
+        \key f\minor
+        \convDownStaffBarLine
       }
-      \new Staff \with { shortInstrumentName = #"H II" } {
+      \new Staff \with { shortInstrumentName = #"II" } {
+        \key f \major
         R1*4
-        \repeat unfold 4 b'2 \repeat unfold 2 c''1
+        \repeat unfold 4 bes'2 \repeat unfold 2 c''1
+        \key f\minor
+        \convUpStaffBarLine
       }
+
       \new Staff \with { shortInstrumentName = #"L" } {
+        \key f\major
         R1*4
         <<
           \repeat unfold 4 g'1
           \\
           \repeat unfold 4 c'1
         >>
+        \key f\minor
+      }
+
+      \new Staff
+      \with {
+        shortInstrumentName = #"I+II"
+      } {
+        \key f\minor
+        R1*8
+        <<
+          \repeat unfold 4 f''1
+          \\
+          \repeat unfold 4 des''1
+        >>
+      }
+      \new Staff \with { shortInstrumentName = #"L" } {
+        \key f\minor
+        R1*8
+        <<
+          \repeat unfold 4 bes'1
+          \\
+          \repeat unfold 4 g'1
+        >>
       }
     >>
   >>
   \layout {
     \context {
       \Staff \RemoveEmptyStaves
-      \override VerticalAxisGroup.remove-first = ##t
+      \override VerticalAxisGroup #'remove-first = ##t
     }
   }
 }
+\paper {
+  ragged-right = ##t
+}
index a2d214337d6ae01463cd1fa9ce1f9e4b1abea988..16e00b927e11448ebca95965ff1e3f5ba26a5725 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides"
index 92c4fc31e53671bd9c01a1ef563f3aa293f313b9..f4d790c11352c8476a6b5b9cb868f45c0b0dea81 100644 (file)
@@ -1,11 +1,10 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.6
-\version "2.17.6"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "staff-notation, vocal-music"
@@ -26,7 +25,6 @@ can be cued, but they cannot overlap each other in time.
   doctitle = "Adding orchestral cues to a vocal score"
 } % begin verbatim
 
-
 cueWhile =
 #(define-music-function
    (parser location instrument name dir music)
index 05b4e9ba0770a68a6ba6af814923cad9e996d9f6..151b11cfa5614852b952f1c1c1fa991fb3802458 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, workaround"
@@ -18,7 +18,6 @@ objects in parentheses.  The associated grob is @code{ParenthesesItem}.
   doctitle = "Adding parentheses around an expressive mark or chordal note"
 } % begin verbatim
 
-
 \relative c' {
   c2-\parenthesize ->
   \override ParenthesesItem.padding = #0.1
index 32fd66cdfd1e47fcbc6ccc8c8c57a0b0300aae15..9b79e4f4479e9c0287e31a940b092d6e23e3053a 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-cool, scheme-language, text, titles"
@@ -17,7 +17,6 @@ score.
   doctitle = "Adding the current date to a score"
 } % begin verbatim
 
-
 % first, define a variable to hold the formatted date:
 date = #(strftime "%d-%m-%Y" (localtime (current-time)))
 
index 0cbcfeb719f293ba263b5898181e9e1bfbb35e69..3b4472e9bdde076af22800139dd74bf283340a87 100644 (file)
@@ -1,28 +1,26 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.30
-\version "2.17.30"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, staff-notation, tweaks-and-overrides"
 
   texidoc = "
-Skipped beats in very long glissandi are sometimes indicated by
-timing marks, often consisting of stems without noteheads.  Such
-stems can also be used to carry intermediate expression markings.
+Skipped beats in very long glissandi are sometimes indicated by timing
+marks, often consisting of stems without noteheads.  Such stems can
+also be used to carry intermediate expression markings.
 
-If the stems do not align well with the glissando, they may need to
-be repositioned slightly.
-"
+If the stems do not align well with the glissando, they may need to be
+repositioned slightly.
 
+"
   doctitle = "Adding timing marks to long glissandi"
 } % begin verbatim
 
-
 glissandoSkipOn = {
   \override NoteColumn.glissando-skip = ##t
   \hide NoteHead
index fc0d3673d1ca64267714c3d2749a8a3fb43fbc61..1826ea194d20cb94ae0441747c40dc23c060d6a4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "repeats"
@@ -20,7 +20,6 @@ should appear; see also the @qq{Volta multi staff} snippet.
   doctitle = "Adding volta brackets to additional staves"
 } % begin verbatim
 
-
 <<
   \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
   \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
index e8d2f551871c724535b891c9aac005457f091dfe..7587f35e4804e2eadb2a88f5a2c73461bd5fc100 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "simultaneous-notes"
index d442d817ec665bbe71ac326f30e2c3315820b025..69e2658b3c3163bbc436844b74b09f4f061bae4c 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -17,7 +17,6 @@ The space given to grace notes can be adjusted using the
   doctitle = "Adjusting grace note spacing"
 } % begin verbatim
 
-
 graceNotes = {
   \grace { c4 c8 c16 c32 }
   c8
index e7bcf160f125bdd413839b07dcff7de29486acfb..77f626113abc107cbf816b6d1a517ea322f3d363 100644 (file)
@@ -1,13 +1,13 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
-  lsrtags = "correction-wanted, spacing, text, vocal-music, workaround"
+  lsrtags = "spacing, text, tweaks-and-overrides, vocal-music, workaround"
 
   texidoc = "
 This snippet shows how to bring the lyrics line closer to the staff.
index 6b0b03478d7ffb50f8b414d93ae7007a63eb7feb..89f013ced6bb5e356f7d582d73efab3f326743a1 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
index b67aeac03a360a4c01f1a2ddfa57c0e0b5842de2..4aa325956f4497f7b0ad24159af3ae6a4e49a511 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "paper-and-layout, text, titles"
@@ -20,7 +20,6 @@ and the following systems, respectively.
   doctitle = "Aligning and centering instrument names"
 } % begin verbatim
 
-
 \paper {
   left-margin = 3\cm
 }
index 321f4cb3d748742a6cab82106332dcf0bd4c86d3..c65d4fa4af7f96e70879d32faec07e450e1f07cd 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -19,7 +19,6 @@ positioned directly over the bar line or left-aligned to the bar line.
   doctitle = "Aligning bar numbers"
 } % begin verbatim
 
-
 \relative c' {
   \set Score.currentBarNumber = #111
   \override Score.BarNumber.break-visibility = #all-visible
index c25eccd8a16d237457239aace1a6ea3b390118c7..dac50af89f079a7f60425f39f77c889febb1c736 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "text"
@@ -17,7 +17,6 @@ This behavior can be modified to align at right or left.
   doctitle = "Aligning objects created with the \\mark command"
 } % begin verbatim
 
-
 \relative c' {
   c1 \mark "(Center)"
   c1
index ae3f731ed209b4fc9ed41e74115daee09b6da878..1fd2703869477aecdf859fd5941d1433410ee9fc 100644 (file)
@@ -1,5 +1,5 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
index d4a211ffe549e6a8268615e6989bc4ac25cdadd6..3afb47f27ae969de4bcafe36dc9cbb0bf3a9bafb 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, fretted-strings, spacing, specific-notation"
@@ -18,7 +18,6 @@ chord construct <>, even if it is only a single note.
   doctitle = "Allowing fingerings to be printed inside the staff"
 } % begin verbatim
 
-
 \relative c' {
   <c-1 e-2 g-3 b-5>2
   \override Fingering.staff-padding = #'()
index 719aa97ea12a02f12900037138a8beef78d8ef53..4a35b1c8cd3f63c40d7a0259d93fd7e0244580db 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, tweaks-and-overrides"
@@ -22,7 +22,6 @@ of the final argument.  Non-integer arguments may also be used.
   doctitle = "Altering the length of beamed stems"
 } % begin verbatim
 
-
 \relative c'' {
   \override Stem.details.beamed-lengths = #'(2)
   a8[ a] a16[ a] a32[ a]
index 017551b62ba821354a8640a9d52fe0d6ba219654..f69ecd3391523ff831c7181f8de037c9f5e94d4d 100644 (file)
@@ -1,20 +1,22 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.16.0
-\version "2.16.0"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, staff-notation, tweaks-and-overrides"
-  texidoc = "Two alternative methods for bar numbering can be set,
-  especially for when using repeated music."
+
+  texidoc = "
+Two alternative methods for bar numbering can be set, especially for
+when using repeated music.
+
+"
   doctitle = "Alternative bar numbering"
 } % begin verbatim
 
-
 \relative c'{
   \set Score.alternativeNumberingStyle = #'numbers
   \repeat volta 3 { c4 d e f | }
index d735931c3102ac0d5886da9dbcd3b2964c952a98..cb104d169f46cddc10f8add5b1d28ed67ef5b02b 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, rhythms"
index 229d08a66aefdadfbd932e745a35ac128cf20a64..df6ccf010cad4e4b883e423d3366579b725e63a4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, vocal-music"
@@ -18,7 +18,6 @@ voices.
   doctitle = "Ambitus with multiple voices"
 } % begin verbatim
 
-
 \new Staff \with {
   \consists "Ambitus_engraver"
   }
index 0111acda59c83a4bdade0287eae6c4febbf8390f..0d5e38b43b058e28af27834ef19e29a11d077ce0 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, vocal-music"
@@ -20,7 +20,6 @@ Accidentals only show up if they are not part of the key signature.
   doctitle = "Ambitus"
 } % begin verbatim
 
-
 \layout {
   \context {
     \Voice
index 02a153baf72892b55707de56674247841d2bdac0..f823565e6229acea87dee121e5e8d486470a600f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, really-simple, tweaks-and-overrides"
@@ -18,13 +18,13 @@ staff instead.
   doctitle = "Analysis brackets above the staff"
 } % begin verbatim
 
-
 \layout {
   \context {
     \Voice
     \consists "Horizontal_bracket_engraver"
   }
 }
+
 \relative c'' {
   \once \override HorizontalBracket.direction = #UP
   c2\startGroup
index e0d6f54f924baea1bc180d1802631de4cadacc92..be2ee37a23963254dc86e0a73e6933726146cf08 100644 (file)
@@ -1,12 +1,10 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.6
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "ancient-notation, symbols-and-glyphs"
   texidoc = "
 Shown here are many (all?) of the symbols that are included in
 LilyPond's support for ancient notation.
+
 "
   doctitle = "Ancient fonts"
 } % begin verbatim
 
-
 upperStaff = \new VaticanaStaff = "upperStaff" <<
   \context VaticanaVoice <<
     \transpose c c {
@@ -31,7 +29,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
       \override NoteHead.style = #'vaticana.inclinatum
       a! b ces'
       \bar "|"
-      % \break % 1 (8*1)
 
       \override NoteHead.style = #'vaticana.quilisma
       b! des'! ges! fes!
@@ -42,7 +39,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
       \override NoteHead.style = #'vaticana.reverse.plica
       c d
       \bar "|"
-      % \break %2 (8*1)
 
       \override NoteHead.style = #'vaticana.punctum.cavum
       es f
@@ -54,7 +50,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
       g f
       \override NoteHead.style = #'vaticana.linea.punctum
       \once \override Staff.BarLine.bar-extent = #'(-1 . 1) \bar "|"
-      % \break % 3 (8*1)
 
       es d
       \override NoteHead.style = #'vaticana.epiphonus
@@ -69,7 +64,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
       \clef "medicaea-fa2"
       ces des
       \bar "|"
-      % \break % 4 (8*1)
 
       e! f! ges
       \clef "medicaea-do2"
@@ -78,7 +72,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
       \override NoteHead.style = #'medicaea.virga
       b! a!
       \bar "|"
-      % \break % 5 (8*1)
 
       ges fes
       \clef "medicaea-fa1"
@@ -92,7 +85,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
       \clef "hufnagel-fa2"
       ces des es
       \bar "|"
-      % \break % 6 (8*1)
 
       fes ges
       \clef "hufnagel-do2"
@@ -101,17 +93,14 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
       \override NoteHead.style = #'hufnagel.virga
       bes! as!
       \bar "|"
-      % \break % 7 (8*1)
 
       ges! fes!
       \clef "hufnagel-do-fa"
       \override NoteHead.style = #'hufnagel.punctum
       es! des ces des! es! fes!
       \bar "||"
-      % \break % 8 (8*1)
 
       s32*1
-      % \break % 12 (32*1)
     }
   >>
 >>
@@ -126,12 +115,10 @@ lowerStaff = \new MensuralStaff = "lowerStaff" <<
       \clef "neomensural-c2"
       cis1
       \bar "|"
-      % \break % 2 (16*1)
 
       \[ g\breve dis''\longa \]
       b\breve \[ a\longa d\longa \]
       \clef "petrucci-c2"
-      % \break % 4 (16*1)
 
       fis1 ces1
       \clef "petrucci-c2"
@@ -140,7 +127,6 @@ lowerStaff = \new MensuralStaff = "lowerStaff" <<
       \clef "mensural-c2"
       r\breve
       \bar "|"
-      % \break % 5 (8*1)
 
       r2
       \clef "mensural-g"
@@ -155,7 +141,6 @@ lowerStaff = \new MensuralStaff = "lowerStaff" <<
       \clef "petrucci-f"
       r\breve
       \bar "|"
-      % \break % 6 (8*1)
 
       r\breve
       \clef "mensural-f"
@@ -165,18 +150,15 @@ lowerStaff = \new MensuralStaff = "lowerStaff" <<
       \clef "mensural-f"
       e\breve f g a1
       \clef "mensural-g"
-      % \break % 7 (8*1)
 
       \[ bes'!\longa a'!\longa c''!\longa \]
       e'1 d' c' d' \bar "|"
       \bar "|"
-      % \break % 9 (16*1)
 
       bes'!\longa fis'!1 as'!1 ges'!\longa % lig
       \set Staff.forceClef = ##t
       \clef "mensural-g"
       e'2 d' c' \bar "|"
-      % \break % 11 (16*1)
 
       \set Staff.forceClef = ##t
       \clef "petrucci-g"
@@ -187,7 +169,6 @@ lowerStaff = \new MensuralStaff = "lowerStaff" <<
       \set Staff.forceClef = ##t
       \clef "mensural-g"
       es'! des'! cis'!1 \bar "||"
-      % \break % 12 (8*1)
     }
   >>
 >>
index a0117699c445dea41619ae5686d7cad11b914a4f..4b021682058e035df84900dd46d191b1d7613e24 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
index fbab93e75f1193105c57a6a6e5d735c2ae285472..afffd25ad023c0ac05ad1ed7cbe4fda5f51180f5 100644 (file)
@@ -1,14 +1,13 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.30
-\version "2.17.30"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
-  lsrtags = "vocal-music, ancient-notation, template"
+  lsrtags = "ancient-notation, template, vocal-music"
 
   texidoc = "
 This example demonstrates how to do modern transcription of Gregorian
@@ -20,7 +19,6 @@ length.
   doctitle = "Ancient notation template -- modern transcription of gregorian music"
 } % begin verbatim
 
-
 \include "gregorian.ly"
 
 chant = \relative c' {
index f9867cb5d6c616642e2e9e537ea3f387d682cab5..b03a124a46aaa8d679592880cc32aafc67eb1495 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "ancient-notation, real-music, really-cool, template"
@@ -22,7 +22,6 @@ on the staves.
   doctitle = "Ancient notation template -- modern transcription of mensural music"
 } % begin verbatim
 
-
 global = {
   \set Score.skipBars = ##t
 
index 84e12ce3dc06aa706ede0f64dab6fa9f24342217..1fb3e32a4a99d1803491d98e56df706d6d49215f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "ancient-notation"
@@ -18,7 +18,6 @@ Time signatures may also be engraved in an old style.
   doctitle = "Ancient time signatures"
 } % begin verbatim
 
-
 {
   \override Staff.TimeSignature.style = #'neomensural
   s1
index 81f5816c0a56026213f67e6a06fe3c25ce693bbe..252138644d5811e669b120d88124e713f1691359 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "template, vocal-music"
@@ -19,7 +19,6 @@ more possibilities.
   doctitle = "Anglican psalm template"
 } % begin verbatim
 
-
 SopranoMusic = \relative g' {
   g1 | c2 b | a1 | \bar "||"
   a1 | d2 c | c b | c1 | \bar "||"
index 8cefbedea781a681efa4c942aa797b365266972c..a340ac00281e876c315f772cd3ae10bc5ce166d6 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, pitches"
index 3d1708e4556223445e1dab4c2f9e7cb87906f467..60b3b0ae8330b01500b30f37b540c48d4d867f97 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "world-music"
@@ -20,7 +20,6 @@ of what could be the start of a hijaz improvisation:
   doctitle = "Arabic improvisation"
 } % begin verbatim
 
-
 \include "arabic.ly"
 
 \relative sol' {
index 2ff6e85ab8ee11224603cf655ddc810993254c34..eda9c7fb29e95d0631f4f22f68771ff5618cb7e7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -17,7 +17,6 @@ better.
   doctitle = "Asymmetric slurs"
 } % begin verbatim
 
-
 slurNotes = { d,8( a' d f a f' d, a) }
 
 \relative c' {
index 40e9e04d68ee6d365fea613b03c4af546c002210..ae63f423c28b832141dd1207cc3fd0ccd147b175 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "automatic-notation, connecting-notes, rhythms"
index 5f5f7c05e3c38823ad7c49887fc77a11a016803e..de773e60c05557e8000b87ebb3623e2b8b303424 100644 (file)
@@ -1,24 +1,23 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
 
   texidoc = "
-<code>shiftDurations</code> can be used to change the note lengths of a
-piece of music.  It takes two arguments - the scaling factor as a power
-of two, and the number of dots to be added as a positive integer.
+@code{shiftDurations} can be used to change the note lengths of a piece
+of music. It takes two arguments - the scaling factor as a power of
+two, and the number of dots to be added as a positive integer.
 
 "
   doctitle = "Automatically change durations"
 } % begin verbatim
 
-
 \paper { indent = 0 }
 
 music = \relative c'' { a1 b2 c4 d8 r }
index 6ff6b998560a96d847d192129772e4298a6a82db..4f830f0c8e52a63aed34b6e339c9039beedccaf0 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, pitches"
@@ -20,15 +20,15 @@ Voice context and overriding the @code{neutral-direction} of Stem.
 
 \relative c'' {
   \time 3/4
-  \autoBeamOff
   a8 b g f b g |
-  c b d c b c
+  c  b d c b c |
 }
 
 \layout {
   \context {
     \Voice
     \consists "Melody_engraver"
-    \override Stem.neutral-direction = #'()
+    \autoBeamOff
+    \stemNeutral
   }
 }
index 9af5fffa99995a2950d7f2526faf37c281f1e73e..f522582080e120989e163de48dc040e6b0c41c9f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, editorial-annotations, rhythms, tweaks-and-overrides"
@@ -20,7 +20,6 @@ overridden.
   doctitle = "Avoiding collisions with chord fingerings"
 } % begin verbatim
 
-
 \relative c' {
   \set fingeringOrientations = #'(up)
   \set stringNumberOrientations = #'(up)
@@ -32,12 +31,11 @@ overridden.
   <f c'\5>8
   <f c'-\rightHandFinger #2 >8
 
-  % Corrected to avoid collisions
+  % No tweak needed
   r8
-  \override Fingering.add-stem-support = ##t
   <f c'-5>8
-  \override StringNumber.add-stem-support = ##t
   <f c'\5>8
+   % Corrected to avoid collisions
   \override StrokeFinger.add-stem-support = ##t
   <f c'-\rightHandFinger #2 >8
 }
diff --git a/Documentation/snippets/bar-chords-notation-for-guitar--with-text-spanner.ly b/Documentation/snippets/bar-chords-notation-for-guitar--with-text-spanner.ly
deleted file mode 100644 (file)
index a1e7232..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.6
-\version "2.17.6"
-
-\header {
-  lsrtags = "chords, fretted-strings"
-
-  texidoc = "
-Here is how to print bar chords, or half-bar chords (just uncomment the
-appropriate line for to select either one).
-
-The syntax is @code{\\bbarre #\"@var{fret number}\" @{ notes @} }.
-"
-  doctitle = "Bar chords notation for Guitar (with Text Spanner)"
-} % begin verbatim
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%%%%%%  Cut here ----- Start 'bbarred.ly'
-
-%% C with slash -------------------------------
-cWithSlash = \markup {
-  \combine \roman C \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0)
-}
-%% Span -----------------------------------
-%% Syntax: \bbarre #"text" { notes } - text = any number of box
-bbarre =
-#(define-music-function (barre location str music) (string? ly:music?)
-   (let ((elts (extract-named-music music '(NoteEvent EventChord))))
-     (if (pair? elts)
-         (let ((first-element (first elts))
-               (last-element (last elts)))
-           (set! (ly:music-property first-element 'articulations)
-                 (cons (make-music 'TextSpanEvent 'span-direction -1)
-                       (ly:music-property first-element 'articulations)))
-           (set! (ly:music-property last-element 'articulations)
-                 (cons (make-music 'TextSpanEvent 'span-direction 1)
-                       (ly:music-property last-element 'articulations))))))
-   #{
-       \once \override TextSpanner.font-size = #-2
-       \once \override TextSpanner.font-shape = #'upright
-       \once \override TextSpanner.staff-padding = #3
-       \once \override TextSpanner.style = #'line
-       \once \override TextSpanner.to-barline = ##f
-       \once \override TextSpanner.bound-details =
-            #`((left
-                (text . ,#{ \markup { \draw-line #'( 0 . -.5) } #})
-                (Y . 0)
-                (padding . 0.25)
-                (attach-dir . -2))
-               (right
-                (text . ,#{ \markup { \cWithSlash #str } #})
-                (Y . 0)
-                (padding . 0.25)
-                (attach-dir . 2)))
-%% uncomment this line for make full barred
-       % \once  \override TextSpanner.bound-details.left.text =  \markup { "B" #str }
-       $music
-   #})
-
-%% %%%%%%%  Cut here ----- End 'bbarred.ly'
-%% Copy and change the last line for full barred. Rename in 'fbarred.ly'
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%% Syntaxe: \bbarre #"text" { notes } - text = any number of box
-\relative c'{ \clef "G_8" \stemUp \bbarre #"III" { <f a'>16[  c' d c d8] } }
diff --git a/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly b/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly
new file mode 100644 (file)
index 0000000..9a8b950
--- /dev/null
@@ -0,0 +1,74 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
+
+\header {
+  lsrtags = "chords, fretted-strings"
+
+  texidoc = "
+Here is how to print bar chords (or barre chords) or half-bar chords
+(just uncomment the appropriate line for to select either one). The
+syntax is : @code{\\bbarre #'fret_number' note(s)}
+
+
+
+
+
+
+"
+  doctitle = "Bar chords notation for Guitar (with Text Spanner)"
+} % begin verbatim
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%%%%%%  Cut here ----- Start 'bbarred.ly'
+
+%% C with slash -------------------------------
+cWithSlash = \markup {
+  \combine \roman C \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0)
+}
+%% Span -----------------------------------
+%% Syntax: \bbarre #"text" { notes } - text = any number of box
+bbarre =
+#(define-music-function (barre location str music) (string? ly:music?)
+   (let ((elts (extract-named-music music '(NoteEvent EventChord))))
+     (if (pair? elts)
+         (let ((first-element (first elts))
+               (last-element (last elts)))
+           (set! (ly:music-property first-element 'articulations)
+                 (cons (make-music 'TextSpanEvent 'span-direction -1)
+                       (ly:music-property first-element 'articulations)))
+           (set! (ly:music-property last-element 'articulations)
+                 (cons (make-music 'TextSpanEvent 'span-direction 1)
+                       (ly:music-property last-element 'articulations))))))
+   #{
+       \once \override TextSpanner.font-size = #-2
+       \once \override TextSpanner.font-shape = #'upright
+       \once \override TextSpanner.staff-padding = #3
+       \once \override TextSpanner.style = #'line
+       \once \override TextSpanner.to-barline = ##f
+       \once \override TextSpanner.bound-details =
+            #`((left
+                (text . ,#{ \markup { \draw-line #'( 0 . -.5) } #})
+                (Y . 0)
+                (padding . 0.25)
+                (attach-dir . -2))
+               (right
+                (text . ,#{ \markup { \cWithSlash #str } #})
+                (Y . 0)
+                (padding . 0.25)
+                (attach-dir . 2)))
+%% uncomment this line for make full barred
+       % \once  \override TextSpanner.bound-details.left.text =  \markup { "B" #str }
+       $music
+   #})
+
+%% %%%%%%%  Cut here ----- End 'bbarred.ly'
+%% Copy and change the last line for full barred. Rename in 'fbarred.ly'
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Syntaxe: \bbarre #"text" { notes } - text = any number of box
+\relative c'{ \clef "G_8" \stemUp \bbarre #"III" { <f a'>16[  c' d c d8] } }
index a09e8853d06277e3d1fbb12e29b229982924f3fb..be7e458d6363558e049d48004140eafcecdcb0c7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -18,7 +18,6 @@ levels:
   doctitle = "Beam endings in Score context"
 } % begin verbatim
 
-
 \relative c'' {
   \time 5/4
   % Set default beaming for all staves
index 5d77375ddc432efbcdcc28037ac1ad9d08b35975..9fff57e1142c5a0a3c8a51cf15799a7924df00ec 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
index 1b60a49d41b2c8c2432be6b20ef69d657f5d38bb..755e676815004d413d2731b3657f3f096759f2d7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -17,7 +17,6 @@ behavior can be changed as shown:
   doctitle = "Beams across line breaks"
 } % begin verbatim
 
-
 \relative c'' {
   \override Beam.breakable = ##t
   c8 c[ c] c[ c] c[ c] c[ \break
index c9139bafb1f52c1702be5ee2dec65f48fb437744..6e49f9e5ec90e29810e6bf640ba2fe2b998302fc 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, really-cool, text"
@@ -18,8 +18,10 @@ white box will not overlap any other grob.
   doctitle = "Blanking staff lines using the \\whiteout command"
 } % begin verbatim
 
+\layout {
+  ragged-right = ##f
+}
 
-\layout { ragged-right = ##f }
 \relative c' {
   \override TextScript.extra-offset = #'(2 . 4)
   c2-\markup { \whiteout \pad-markup #0.5 "middle C" } c
index 52f1e4b46903c28c23b5e267ef2931bad9c7093a..07c48226962f1945cde469e60c5b24b0abb244a4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "paper-and-layout"
@@ -19,7 +19,6 @@ with the book last page.
   doctitle = "Book parts"
 } % begin verbatim
 
-
 #(set-default-paper-size "a6")
 
 \book {
index c1af6d24dae150e249a5c20eeb5200fbf358fb72..b4583bd4d9b6cf8289aa73fa5d8d2f7cd9da12c7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, symbols-and-glyphs"
@@ -17,7 +17,6 @@ ticks, vees and @qq{railroad tracks} (caesura).
   doctitle = "Breathing signs"
 } % begin verbatim
 
-
 \new Staff \relative c'' {
   \key es \major
   \time 3/4
index 1515b52fa33484719226a9b74237278c66160d21..82725533312f59d4a3e312ac4613a1f73a86df42 100644 (file)
@@ -1,11 +1,10 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.19.2
-\version "2.19.2"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "contemporary-notation, expressive-marks, symbols-and-glyphs"
   texidoc = "
 In order to make parts of a crescendo hairpin invisible, the following
 method is used: A white rectangle is drawn on top of the respective
-part of the crescendo hairpin, making it invisible.
+part of the crescendo hairpin, making it invisible.  The rectangle is
+defined as postscript code within a text markup.
 
-The markup command @code{with-dimensions} tells LilyPond to consider only
-the bottom edge of the rectangle when spacing it against the hairpin.
-The property @code{staff-padding} prevents the rectangle from fitting
-between the hairpin and staff.
+The markup command @code{with-dimensions} tells LilyPond to consider
+only the bottom edge of the rectangle when spacing it against the
+hairpin. The property @code{staff-padding} prevents the rectangle from
+fitting between the hairpin and staff.
 
-Make sure to put the hairpin in a lower layer than the text markup to
-draw the rectangle over the hairpin.
+Make sure the hairpin is in a lower layer than the text markup to draw
+the rectangle over the hairpin.
 
 "
   doctitle = "Broken Crescendo Hairpin"
 } % begin verbatim
 
-
 \relative c' {
   <<
     {
@@ -44,7 +43,7 @@ draw the rectangle over the hairpin.
       des16_\markup \with-dimensions #'(2 . 7) #'(0 . 0)
                     \with-color #white
                     \filled-box #'(2 . 7) #'(0 . 2) #0
-      r8. des4 ~ 16->\sff
+      r8. des4 ~ des16->\sff r8.
     }
   >>
 }
index c42000b8af319116f9f75fd2a88ca33a8a02e01a..219fa11bf97c8a01566fbe5ff5263bfa7451bc02 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, symbols-and-glyphs, tweaks-and-overrides"
@@ -18,15 +18,16 @@ pleasing combination of railtracks and fermata.
   doctitle = "Caesura (\"railtracks\") with fermata"
 } % begin verbatim
 
-
 \relative c'' {
   c2.
   % construct the symbol
   \override BreathingSign.text = \markup {
-    \line {
-      \musicglyph #"scripts.caesura.curved"
-      \translate #'(-1.75 . 1.6)
-      \musicglyph #"scripts.ufermata"
+    \override #'(direction . 1)
+    \override #'(baseline-skip . 1.8)
+    \dir-column {
+      \translate #'(0.155 . 0)
+        \center-align \musicglyph #"scripts.caesura.curved"
+      \center-align \musicglyph #"scripts.ufermata"
     }
   }
   \breathe c4
index 67e197227006f1dd368930a9ea1b8545ab881f3c..9aea589ed2c1f4334c4a7a2e14d6627135ecf6a7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, really-cool, scheme-language, text"
@@ -24,41 +24,41 @@ normally printed, using some Scheme code.
 
 hairpinWithCenteredText =
 #(define-music-function (parser location text) (markup?)
-#{
-  \once \override Voice.Hairpin.after-line-breaking =
-    #(lambda (grob)
-      (let* ((stencil (ly:hairpin::print grob))
-             (par-y (ly:grob-parent grob Y))
-             (dir (ly:grob-property par-y 'direction))
-             (new-stencil (ly:stencil-aligned-to
-               (ly:stencil-combine-at-edge
-                 (ly:stencil-aligned-to stencil X CENTER)
-                 Y dir
-                 (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER))
-               X LEFT))
-             (staff-space (ly:output-def-lookup (ly:grob-layout grob) 'staff-space))
-             (staff-line-thickness
-               (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness))
-             (grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name)))
-             (par-x (ly:grob-parent grob X))
-             (dyn-text (eq? (grob-name par-x) 'DynamicText ))
-             (dyn-text-stencil-x-length
-               (if dyn-text
-                 (interval-length
-                   (ly:stencil-extent (ly:grob-property par-x 'stencil) X))
-                 0))
-             (x-shift
-               (if dyn-text
-                 (-
-                   (+ staff-space dyn-text-stencil-x-length)
-                   (* 0.5 staff-line-thickness)) 0)))
+  #{
+    \once \override Voice.Hairpin.after-line-breaking =
+      #(lambda (grob)
+        (let* ((stencil (ly:hairpin::print grob))
+               (par-y (ly:grob-parent grob Y))
+               (dir (ly:grob-property par-y 'direction))
+               (new-stencil (ly:stencil-aligned-to
+                 (ly:stencil-combine-at-edge
+                   (ly:stencil-aligned-to stencil X CENTER)
+                   Y dir
+                   (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER))
+                 X LEFT))
+               (staff-space (ly:output-def-lookup (ly:grob-layout grob) 'staff-space))
+               (staff-line-thickness
+                 (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness))
+               (grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name)))
+               (par-x (ly:grob-parent grob X))
+               (dyn-text (eq? (grob-name par-x) 'DynamicText ))
+               (dyn-text-stencil-x-length
+                 (if dyn-text
+                   (interval-length
+                     (ly:stencil-extent (ly:grob-property par-x 'stencil) X))
+                   0))
+               (x-shift
+                 (if dyn-text
+                   (-
+                     (+ staff-space dyn-text-stencil-x-length)
+                     (* 0.5 staff-line-thickness)) 0)))
 
-      (ly:grob-set-property! grob 'Y-offset 0)
-      (ly:grob-set-property! grob 'stencil
-         (ly:stencil-translate-axis
-          new-stencil
-          x-shift X))))
-#})
+        (ly:grob-set-property! grob 'Y-offset 0)
+        (ly:grob-set-property! grob 'stencil
+           (ly:stencil-translate-axis
+            new-stencil
+            x-shift X))))
+  #})
 
 hairpinMolto =
 \hairpinWithCenteredText \markup { \italic molto }
index 490fde15801523bb5c452d45ea3459d8ec1bb4bd..26e962dc6ebaa3aadbf9d7d2efb29dd5d5ad3091 100644 (file)
@@ -1,28 +1,25 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.7
-\version "2.17.7"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, repeats, staff-notation"
 
   texidoc = "
-Scores of large ensemble works often have bar numbers placed beneath the
-system, centered horizontally on the measure's extent.  This snippet shows
-how the @code{Measure_counter_engraver} may be used to simulate this
-notational practice.  Here, the engraver has been added to a @code{Dynamics}
-context.
+Scores of large ensemble works often have bar numbers placed beneath
+the system, centered horizontally on the measure's extent.  This
+snippet shows how the @code{Measure_counter_engraver} may be used to
+simulate this notational practice.  Here, the engraver has been added
+to a @code{Dynamics} context.
 
 "
-
   doctitle = "Centered measure numbers"
 } % begin verbatim
 
-
 \layout {
   \context {
     \Dynamics
index b5342b4131087cb01e02db78f097b8bbe0e1352d..6b48240774121091d67c099ca73b6203d7cb47c1 100644 (file)
@@ -1,27 +1,29 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.6
-\version "2.17.6"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
-  lsrtags = "text, tweaks-and-overrides, contexts-and-engravers"
+  lsrtags = "contexts-and-engravers, text, tweaks-and-overrides"
+
   texidoc = "
 For technical reasons, text scripts attached to note heads cannot
 easily be centered on a note head's width, unlike articulations.
 
 Instead of using trial-and-error offset tweaks, this snippet uses a
 Scheme engraver to reset the horizontal parent of each markup to a
-@code{NoteColumn}.  This also allows text to follow note heads which have
-been shifted via @code{force-hshift}.
+@code{NoteColumn}.  This also allows text to follow note heads which
+have been shifted via @code{force-hshift}.
+
+
+
 "
   doctitle = "Centering markup on note heads automatically"
 } % begin verbatim
 
-
 #(define (Text_align_engraver ctx)
   (let ((scripts '())
         (note-column #f))
index cc835b9e5d85867dc6cc077466359934a9f04978..c97cb8d43903e100222591f33d7a039ae0ca925c 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, scheme-language, specific-notation, symbols-and-glyphs, unfretted-strings"
@@ -17,7 +17,6 @@ function.
   doctitle = "Changing \\flageolet mark size"
 } % begin verbatim
 
-
 smallFlageolet =
 #(let ((m (make-articulation "flageolet")))
    (set! (ly:music-property m 'tweaks)
index 741edb8388c023baa88f9313ca48c7bec6cad62d..059eccdc17c4491b65359ed106bdd76e9880e96f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, really-simple, simultaneous-notes, specific-notation, tweaks-and-overrides"
@@ -26,7 +26,6 @@ note head).
   doctitle = "Changing a single note's size in a chord"
 } % begin verbatim
 
-
 \relative c' {
   <\tweak font-size #+2 c e g c \tweak font-size #-2 e>1^\markup { A tiny e }_\markup { A big c }
 }
index 6409e4b15d31b8eca58caa87c205ef6652658641..190be19f394955c857751cf80c71f231c57433eb 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -22,7 +22,6 @@ spaces.
   doctitle = "Changing beam knee gap"
 } % begin verbatim
 
-
 {
   f8 f''8 f8 f''8
   \override Beam.auto-knee-gap = #6
diff --git a/Documentation/snippets/changing-beam-thickness-and-spacing.ly b/Documentation/snippets/changing-beam-thickness-and-spacing.ly
new file mode 100644 (file)
index 0000000..6725d75
--- /dev/null
@@ -0,0 +1,32 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
+
+\header {
+  lsrtags = "tweaks-and-overrides"
+
+  texidoc = "
+To make beams thicker or thinner alter the @code{Beam.beam-thickness}
+property.  To adjust the spacing between beams alter the
+@code{Beam.length-fraction} property.
+
+"
+  doctitle = "Changing beam thickness and spacing"
+} % begin verbatim
+
+\relative f' {
+  \time 1/8
+  \override Beam.beam-thickness = #0.4
+  \override Beam.length-fraction = #0.8
+  c32 c c c
+  \revert Beam.beam-thickness  % 0.48 is default thickness
+  \revert Beam.length-fraction  % 1.0 is default spacing
+  c32 c c c
+  \override Beam.beam-thickness = #0.6
+  \override Beam.length-fraction = #1.3
+  c32 c c c
+}
index 3e02b65b431ff6499ac9fb53040514b3ba85ff28..1fd367c3d6b1124733dcd323b8bf49c205f0a546 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords"
@@ -17,7 +17,6 @@ markup.
   doctitle = "Changing chord separator"
 } % begin verbatim
 
-
 \chords {
   c:7sus4
   \set chordNameSeparator
index 118341b7a8a8acc192c31b6b0b3ec15b28620fe9..2ed16981688cd1b43334fb212e70ecb192115c56 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -20,7 +20,6 @@ default number of ten may be changed by overriding the
   doctitle = "Changing form of multi-measure rests"
 } % begin verbatim
 
-
 \relative c'' {
   \compressFullBarRests
   R1*2 | R1*5 | R1*9
index b174cb5bd84b25e691639f72afe775a87e5888dd..51ca53c65c1064aebc4024c91f61a199153010a6 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -17,7 +17,6 @@ or fret in the different orientations will be aligned.
   doctitle = "Changing fret orientations"
 } % begin verbatim
 
-
 \include "predefined-guitar-fretboards.ly"
 
 <<
index 1cd549b7423c67693d033dad8c382395f8bff0b1..f817d558bbcfc17eafde645a38f5c0888948fca1 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.2"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, midi, real-music"
@@ -13,8 +13,7 @@
 When outputting MIDI, the default behavior is for each staff to
 represent one MIDI channel, with all the voices on a staff amalgamated.
 This minimizes the risk of running out of MIDI channels, since there
-are only 16 available per MIDI port, and most devices support only one
-port.
+are only 16 available per track.
 
 However, by moving the @code{Staff_performer} to the @code{Voice}
 context, each voice on a staff can have its own MIDI channel, as is
@@ -26,7 +25,6 @@ two MIDI channels are created, each with a different
   doctitle = "Changing MIDI output to one channel per voice"
 } % begin verbatim
 
-
 \score {
   \new Staff <<
     \new Voice \relative c''' {
@@ -36,8 +34,8 @@ two MIDI channels are created, each with a different
       \time 2/2
       r2 g-"Flute" ~
       g fis ~
-      4 g8 fis e2 ~
-      4 d8 cis d2
+      fis4 g8 fis e2 ~
+      e4 d8 cis d2
     }
     \new Voice \relative c'' {
       \set midiInstrument = #"clarinet"
index 4cd81099656f6c31823652b6c9010d9b22225c45..eafe5679cb8db44ed90898011faf1b3a4f813b00 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "simultaneous-notes"
@@ -17,7 +17,6 @@ the solo and unison sections may be changed:
   doctitle = "Changing partcombine texts"
 } % begin verbatim
 
-
 \new Staff <<
   \set Staff.soloText = #"girl"
   \set Staff.soloIIText = #"boy"
index 7005946043b7c65d236a4dbe4e8a9f4ce56a4a79..ad9842492d5681dc95c1d5f2e5e2dad219820ed7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-cool, scheme-language, tweaks-and-overrides"
@@ -18,7 +18,6 @@ arguments.
   doctitle = "Changing properties for individual grobs"
 } % begin verbatim
 
-
 #(define (mc-squared grob grob-origin context)
   (let ((sp (ly:grob-property grob 'staff-position)))
     (if (grob::has-interface grob 'note-head-interface)
index 4ef7475f41f5f34362edda04ca388ed4925d0f70..38581bb551b3cec0340ba7fb444b68e4479ecc58 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, vocal-music"
index 002aaf7216b57a008ba17664034236b9f1808256..77c5a40eb50b445ca934759e115c5863c228f222 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -23,7 +23,6 @@ is @code{'dashed-line}, and other possible values include @code{'line},
   doctitle = "Changing text and spanner styles for text dynamics"
 } % begin verbatim
 
-
 \relative c'' {
   \set crescendoText = \markup { \italic { cresc. poco } }
   \set crescendoSpanner = #'text
index 7d13dc3b0669b4327ce271b5c6339edb057077b0..ade2d8e63b712455cc8f43f0cc81fa47e7933194 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches"
index 4da9c337f5bca941662df5f8709838816a1dbfca..45e60243b2de7dce91d166caddb93dfe41449f9e 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "connecting-notes, editorial-annotations, expressive-marks, really-simple"
@@ -16,7 +16,6 @@ The appearance of slurs may be changed from solid to dotted or dashed.
   doctitle = "Changing the appearance of a slur from solid to dotted or dashed"
 } % begin verbatim
 
-
 \relative c' {
   c4( d e c)
   \slurDotted
index 33978945b0fe86346959fdded696b52ca2b6c978..45fbff7ce0c4d6e6e200cb464602a0da3e4b7168 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
index 26cc5d92ecc2bb82e1e5b82b96dee4e18506aaa2..fdd185ca79c5df099619fd0d592f3a91bdf3a891 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, really-simple"
@@ -21,17 +21,14 @@ The english naming of chords (default) can be changed to german
   doctitle = "Changing the chord names to German or semi-German notation"
 } % begin verbatim
 
-
-music = \chordmode {
+scm = \chordmode {
   c1/c | cis/cis
   b1/b | bis/bis | bes/bes
 }
 
-%% The following is only here to print the names of the
-%% chords styles; it can be removed if you do not need to
-%% print them.
 
 \layout {
+  ragged-right = ##t
   \context {
     \ChordNames
     \consists "Instrument_name_engraver"
@@ -40,14 +37,24 @@ music = \chordmode {
 
 <<
   \new ChordNames {
-    \set ChordNames.instrumentName = #"default"
-    \music
+    \set instrumentName = #"default"
+    \scm
+  }
+  \new ChordNames {
+    \set instrumentName = #"german"
+    \germanChords \scm
   }
   \new ChordNames {
-    \set ChordNames.instrumentName = #"german"
-    \germanChords \music }
+    \set instrumentName = #"semi-german"
+    \semiGermanChords \scm
+  }
   \new ChordNames {
-    \set ChordNames.instrumentName = #"semi-german"
-    \semiGermanChords \music }
-  \context Voice { \music }
+    \set instrumentName = #"italian"
+    \italianChords \scm
+  }
+  \new ChordNames {
+    \set instrumentName = #"french"
+    \frenchChords \scm
+  }
+  \context Voice { \scm }
 >>
index 0fff98a94fcfd8f5d222e1c6c9b5dc131247a35e..e5608cf69e4d7125df72633f7b1fded541d63517 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "text, tweaks-and-overrides"
@@ -17,7 +17,6 @@ The default font families for text can be overridden with
   doctitle = "Changing the default text font family"
 } % begin verbatim
 
-
 \paper {
   % change for other default global staff size.
   myStaffSize = #20
index bb52c169ffc275af4761876ef65db2a508f7e9e0..9e5b0c7ef014aec9e5c08a4e39b0a7290f28e7f0 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches"
@@ -19,7 +19,6 @@ and line of the stave equal to one semitone.
   doctitle = "Changing the interval of lines on the stave"
 } % begin verbatim
 
-
 scale = \relative c' {
   a4 ais b c
   cis4 d dis e
index 38764d36f3f3ed3a4d939cb22275db211c2834fb..422a855169660aa427e5e5a1ef7e4e6ba0159b10 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, rhythms"
index c4c53e5c320b6f2301d7d0f773f4ee832b863c96..08a8d99202476a181d87123794e37677c5ef68ec 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "specific-notation, staff-notation"
@@ -20,7 +20,6 @@ The number of lines in a staff may changed by overriding the
   doctitle = "Changing the number of lines in a staff"
 } % begin verbatim
 
-
 upper = \relative c'' {
   c4 d e f
 }
index 7c7bafcbb1e051cb7be5c4d1104cdc516b1774da..7a6f6fb5bbd6bed18067c25c7d1fc6fb22cce609 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords"
@@ -18,7 +18,6 @@ depending on the @code{figuredBassAlterationDirection} and
   doctitle = "Changing the positions of figured bass alterations"
 } % begin verbatim
 
-
 \figures {
   <6\+> <5+> <6 4-> r
   \set figuredBassAlterationDirection = #RIGHT
index 589ce235fa75e96daea59301de6df57e1537c4d0..548544273efaa71e66992e17cf8678e86fbcec3f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "winds"
index ed30920b49eed08d4dd1aa7acc261f48e01bdcc6..e605413ea25fdb1dcab9c52e151e7a4a1331a3cb 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "paper-and-layout, staff-notation, tweaks-and-overrides"
@@ -19,7 +19,6 @@ changed by scaling the properties @code{'staff-space} and
   doctitle = "Changing the staff size"
 } % begin verbatim
 
-
 <<
   \new Staff {
     \relative c'' {
index 66879b4f68e9e6975373cc121dd3b1e5cb3deb52..5ee5d34f28370cbe94add231e9499bea08e62ffd 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "midi, rhythms, tweaks-and-overrides"
@@ -17,7 +17,6 @@ metronome mark invisible.
   doctitle = "Changing the tempo without a metronome mark"
 } % begin verbatim
 
-
 \score {
   \new Staff \relative c' {
     \tempo 4 = 160
index 6f6871ef375c4731a02c5ac866e82a08fb17dc36..5345cd9242a5cde84024ac0488e18aabcd3d288b 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "keyboards, tweaks-and-overrides"
@@ -19,7 +19,6 @@ exhaustive list.
   doctitle = "Changing the text for sustain markings"
 } % begin verbatim
 
-
 sustainNotes = { c4\sustainOn d e\sustainOff\sustainOn f\sustainOff }
 
 \relative c' {
index e0257869b78ebe016e8de761ffd877034f59b50b..d20801bedbe801389dff846f33bd2736aaddc576 100644 (file)
@@ -1,26 +1,26 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.30
-\version "2.17.30"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
 
   texidoc = "
 By default, only the numerator of the tuplet number is printed over the
-tuplet bracket. Alternatively, num:den of the tuplet number may
-be printed, or the tuplet number may be suppressed altogether.
+tuplet bracket, i.e., the denominator of the argument to the
+@code{\\times} command.
+
+Alternatively, num:den of the tuplet number may be printed, or the
+tuplet number may be suppressed altogether.
 
 "
   doctitle = "Changing the tuplet number"
 } % begin verbatim
 
-
-
 \relative c'' {
   \tuplet 3/2 { c8 c c }
   \tuplet 3/2 { c8 c c }
index 74a6d43c10c7bbaf2a63be739f53cbd97439cfe8..6b37d262db98c34fbe131cbbdd8afed7e935085b 100644 (file)
@@ -1,20 +1,27 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.11
-\version "2.17.11"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
-  lsrtags = "workaround, contexts-and-engravers, contemporary-notation, rhythms"
+  lsrtags = "contemporary-notation, contexts-and-engravers, rhythms, workaround"
 
+  texidoc = "
+The @code{measureLength} property, together with
+@code{measurePosition}, determines when a bar line is needed.  However,
+when using @code{\\scaleDurations}, the scaling of durations makes it
+difficult to change time signatures.  In this case,
+@code{measureLength} should be set manually, using the
+@code{ly:make-moment} callback.  The second argument must be the same
+as the second argument of @code{\\scaleDurations}.
+
+"
   doctitle = "Changing time signatures inside a polymetric section using \\scaleDurations"
 } % begin verbatim
 
-
-
 \layout {
   \context {
     \Score
index 864374ec3f2a40dc6cbb918a390e23e25b6cefa5..643e25c95a06d59b6b58ba2af0ea4a09318c68da 100644 (file)
@@ -1,24 +1,22 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.6
-\version "2.17.6"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
-  lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers, specific-notation"
+  lsrtags = "ancient-notation, contexts-and-engravers, rhythms, specific-notation, vocal-music"
 
   texidoc = "
-This form of notation is used for the chant of the Psalms, where verses
-aren't always the same length.
+This form of notation is used for Psalm chant, where verses aren't
+always the same length.
 
 "
   doctitle = "Chant or psalms notation"
 } % begin verbatim
 
-
 stemOff = \hide Staff.Stem
 stemOn  = \undo \stemOff
 
index a5b221cf28a84c908cfa39fec19dd1e5e2dc05d2..540c6e8a7586dab8e33d71a8fd70d138d052ff62 100644 (file)
@@ -1,16 +1,16 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
 
   texidoc = "
-Slides for chords can be indicated in both @code{Staff} and
+Slides for chords are indicated by default in both @code{Staff} and
 @code{TabStaff}. String numbers are necessary for @code{TabStaff}
 because automatic string calculations are different for chords and for
 single notes.
@@ -18,9 +18,10 @@ single notes.
 "
   doctitle = "Chord glissando in tablature"
 } % begin verbatim
+%=> http://lilypond.1069038.n5.nabble.com/LSR-chord-glissando-in-tablature-obsolete-tc159863.html
 
 myMusic = \relative c' {
-  <c\3 e\2 g\1>1 \glissando <f\3 a\2 c\1>
+  <c e g>1 \glissando <f a c>
 }
 
 \score {
@@ -29,7 +30,17 @@ myMusic = \relative c' {
       \clef "treble_8"
       \myMusic
     }
-    \new TabStaff {
+    \new TabStaff \myMusic
+  >>
+}
+
+\score {
+  <<
+    \new Staff {
+      \clef "treble_8"
+      \myMusic
+    }
+    \new TabStaff \with { \override Glissando.style = #'none } {
       \myMusic
     }
   >>
index 759c02140d31178642eddf9fca69513f12ce1986..914c06f1e6dbb1c2dd5a74a5cd8f7e9f510886ed 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, specific-notation"
@@ -17,7 +17,6 @@ special notations for specific chords.
   doctitle = "Chord name exceptions"
 } % begin verbatim
 
-
 % modify maj9 and 6(add9)
 % Exception music is chords with markups
 chExceptionMusic = {
index b4a345d464f8d383b8c43c5f9e3433dbb902d9bb..832dda877dbcc10a16710213e7fe9f9278a2d69c 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, specific-notation"
@@ -16,7 +16,6 @@ The layout of the major 7 can be tuned with @code{majorSevenSymbol}.
   doctitle = "chord name major7"
 } % begin verbatim
 
-
 \chords {
   c:7+
   \set majorSevenSymbol = \markup { j7 }
index ffac03d80be84ba9c4a71ac26e817965968e3890..89b2ea95e64d22f84a48f924f1417b6af104fb94 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
index c335944a5a10708fc454136b9b5f887bb104c3d2..db4e80b032edc42253a594ae20303454e97355a3 100644 (file)
@@ -1,19 +1,20 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.6
-\version "2.17.6"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
-  texidoc = ""
-  doctitle = "headword"
-} % begin verbatim
 
+  texidoc = "
+.
 
+"
+  doctitle = "Chords headword"
+} % begin verbatim
 
 theChords = \chordmode {
   \time 2/2
@@ -100,4 +101,3 @@ Bass = {
     }
   }
 }
-\paper {  }
index 86bdaefd0ebb642e137097991c42b71d5c2c1774..c774f57f8b107cab17139d78c1c41f4eebd9b420 100644 (file)
@@ -1,7 +1,7 @@
 adding-a-figured-bass-above-or-below-the-notes.ly
 adding-bar-lines-to-chordnames-context.ly
 avoiding-collisions-with-chord-fingerings.ly
-bar-chords-notation-for-guitar--with-text-spanner.ly
+bar-chords-notation-for-guitar-with-text-spanner.ly
 changing-chord-separator.ly
 changing-the-chord-names-to-german-or-semi-german-notation.ly
 changing-the-positions-of-figured-bass-alterations.ly
index e7155b535569d540b91ee987a495136edcc75672..541c2d67ba5117bb325087a8042dc219889da231 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches"
@@ -16,7 +16,6 @@ Clefs can be transposed by arbitrary amounts, not just by octaves.
   doctitle = "Clefs can be transposed by arbitrary amounts"
 } % begin verbatim
 
-
 \relative c' {
   \clef treble
   c4 c c c
index ee58d574b622c4bb3c6ed88560b85c562d2cf20d..b7be9582979e35f30d58706ced6ebe16834d3bbf 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "paper-and-layout"
@@ -33,7 +33,6 @@ are generated.
   doctitle = "Clip systems"
 } % begin verbatim
 
-
 #(ly:set-option 'clip-systems)
 #(define output-suffix "1")
 
index 50bc544ad0205f7dee302db6fc6f075cb379c477..82974911e143978e30aee4e404c51b676aa200e2 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, contemporary-notation, keyboards, really-cool, simultaneous-notes, specific-notation"
@@ -17,7 +17,6 @@ played.
   doctitle = "Clusters"
 } % begin verbatim
 
-
 fragment = \relative c' {
   c4 f <e d'>4
   <g a>8 <e a> a4 c2 <d b>4
index 16ed079f6e578e48bedf99278136535810aab641..23b25a5523d4ff368b9be3e9b3bbccd09ef85229 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, pitches, really-cool"
index b778e8b394abd17fb83a5e7dd7eba270a7835267..14fc861c1c7417ccfba676196f0091e636079d2a 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, really-simple, text"
@@ -18,9 +18,10 @@ block.
   doctitle = "Combining dynamics with markup texts"
 } % begin verbatim
 
-
 piuF = \markup { \italic più \dynamic f }
+
 \layout { ragged-right = ##f }
+
 \relative c'' {
   c2\f c-\piuF
 }
index 0a8477adc57f1565ce54d8db0d7eeb19e9dacf29..643dacbe8656c174bf12e31814cb258a3a67f589 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "simultaneous-notes, syntax-and-expressions, text"
@@ -30,6 +30,7 @@ staff: standard polyphony, @code{\\partcombine} without texts, and
   doctitle = "Combining two parts on the same staff"
 } % begin verbatim
 
+%% Combining pedal notes with clef changes
 
 musicUp = \relative c'' {
   \time 4/4
index 9b1a047a5ba661b2b33af04aced1a253d84383b2..473493472316cd313eb8b70eae51731d62eb44dc 100644 (file)
@@ -1,27 +1,27 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.15
-\version "2.17.15"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
 
   texidoc = "
-Odd 20th century time signatures (such as \\\"5/8\\\") can often be
-played as compound time signatures (e.g. \\\"3/8 + 2/8\\\"), which
-combine two or more inequal metrics. LilyPond can make such music quite
-easy to read and play, by explicitly printing the compound time
-signatures and adapting the automatic beaming behavior.
+Odd 20th century time signatures (such as \"5/8\") can often be played
+as compound time signatures (e.g. \"3/8 + 2/8\"), which combine two or
+more inequal metrics.
+
+LilyPond can make such music quite easy to read and play, by explicitly
+printing the compound time signatures and adapting the automatic
+beaming behavior.
 
 "
   doctitle = "Compound time signatures"
 } % begin verbatim
 
-
 \relative c' {
   \compoundMeter #'((2 8) (3 8))
   c8 d e fis gis
index b30f7e73931ef0aa602efd175fdbf75dba37cf25..514718f9bd6492de682430688fdb73bd49c4eeab 100644 (file)
@@ -1,42 +1,39 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.16.0
-\version "2.16.0"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
+
   texidoc = "
 Beat grouping within a measure is controlled by the context property
-@code{beatStructure}.  Values of @code{beatStructure} are
-established for many time signatures in
-@file{scm/time-signature-settings.scm}.  Values of @code{beatStructure}
-can be changed or set with @code{\\set}.
-Alternatively, @code{\\time} can be used to both
-set the time signature and establish the beat structure.
-For this, you specify the internal grouping of beats in a measure
-as a list of numbers (in Scheme syntax) before the time signature.
+@code{beatStructure}.  Values of @code{beatStructure} are established
+for many time signatures in @@file@{scm/time-signature-settings.scm@}.
+Values of @code{beatStructure} can be changed or set with @code{\\set}.
+Alternatively, @code{\\time} can be used to both set the time signature
+and establish the beat structure. For this, you specify the internal
+grouping of beats in a measure as a list of numbers (in Scheme syntax)
+before the time signature.
 
 @code{\\time} applies to the @code{Timing} context, so it will not
 reset values of @code{beatStructure} or @code{baseMoment} that are set
 in other lower-level contexts, such as @code{Voice}.
 
-If the @code{Measure_grouping_engraver} is included
-in one of the display contexts, measure grouping signs will be
-created.  Such signs ease reading rhythmically complex modern music.
-In the example, the 9/8 measure is grouped in two different
-patterns using the two different methods, while the 5/8 measure
-is grouped according to the default setting in
-@file{scm/time-signature-settings.scm}:
+If the @code{Measure_grouping_engraver} is included in one of the
+display contexts, measure grouping signs will be created.  Such signs
+ease reading rhythmically complex modern music. In the example, the 9/8
+measure is grouped in two different patterns using the two different
+methods, while the 5/8 measure is grouped according to the default
+setting in @@file@{scm/time-signature-settings.scm@}:
+
 "
   doctitle = "Conducting signs measure grouping signs"
 } % begin verbatim
 
-
-
 \score {
   \new Voice \relative c'' {
     \time 9/8
index f2b61e8e8dbd9ef0eb9b1c599b1965c69de8bf9d..c37bc7240e355fba846c72567419ad59bc45d33a 100644 (file)
@@ -1,17 +1,17 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
 
   texidoc = "
 When left aligning bar numbers, overlapping problems may occur with
-Staves brackets. The snippet solves this by keeping right aligned the
+Staves brackets.  The snippet solves this by keeping right aligned the
 first bar number following line breaks.
 
 "
index 7d9d563318bb33526d5cb0b3843727aebc62bf1e..1585518199a124db390b09c69af112894841b3ac 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "contemporary-notation, expressive-marks, specific-notation"
@@ -17,7 +17,6 @@ hidden note and cadenza timing.
   doctitle = "Contemporary glissando"
 } % begin verbatim
 
-
 \relative c'' {
   \time 3/4
   \override Glissando.style = #'zigzag
index 4df07c679e00b1d4af621b2058538ecdfb7ff00b..a434f35d753d61cc3b932bcee98abb52c43d475b 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
index 4e264c604e562cf8e5263da440e64c313068b4cf..9c29cba1ebc4694e7cac7a9009b35ce99dc52e5d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, editorial-annotations, fretted-strings, keyboards, specific-notation"
@@ -18,7 +18,6 @@ if it is a single note.
   doctitle = "Controlling the placement of chord fingerings"
 } % begin verbatim
 
-
 \relative c' {
   \set fingeringOrientations = #'(left)
   <c-1 e-3 a-5>4
index d4091b033dea85aa784312116cfed89a28efbb0b..9c036165283ab9ce0468f86d49371ea5044a7c5f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -23,7 +23,6 @@ comes first.
   doctitle = "Controlling the vertical ordering of scripts"
 } % begin verbatim
 
-
 \relative c''' {
   \once \override TextScript.script-priority = #-100
   a2^\prall^\markup { \sharp }
index 9c74de6b453cd25db13f1ef9ac3bfa42f30e5cdf..37def3322493465f7c1c66a5b6a88c0fd88d3309 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -21,7 +21,6 @@ bracket), @code{#f} (never print a bracket) or @code{#'if-no-beam}
   doctitle = "Controlling tuplet bracket visibility"
 } % begin verbatim
 
-
 music = \relative c'' {
   \tuplet 3/2 { c16[ d e } f8]
   \tuplet 3/2 { c8 d e }
@@ -37,5 +36,8 @@ music = \relative c'' {
     << \music s4^"#t" >>
     \override TupletBracket.bracket-visibility = ##f
     << \music s4^"#f" >>
+    %% v2.18 :
+    \omit TupletBracket
+    << \music s4^"omit" >>
   }
 }
index b551d6eaca4ae8d090c24a2a0b1496483a335ecc..ed1279b54cd3b0bb62540d68faa82f2449dd8b00 100644 (file)
@@ -1,2 +1 @@
-adjusting-lyrics-vertical-spacing.ly
 horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly
index 98c4a150a0da72679ae35cf412c43c2c668c16e3..0787bc8b0c587655ccc5d78492b2506cd1d22abe 100644 (file)
@@ -1,11 +1,10 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.97
-\version "2.17.97"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides"
@@ -15,14 +14,13 @@ Creating a delayed turn, where the lower note of the turn uses the
 accidental, requires several overrides.  The
 @code{outside-staff-priority} property must be set to @code{#f}, as
 otherwise this would take precedence over the @code{avoid-slur
-property}.  Changing the fractions @code{2/3} and @code{1/3} adjusts the
-horizontal position.
+property}.  Changing the fractions @code{2/3} and @code{1/3} adjusts
+the horizontal position.
+
 "
   doctitle = "Creating a delayed turn"
 } % begin verbatim
 
-
-
 \relative c'' {
   c2*2/3 ( s2*1/3\turn d4) r
   <<
@@ -34,10 +32,10 @@ horizontal position.
     {
       s4
       \once \set suggestAccidentals = ##t
-      \once \override AccidentalSuggestion #'outside-staff-priority = ##f
-      \once \override AccidentalSuggestion #'avoid-slur = #'inside
-      \once \override AccidentalSuggestion #'font-size = #-3
-      \once \override AccidentalSuggestion #'script-priority = #-1
+      \once \override AccidentalSuggestion.outside-staff-priority = ##f
+      \once \override AccidentalSuggestion.avoid-slur = #'inside
+      \once \override AccidentalSuggestion.font-size = -3
+      \once \override AccidentalSuggestion.script-priority = -1
       \single \hideNotes
       b8-\turn \noBeam
       s8
index 22476cebfbccd592b6b3e0bdad5a403651d5ef7f..37000fda73df48d31ea97a90db632d723e00397a 100644 (file)
@@ -4,8 +4,8 @@
 % and then run scripts/auxiliar/makelsr.py
 %
 % This file is in the public domain.
-%% Note: this file works from version 2.17.11
-\version "2.17.11"
+%% Note: this file works from version 2.19.0
+\version "2.19.0"
 
 \header {
   lsrtags = "pitches, real-music, really-cool, scheme-language"
@@ -25,7 +25,7 @@ Planets.
 rhythm =
 #(define-music-function (parser location p) (ly:pitch?)
    "Make the rhythm in Mars (the Planets) at the given pitch"
-  #{ \tuplet 3/2 { $p 8 $p $p } $p 4 $p $p 8 $p $p 4 #})
+  #{ \tuplet 3/2 { $p 8 8 8 } 4 4 8 8 4 #})
 
 \new Staff {
   \time 5/4
index 52b16bbb593dc155534e25d4789711c49f2b8d90..bdf4cee3283f54769a5788a2702b926b685276f5 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -18,7 +18,6 @@ context:
   doctitle = "Creating arpeggios across notes in different voices"
 } % begin verbatim
 
-
 \new Staff \with {
   \consists "Span_arpeggio_engraver"
 }
index f264ed64f213149163bcf00082458f3d0720ee4e..69d3626554f45228d09dfc1863ac5cd6c2f23821 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, editorial-annotations, paper-and-layout, specific-notation, staff-notation"
@@ -19,7 +19,6 @@ To create blank staves, generate empty measures then remove the
   doctitle = "Creating blank staves"
 } % begin verbatim
 
-
 #(set-global-staff-size 20)
 
 \score {
@@ -41,6 +40,8 @@ To create blank staves, generate empty measures then remove the
   }
 }
 
+% uncomment these lines for "letter" size
+%{
 \paper {
   #(set-paper-size "letter")
   ragged-last-bottom = ##f
@@ -49,3 +50,16 @@ To create blank staves, generate empty measures then remove the
   bottom-margin = 0.25\in
   top-margin = 0.25\in
 }
+%}
+
+% uncomment these lines for "A4" size
+%{
+\paper {
+  #(set-paper-size "a4")
+  ragged-last-bottom = ##f
+  line-width = 180
+  left-margin = 15
+  bottom-margin = 10
+  top-margin = 10
+}
+%}
index a46b5a8dbcfb980df94d92a3e864e180140a858a..d49f35abc7e165bc888cdeb68b0a4d0ea9d4c3f2 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -18,7 +18,6 @@ the staves by setting the property @code{PianoStaff.connectArpeggios}.
   doctitle = "Creating cross-staff arpeggios in a piano staff"
 } % begin verbatim
 
-
 \new PianoStaff \relative c'' <<
   \set PianoStaff.connectArpeggios = ##t
   \new Staff {
index 168043d7e9988ccd699fb59201468bc143195803..87beb1f21fd8de2e9bfe9a58514359bbb3504f7d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -18,7 +18,6 @@ Cross-staff arpeggios can be created in contexts other than
   doctitle = "Creating cross-staff arpeggios in other contexts"
 } % begin verbatim
 
-
 \score {
   \new ChoirStaff {
     \set Score.connectArpeggios = ##t
index aaf99628423099b55ed0db33f18ead45350fd376..7949e5aec4d4dba29ecc36053fd6478042b31cc3 100644 (file)
@@ -1,22 +1,21 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.17.15
-\version "2.17.15"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks, scheme-language, staff-notation, tweaks-and-overrides"
 
   texidoc = "
 Creating fingerings larger than 5 is possible.
+
 "
   doctitle = "Creating double-digit fingerings"
 } % begin verbatim
 
-
 \relative c' {
   c1-10
   c1-50
index a234b65082a73382990d7b398005c77401c6d5fd..62ebc5e72658d410b57ec447046a49be3e30421b 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -17,7 +17,6 @@ change the tempo in MIDI output.
   doctitle = "Creating metronome marks in markup mode"
 } % begin verbatim
 
-
 \relative c' {
   \tempo \markup {
     \concat {
index d6299a8ca896e8e9334fcae07285cb9e86ad45ac..8d6eec5122e20b1e637276462f42d52b9b6dba82 100644 (file)
@@ -1,11 +1,10 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.16.0
-\version "2.16.0"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, text, workaround"
@@ -27,7 +26,6 @@ commands such as @code{\\dynamicUp} or @code{\\dynamicDown}.
   doctitle = "Creating \"real\" parenthesized dynamics"
 } % begin verbatim
 
-
 paren =
 #(define-event-function (parser location dyn) (ly:event?)
    (make-dynamic-script
index eefa6f59173c3c4750ea372e5aeccfe8963b1c9a..c93fc9ed82c533ca8f99fda93ba110b44ae6f938 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, text, tweaks-and-overrides"
@@ -32,7 +32,7 @@ end of one system and the start of the following system.
   % the hidden measure and bar line
   % \cadenzaOn turns off automatic calculation of bar numbers
   \cadenzaOn
-  \once \omit Score.TimeSignature
+  \once \override Score.TimeSignature.stencil = ##f
   \time 1/16
   s16 \bar ""
   \cadenzaOff
index 74e82c55e22b194a7d1900f07d7529ec30b707c2..847de5949a518b89650a47f9f06abf325372f36b 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "connecting-notes, expressive-marks, keyboards, real-music, unfretted-strings"
@@ -23,7 +23,6 @@ solo violin, BWV 1004.
   doctitle = "Creating slurs across voices"
 } % begin verbatim
 
-
 \relative c' {
   <<
     {
index 5e18e550e2936019fde484e5acf52538dcf0ff33..d0c209273e2844c9c8e709ead9c0918fad51afda 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, text, tweaks-and-overrides"
@@ -19,7 +19,6 @@ to modify its output.
   doctitle = "Creating text spanners"
 } % begin verbatim
 
-
 \paper { ragged-right = ##f }
 
 \relative c'' {
index cb4ec966af60d2cecfad24d90c23f89aad0071df..f0929dc32c9cfb89dd781497db642c671b5b4fb6 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, keyboards, tweaks-and-overrides, workaround"
@@ -15,14 +15,13 @@ cross-staff chords, because no problems with automatic beam collision
 avoidance then arise.  If the stems from the lower staff were used in
 the following example, it would be necessary to change the automatic
 beam collision avoidance settings so that it doesn't detect collisions
-between staves using @code{\\override Staff.Beam.collision-voice-only
-##t}
+between staves using @code{\\override Staff.Beam.collision-voice-only =
+##t}
 
 "
   doctitle = "Cross-staff chords - beaming problems workaround"
 } % begin verbatim
 
-
 \new PianoStaff <<
   \new Staff = up
     \relative c' {
index cfcc9ef0d0394d657e58621933c1579ee6bb1906..448187f8ec30db1f4f12977acaa1704bde004c57 100644 (file)
@@ -1,24 +1,25 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.16.0
-\version "2.16.0"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
-  lsrtags = "staff-notation, tweaks-and-overrides, contexts-and-engravers"
+  lsrtags = "contexts-and-engravers, staff-notation, tweaks-and-overrides"
+
   texidoc = "
-This snippet shows the use of the @code{Span_stem_engraver}
-and @code{\\crossStaff} to connect stems across staves automatically.
-The stem length need not be specified, as the variable distance
-between noteheads and staves is calculated automatically.
+This snippet shows the use of the @code{Span_stem_engraver} and
+@code{\\crossStaff} to connect stems across staves automatically.
+
+The stem length need not be specified, as the variable distance between
+noteheads and staves is calculated automatically.
+
 "
   doctitle = "Cross staff stems"
 } % begin verbatim
 
-
 \layout {
   \context {
     \PianoStaff
index 980feb53107651675b0838e13bfaf858bc8134c1..83808e275796291315dca1e288f8d0b7093641fc 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "keyboards, real-music, repeats"
@@ -19,7 +19,6 @@ its @code{\\change Staff} command.
   doctitle = "Cross-staff tremolos"
 } % begin verbatim
 
-
 \new PianoStaff <<
   \new Staff = "up" \relative c'' {
     \key a \major
index b653e146ac31d4649d2b4237277033b16a9b562b..e22f5a69f37b912508c760a41d0d585699567a92 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "ancient-notation, specific-notation, symbols-and-glyphs, tweaks-and-overrides"
@@ -16,7 +16,6 @@ Custodes may be engraved in various styles.
   doctitle = "Custodes"
 } % begin verbatim
 
-
 \layout { ragged-right = ##t }
 
 \new Staff \with { \consists "Custos_engraver" } \relative c' {
index f9d5816c3716fa9af9d9e956682effbd64e67487..f619e246a3683cf5aaf5d43a2549e983de04250c 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, tweaks-and-overrides"
@@ -20,7 +20,6 @@ can be omitted in property overrides.
   doctitle = "Customizing fretboard fret diagrams"
 } % begin verbatim
 
-
 \include "predefined-guitar-fretboards.ly"
 \storePredefinedDiagram #default-fret-table \chordmode { c' }
                         #guitar-tuning
index 57032ef0fd226deddea079e835a7f87ea479ce73..b48ecb6058581e92e2aaf5a13676e129375007c8 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, tweaks-and-overrides"
@@ -19,7 +19,6 @@ markup.
   doctitle = "Customizing markup fret diagrams"
 } % begin verbatim
 
-
 <<
   \chords { c1 | c | c | d }
 
diff --git a/Documentation/snippets/customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly b/Documentation/snippets/customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly
new file mode 100644 (file)
index 0000000..8f733ad
--- /dev/null
@@ -0,0 +1,76 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
+
+\header {
+  lsrtags = "scheme-language, symbols-and-glyphs"
+
+  texidoc = "
+If you want to customize the position and/or number of dots in repeat
+sign bar lines, you can define new custom bar lines or redefine the way
+ default repeat signs are drawn.  This snippet shows how.  This may be
+particularly helpful when using a staff with custom line-positions, as
+shown in this snippet.
+
+"
+  doctitle = "Customizing the position and number of dots in repeat sign bar lines"
+} % begin verbatim
+
+% \version "2.18.0"
+
+#(define ((make-custom-dot-bar-line dot-positions) grob extent)
+
+   "Draw dots (repeat sign dots) at @var{dot-positions}. The
+coordinates of @var{dot-positions} are equivalent to the
+coordinates of @code{StaffSymbol.line-positions}, a dot-position
+of X and a line-position of X indicate the same vertical position."
+
+   (let* ((staff-space (ly:staff-symbol-staff-space grob))
+          (dot (ly:font-get-glyph (ly:grob-default-font grob) "dots.dot"))
+          (stencil empty-stencil))
+     (for-each
+      (lambda (dp)
+        (set! stencil (ly:stencil-add stencil
+                        (ly:stencil-translate-axis dot (* dp (/ staff-space 2)) Y))))
+      dot-positions)
+     stencil))
+
+% With the procedure above we can define custom bar-lines, for example,
+% one that resembles standard repeat sign bar lines except it has
+% three dots at staff positions -3, 0, and 3.
+
+#(add-bar-glyph-print-procedure "*" (make-custom-dot-bar-line '(-3 0 3)))
+\defineBarLine ".|*" #'("" "*" "")
+\defineBarLine "*|." #'("" "*" "")
+
+% We can also customize the dot positions used in all default repeat signs
+% by redefining the print procedure of the colon bar glyph (":"). On a staff
+% with line-positions of '(-4 -2 2 4) the default repeat sign dots appear
+% at '(-3 3), but we can put them at '(-1 1) instead.
+
+#(add-bar-glyph-print-procedure ":" (make-custom-dot-bar-line '(-1 1)))
+
+
+\new Staff \with {
+  \override StaffSymbol.line-positions = #'(-4 -2 2 4)
+  \override StaffSymbol.staff-space = #1.3
+} {
+  \relative f' {
+    g1
+    \bar ".|*"
+    g
+    \bar "*|."
+    g
+    \bar ".|:"
+    g
+    \bar ":|."
+    g
+    \repeat volta 2 {
+      g
+    }
+  }
+}
index 50ff9bc0cda6324f42da991d69ae65a725c612b1..07471da72d289baf4f63ec475ea5861689c479cd 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -17,7 +17,6 @@ by the @code{Stem} property @code{neutral-direction}.
   doctitle = "Default direction of stems on the center line of the staff"
 } % begin verbatim
 
-
 \relative c'' {
   a4 b c b
   \override Stem.neutral-direction = #up
index 4deb652211edfdfb1a1323fcb1dfeedad0429015..f284dd6d0593c2a1640080accb9b593156d689cc 100644 (file)
@@ -4,7 +4,7 @@
 % and then run scripts/auxiliar/makelsr.py
 %
 % This file is in the public domain.
-%% Note: this file works from version 2.16.0
+%% Note: this file works from version 2.19.7
 \version "2.19.7"
 
 \header {
index 6ba7858ccae789864e508d03831ba242f27aaea6..6a3b029cd3ff9c663cb43479d4d55dcc37d48608 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -27,7 +27,6 @@ information.  This is planned to be corrected in the future.
   doctitle = "Defining predefined fretboards for other instruments"
 } % begin verbatim
 
-
 % add FretBoards for the Cuatro
 %   Note: This section could be put into a separate file
 %      predefined-cuatro-fretboards.ly
@@ -108,7 +107,7 @@ primeros = {
   \layout {
     \context {
       \Score
-      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
+      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
     }
   }
   \midi { }
index 434587651fac209ed00da5b0c78d6b4b5aac4bb3..44199d8fd9f40b78a02714d5e84cfd0f57bb8f93 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "midi, real-music, specific-notation"
@@ -19,7 +19,6 @@ composition? Solution: A LilyPond demo file.
   doctitle = "Demo MidiInstruments"
 } % begin verbatim
 
-
 \header {
   title = "Demo of all midi sounds"
   arranger = "Myself "
index 38b3bc30a94f5a52461986a9d10a0e0f15b8448a..a99002b0bf416b1b7ebb3ee8154ce24551715615 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "paper-and-layout, text, titles"
@@ -16,7 +16,6 @@ A demonstration of all headers.
   doctitle = "Demonstrating all headers"
 } % begin verbatim
 
-
 \header {
   copyright = "copyright"
   title = "title"
index 94d61a4be575b90d6d6ca6de8b0343806b2d9497..a7d99645bc1b780e5647328e8fbca6570f0e2dc0 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "staff-notation, tweaks-and-overrides"
index bb20ae2d0e8ac5c147007f9d3392524d7b991303..60a68c3a136f241d6b335539df7225f1e96d3dfc 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.15"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers"
@@ -35,8 +35,10 @@ the second violin is also displayed.
     <<
       \new Staff = "Staff_flute" \with {
         instrumentName = "Flute"
-        shortInstrumentName = "Fl"}
-        \relative c' { \repeat unfold 3 { c'4 c c c | c c c c | c c c c | \break }
+        shortInstrumentName = "Fl"
+      }
+      \relative c' {
+        \repeat unfold 3 { c'4 c c c | c c c c | c c c c | \break }
       }
     >>
     \new StaffGroup = "StaffGroup_Strings"
index 902541ce0c8ccefebf086716c56a8d750eb105ee..a433eb96d0a6cd764b2cb22f559a3058ba82664f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, simultaneous-notes, workaround"
@@ -18,14 +18,16 @@ with different accidentals.
 } % begin verbatim
 
 fixA = {
-  \once \override Stem.length = #9
+  \once \override Stem.length = #11
 }
+
 fixB = {
   \once \override NoteHead.X-offset = #1.7
+  \once \override Stem.length = #7
   \once \override Stem.rotation = #'(45 0 0)
-  \once \override Stem.extra-offset = #'(-0.2 . -0.2)
+  \once \override Stem.extra-offset = #'(-0.1 . -0.2)
   \once \override Flag.style = #'no-flag
-  \once \override Accidental.extra-offset = #'(4 . 0)
+  \once \override Accidental.extra-offset = #'(4 . -.1)
 }
 
 \relative c' {
index d6c8d46a2a2534599c2d762f3ae70d91b76de6ed..7a75bb1a33fa98170414298349e200e51c5c806d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "devel, scheme-language, tweaks-and-overrides"
@@ -39,7 +39,7 @@ When called this way
 
 
 @{
- \\once \\override NoteHead.before-line-breaking = #display-ancestry
+ \\once \\override NoteHead #'before-line-breaking = #display-ancestry
  c @}
 
 
@@ -65,6 +65,9 @@ NoteHead X,Y: NoteColumn
   doctitle = "Displaying grob ancestry"
 } % begin verbatim
 
+%% http://lsr.di.unimi.it/LSR/Item?id=622
+%% see also http://www.lilypond.org/doc/v2.18/Documentation/snippets/tweaks-and-overrides#tweaks-and-overrides-displaying-grob-ancestry
+
 #(define (grob-name grob)
    (if (ly:grob? grob)
        (assoc-ref (ly:grob-property grob 'meta) 'name)
index aa453021e4709a234d63b8bdf76878880a8a6d02..8f2fb4946cb580d61b5bbe19464001b5eadc599b 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "real-music, tweaks-and-overrides, unfretted-strings"
@@ -17,7 +17,6 @@ override this behavior, set the context property @code{harmonicDots}.
   doctitle = "Dotted harmonics"
 } % begin verbatim
 
-
 \relative c''' {
   \time 3/4
   \key f \major
index 316dc5fb00bfe068e550cce3414aaee4bc0d995e..289bee432fb0687db388224a1713bb1ce1ebe290 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "contemporary-notation, expressive-marks, simultaneous-notes, workaround"
@@ -17,7 +17,6 @@ hidden voice.
   doctitle = "Double glissando"
 } % begin verbatim
 
-
 \relative c {
   \clef bass
   <<
index a95c7739b5bebaee032dd021cf4f38c4102c6703..8059c2d011e34a79c549c3931e003c4a5bb8ce60 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides"
@@ -17,7 +17,6 @@ arbitrary grob.
   doctitle = "Drawing boxes around grobs"
 } % begin verbatim
 
-
 \relative c'' {
   \override TextScript.stencil =
     #(make-stencil-boxer 0.1 0.3 ly:text-interface::print)
@@ -30,7 +29,6 @@ arbitrary grob.
   b8
 
   \revert Stem.stencil
-
   \revert Flag.stencil
   c4. c4
   \mark "F"
index 44cfe8c7a1f2f02f64942f28a19ca8df7fb58aa2..b178fa7f01b970d9e31c55a37eb48728338bd10c 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -26,4 +26,4 @@ circle =
             (ly:stencil-extent note X)
             (ly:stencil-extent note Y))))
 
-{ \circle c' }
+{ \circle c'' }
index 196a3d8c81a5ccc935cf76a735d99ec12e880586..a86e85f2374e1845702b04950f7a19df5e980269 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides"
index b673f2165f125de99b0e87e5201173820b58d14a..f7264aa0f898671d55f7899758cc41c3d1298d22 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
index 3a57f5a21412270b8d98fd990f38c34141f246ee..b7f84a13928beab5ac38443a794bfeee29984bf4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
index e6b962a5577363ac5aef7cfb20e4f79279f7bebe..169e808c6c8645ce43542624ea441796555b005d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
@@ -21,8 +21,6 @@ Beethoven, Op. 31, No. 3 Piano sonata 18, Movt II, Scherzo Measures 9 -
 
 \include "english.ly"
 
-% NR 1.7 Editorial annotations
-
 % Beethoven, Op. 31, No. 3
 % Piano sonata 18, Movt II, Scherzo
 % Measures 9 - 14
index 77354ead0951185b2391835f06b631ceb99fa1be..6aa000eb5f822a80b1f21793cd96eedd98eacc62 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, really-cool, specific-notation, text"
@@ -17,7 +17,6 @@ block.
   doctitle = "Embedding native PostScript in a \\markup block"
 } % begin verbatim
 
-
 % PostScript is a registered trademark of Adobe Systems Inc.
 
 \relative c'' {
index 68cadaf2230f1ae4a6520c76212d466fe847df42..5d1bcf060c84c41cd90fa6a226837a686fe30e80 100644 (file)
@@ -1,5 +1,5 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
@@ -41,7 +41,6 @@ line, etc. form a @code{Staff} context.
   doctitle = "Engravers one-by-one"
 } % begin verbatim
 
-
 %% sample music
 topVoice = \relative c' {
   \key d \major
index 76bf91d1ce127dde4f8ca20714f4861876e0e9eb..f2a49ce9c3879028a17eda03aed9199c2a373b45 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -19,7 +19,6 @@ second number indicates the direction (1 = up, -1 = down).
   doctitle = "Engraving ties manually"
 } % begin verbatim
 
-
 \relative c' {
   <c e g>2~ <c e g>
   \override TieColumn.tie-configuration =
index 1338e8c1756b0e71bfe21795d0e30096f81070db..48e2f42a0c63af6f31826da8638cf510c3cfdbfc 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "repeats, rhythms"
@@ -25,7 +25,6 @@ the @code{'gap} property.
   doctitle = "Engraving tremolos with floating beams"
 } % begin verbatim
 
-
 \relative c'' {
   \repeat tremolo 8 { a32 f }
   \override Beam.gap-count = #1
diff --git a/Documentation/snippets/extending-a-trillspanner.ly b/Documentation/snippets/extending-a-trillspanner.ly
new file mode 100644 (file)
index 0000000..9c1a2a4
--- /dev/null
@@ -0,0 +1,37 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
+
+\header {
+  lsrtags = "staff-notation, syntax-and-expressions, tweaks-and-overrides"
+
+  texidoc = "
+For @code{TrillSpanner}, the @code{minimum-length} property becomes
+effective only if the @code{set-spacing-rods} procedure is called
+explicitly.  To do this, the @code{springs-and-rods} property should be
+set to @code{ly:spanner::set-spacing-rods}.
+
+"
+  doctitle = "Extending a TrillSpanner"
+} % begin verbatim
+
+%=> http://lilypond-french-users.1298960.n2.nabble.com/Allonger-un-trille-td7581110.html
+
+%by P.P.Schneider on April 2014
+
+\relative c' {
+\key c\minor
+  \time 2/4
+  c16( as') c,-. des-.
+  \once\override TrillSpanner.minimum-length = #15
+  \once\override TrillSpanner.springs-and-rods = #ly:spanner::set-spacing-rods
+  \afterGrace es4
+  \startTrillSpan { d16[( \stopTrillSpan es)] }
+  c( c' g es c g' es d
+  \hideNotes
+  c8)
+}
index fff3fddafb3de5c11f5e2abfb4521cefa11fa18b..9a4a8fcc171c59b95cda6f06827458928b598393 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, specific-notation, workaround"
@@ -16,7 +16,6 @@ A hammer in tablature can be faked with slurs.
   doctitle = "Faking a hammer in tablatures"
 } % begin verbatim
 
-
 \score {
   \new TabStaff {
     \relative c'' {
index 018a27b61cfede0130b916f8eca955a0b06738a0..190cec94a01d36f36ac62a1f6d899fc3b13902b1 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.2"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
@@ -78,7 +78,7 @@ extendOff = \bassFigureExtendersOff
       r16 d16 |
       d4 bes,4 a,4 f4 |
       g8 f16 g16 a8 a,8 d4 d'4 ~ |
-      8 c'8 b4 c'8 c'16 bes16 a4 |
+      d'8 c'8 b4 c'8 c'16 bes16 a4 |
       bes8 bes16 a16 g4 a8 a,4 a16 g16 |
       fis8 d8 e8 fis8 g8 g,4 g16 f16 |
       e8 c8 d8 e8 f8 f,4 a,8 |
index b9cdf44f71750fde290969b73b07892672c6ecee..e10d8702582b70c335de83eb3b3e9107680f7cba 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "keyboards, tweaks-and-overrides"
@@ -16,7 +16,6 @@ The appearance of pedal brackets may be altered in different ways.
   doctitle = "Fine-tuning pedal brackets"
 } % begin verbatim
 
-
 \paper { ragged-right = ##f }
 \relative c'' {
   c2\sostenutoOn c
index e4ea09092fa0cddc632e2df4394ad8c2067a735a..b5b45281fd4b236c5a3cdbc238d54d79b51ba451 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "symbols-and-glyphs, winds"
@@ -26,15 +26,23 @@ centermarkup = {
       ,(ly:make-simple-closure (list
         ly:self-alignment-interface::x-aligned-on-self))))
 }
-\score
-{\relative c'
-  {
+
+\score {
+  \relative c'{
     g\open
-    \once \override TextScript.staff-padding = #-1.0 \centermarkup
-    g^\markup{\combine \musicglyph #"scripts.open" \musicglyph
-    #"scripts.tenuto"}
-    \centermarkup g^\markup{\combine \musicglyph #"scripts.open"
-    \musicglyph #"scripts.stopped"}
+    \once \override TextScript.staff-padding = #-1.0
+    \centermarkup
+    g^\markup {
+      \combine
+        \musicglyph #"scripts.open"
+        \musicglyph #"scripts.tenuto"
+    }
+    \centermarkup
+    g^\markup {
+      \combine
+        \musicglyph #"scripts.open"
+        \musicglyph #"scripts.stopped"
+    }
     g\stopped
   }
 }
index f57ab20deed5a95a4dc8cd622fff84e24e3665f6..0b5bc43a1afcf2eab439d2864604579cf9916727 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -17,7 +17,6 @@ right-hand fingering.
   doctitle = "Fingerings string indications and right-hand fingerings"
 } % begin verbatim
 
-
 #(define RH rightHandFinger)
 
 \relative c {
index db142cd9d2ab90cb9dd68d9c0da9380927a7ca17..c3cfd54623b28efdbbfbf24e5d3533b1268492dd 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, specific-notation, stylesheet, version-specific"
@@ -34,66 +34,34 @@ This snippet contains some header-like code that can be copied as
   doctitle = "Flamenco notation"
 } % begin verbatim
 
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%  Cut here ----- Start 'flamenco.ly'
 
-% Text indicators
-abanico = \markup { \italic Abanico }
-rasgueaso = \markup { \italic Ras. }
-alzapua = \markup { \italic Alzapua }
-
-% Finger stroke symbols
-strokeUp = \markup { \postscript #"
-  0.1     setlinewidth
-  0.5 0   moveto
-  0.5 2   lineto
-  0.2 1.4 lineto
-  0.5 2   moveto
-  0.8 1.4 lineto
-  stroke
-"}
-
-strokeDown = \markup { \postscript #"
-  0.1     setlinewidth
-  0.5 2   moveto
-  0.5 0   lineto
-  0.2 0.6 lineto
-  0.5 0   moveto
-  0.8 0.6 lineto
-  stroke
-"}
-
-% Golpe symbol
-golpe = \markup { \postscript #"
-  0.2 setlinewidth
-  0 0 moveto
-  1 0 lineto
-  1 1 lineto
-  stroke
-  "\postscript #"
-  0.1       setlinewidth
-  -0.6 -0.1  moveto
-  -0.6  1.0 lineto
-  0.5  1.0 lineto
-  stroke
-"}
-
-strokeUpGolpe = \markup { \column { \golpe \line { \strokeUp } } }
-iUpGolpe = \markup { \column { \golpe \line { \small i } \line { \strokeUp } } }
-
-% Strokes for all fingers
-pUp   = \markup { \column { \small p \line { \strokeUp } } }
-pDown = \markup { \column { \small p \line { \strokeDown } } }
-iUp   = \markup { \column { \small i \line { \strokeUp } } }
-iDown = \markup { \column { \small i \line { \strokeDown } } }
-mUp   = \markup { \column { \small m \line { \strokeUp } } }
-mDown = \markup { \column { \small m \line { \strokeDown } } }
-aUp   = \markup { \column { \small a \line { \strokeUp } } }
-aDown = \markup { \column { \small a \line { \strokeDown } } }
-xUp   = \markup { \column { \small x \line { \strokeUp } } }
-xDown = \markup { \column { \small x \line { \strokeDown } } }
+% Text indicators :
+abanico = ^\markup\small { \italic Abanico }
+rasgueado = ^\markup\small { \italic Ras. }
+alzapua = ^\markup\small { \italic Alzapua }
+
+% Finger stroke symbols :
+strokeUp = \markup\combine\override #'(thickness . 1.3) \draw-line #'(0 . 2)\raise #2 \arrow-head #Y #UP ##f
+strokeDown = \markup\combine\arrow-head #Y #DOWN ##f \override #'(thickness . 1.3) \draw-line #'(0 . 2)
+
+% Golpe symbol :
+golpe = \markup {
+  \filled-box #'(0 . 1) #'(0 . 1) #0
+  \hspace #-1.6
+  \with-color #white
+  \filled-box #'(0.15 . 0.85) #'(0.15 . 0.85) #0
+}
 
+% Strokes, fingers and golpe command :
+RHp = \rightHandFinger #1
+RHi = \rightHandFinger #2
+RHm = \rightHandFinger #3
+RHa = \rightHandFinger #4
+RHx = \rightHandFinger #5
+RHu = \rightHandFinger \strokeUp
+RHd = \rightHandFinger \strokeDown
+RHg = \rightHandFinger \golpe
 
 % Just handy :)
 tupletOff = {
@@ -127,105 +95,98 @@ headsOn = {
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 part = \relative c' {
-  <a, e' a cis e>8^\iUp
-  <a e' a cis e>8^\iDown
+  \set strokeFingerOrientations = #'(up)
+  \override StrokeFinger.add-stem-support = ##t
+  \key a\major
+  <a, e' a cis e\RHu\RHi>8
+  <a e' a cis e\RHd\RHi>8
   r4
-  r2^\golpe
-
-  <a e' a cis e>8^\iUp
-  <a e' a cis e>8^\iDown
-  <a e' a cis e>8^\iUpGolpe
-  <a e' a cis e>8^\iDown
+  r2^\markup\golpe
+  <a e' a cis e\RHu\RHi>8
+  <a e' a cis e\RHd\RHi>8
+  <a e' a cis e\RHu\RHi\RHg>8
+  <a e' a cis e\RHd\RHi>8
   r2
-
-  <a e' a cis e>16^\aUp
+  <a e' a cis e\RHu\RHa>16\rasgueado
   \headsOff
-  <a e' a cis e>^\mUp
-  <a e' a cis e>^\iUp
-  <a e' a cis e>^\iDown~
+  <a e' a cis e\RHu\RHm>
+  <a e' a cis e\RHu\RHi>
+  <a e' a cis e\RHd\RHi>~
   \headsOn
   <a e' a cis e>2
   r4
-
   \tupletOff
   \tuplet 5/4 {
-    <a e' a cis e>16^\xUp
+    <a e' a cis e\RHu\RHx>16\rasgueado
     \headsOff
-    <a e' a cis e>^\aUp
-    <a e' a cis e>^\mUp
-    <a e' a cis e>^\iUp
-    <a e' a cis e>^\iDown~
+    <a e' a cis e\RHu\RHa>
+    <a e' a cis e\RHu\RHm>
+    <a e' a cis e\RHu\RHi>
+    <a e' a cis e\RHd\RHi>~
     \headsOn
   }
   <a e' a cis e>2
   r4
-
   \tupletsOff
   \tuplet 3/2 {
-    <a e' a cis e>8^\pDown
+    <a e' a cis e\RHd\RHp>8\abanico
     \headsOff
-    <a e' a cis e>^\xUp
-    <a e' a cis e>^\iUp
+    <a e' a cis e\RHu\RHx>
+    <a e' a cis e\RHu\RHi>
     \headsOn
   }
-
   \tuplet 3/2 {
-    <a e' a cis e>8^\pDown
+    <a e' a cis e\RHd\RHp>8
     \headsOff
-    <a e' a cis e>^\xUp
-    <a e' a cis e>^\iUp
+    <a e' a cis e\RHu\RHx>
+    <a e' a cis e\RHu\RHi>
     \headsOn
   }
-
   \tuplet 3/2 {
-    <a e' a cis e>8^\pDown
+    <a e' a cis e\RHd\RHp>8
     \headsOff
-    <a e' a cis e>^\xUp
-    <a e' a cis e>^\iUp
+    <a e' a cis e\RHu\RHx>
+    <a e' a cis e\RHu\RHi>
     \headsOn
   }
   \tuplet 3/2 {
-    <a e' a cis e>8^\pDown
+    <a e' a cis e\RHd\RHp>8
     \headsOff
-    <a e' a cis e>^\xUp
-    <a e' a cis e>^\iUp
+    <a e' a cis e\RHu\RHx>
+    <a e' a cis e\RHu\RHi>
     \headsOn
   }
-
   \tupletsOff
   \override Beam.positions = #'(2 . 2)
   \tuplet 3/2 {
-    a8^\markup{ \small p }
-    <e' a>^\strokeUpGolpe
-    <e a>^\strokeDown
+    a8\RHp\alzapua
+    <e' a\RHu\RHg>
+    <e a\RHd>
   }
   \tuplet 3/2 {
-    a,8^\markup{ \small p }
-    <e' a>^\strokeUpGolpe
-    <e a>^\strokeDown
+    a,8\RHp
+    <e' a\RHu\RHg>
+    <e a\RHd>
   }
   \tuplet 3/2 {
-    a,8^\markup{ \small p }
-    <e' a>^\strokeUpGolpe
-    <e a>^\strokeDown
+    a,8\RHp
+    <e' a\RHu\RHg>
+    <e a\RHd>
   }
   \tuplet 3/2 {
-    a,8^\markup{ \small p }
-    <e' a>^\strokeUpGolpe
-    <e a>^\strokeDown
+    a,8\RHp
+    <e' a\RHu\RHg>
+    <e a\RHd>
   }
   \tupletsOn
-
-  \once \override TextScript.extra-offset = #'(0 . -1)
-  <g, b f'>1_\golpe^\mUp
+  <a, e' a\RHu\RHm>1
   \bar "|."
 }
 
 \score {
   \new StaffGroup <<
     \context Staff = "part" <<
-      \clef G
-      \transpose c c'
+      \clef "G_8"
       {
         \part
       }
index fb387f9b69d739bdaede5326c280368a491d9979..c9ee89ee72b241e0b1f0c2a7521563c163ef3d67 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "contemporary-notation, winds"
@@ -18,7 +18,6 @@ glyph.
   doctitle = "Flute slap notation"
 } % begin verbatim
 
-
 slap =
 #(define-music-function (parser location music) (ly:music?)
 #{
index 2d02d9aa932c212b999af3ba30962094fb08b663..7f0dcb1686ef999b61ff5799cd08f47ca917be1a 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches"
@@ -20,7 +20,6 @@ Staff.forceClef = ##t}.
   doctitle = "Forcing a clef symbol to be displayed"
 } % begin verbatim
 
-
 \relative c' {
   \clef treble
   c1
index e2413c73b20d20d72d420b530673904820e34e88..07554c25f00cbab1b0d0c1ce22854b7861bd9841 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "simultaneous-notes, tweaks-and-overrides"
@@ -18,7 +18,6 @@ are staff spaces.
   doctitle = "Forcing horizontal shift of notes"
 } % begin verbatim
 
-
 \relative c' <<
   {
     <d g>2 <d g>
index 6ab4f3706fd8c802af1ccb10a13c4d51a19e3053..cf44f33171a49e94bbcfd0134c6c79a4ba9b5f25 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "vocal-music"
@@ -18,7 +18,6 @@ omitted.  The behaviour can be overridden with the
   doctitle = "Forcing hyphens to be shown"
 } % begin verbatim
 
-
 \relative c'' {
   c32 c c c
   c32 c c c
index 244eefef50812637844cdd2bf70420ef47fd75a4..10a95c5417938be7a52eaf2e2173db396c71e982 100644 (file)
@@ -1,26 +1,23 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "staff-notation, workaround"
 
   texidoc = "
-By default, metronome marks do not influence horizontal spacing.  This
-has one downside: when using compressed rests, some metronome marks may
-be too close and therefore are printed vertically stacked, as
-demonstrated in the first part of this example.  This can be solved
-through a simple override, as shown in the second half of the example.
+By default, metronome marks do not influence horizontal spacing.   This
+can be solved through a simple override, as shown in the second half of
+the example.
 
 "
   doctitle = "Forcing measure width to adapt to MetronomeMark's width"
 } % begin verbatim
 
-
 example = {
   \tempo "Allegro"
   R1*6
@@ -32,12 +29,9 @@ example = {
 
 {
   \compressFullBarRests
-
   \example
-
   R1
   R1
-
-  \override Score.MetronomeMark.extra-spacing-width = #'(0 . 0)
+  \override Score.MetronomeMark.extra-spacing-width = #'(-3 . 0)
   \example
 }
index 7304d1a9b395a6089e898a6fea26680b6f2e52ae..fa1ea91899ccb9551e00dc3e5c69b0950ba82634 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "automatic-notation, preparing-parts, really-simple, rhythms"
@@ -17,7 +17,6 @@ marks, but from the letter or number desired.
   doctitle = "Forcing rehearsal marks to start from a given letter or number"
 } % begin verbatim
 
-
 \relative c'' {
   c1 \mark \default
   c1 \mark \default
index aa5df6fa83aca5a89de11df3d2e2fbe0e44f7b19..983c0b98bca8d6466f36d32c8a96d2bb2550530f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "text, vocal-music"
index 7ae4dead641cf49548a3ddc6de5cebed34c8ff6a..4f6ea0daf255e731e8f0d7b3c86a4c7c178cf907 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, tweaks-and-overrides"
@@ -17,7 +17,6 @@ diagrams.
   doctitle = "Fret diagrams explained and developed"
 } % begin verbatim
 
-
 <<
   \chords {
     a2 a
index 68965a6ee574d4ee07e2e9866639a68fd8faeb39..845835041186ac65d261029089832abf74314fc3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
index a62c85dddd4ee385dbb7fbc438933ea3c52acf4c..ea58f737f6265aba8d18968243a86bbe28536e81 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -67,7 +67,8 @@ frettedStrings = {
 
 \score {
   <<
-    \new Staff {
+    \new Staff
+    \with { \omit StringNumber } {
       \new Voice {
         \clef "treble_8"
         \harmonics
index 35ad8bda09dac28e4af88e2942161c1206da4ab8..5f1f9f0cd69f9629a0ad2d373d2a13e25bcc6c10 100644 (file)
@@ -1,7 +1,7 @@
 adding-fingerings-to-a-score.ly
 adding-fingerings-to-tablatures.ly
 allowing-fingerings-to-be-printed-inside-the-staff.ly
-bar-chords-notation-for-guitar--with-text-spanner.ly
+bar-chords-notation-for-guitar-with-text-spanner.ly
 changing-fret-orientations.ly
 chord-glissando-in-tablature.ly
 chordchanges-for-fretboards.ly
index cf2bfb23e93e8b7465c1065c24de01b8c1d2718f..d979660dfa4892e0d2e803ddd54095a70cc28fc3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, really-cool, scheme-language"
@@ -19,7 +19,6 @@ get different random note patterns, just change this number.
   doctitle = "Generating random notes"
 } % begin verbatim
 
-
 \score {
   {
     $(let ((random-state (seed->random-state (current-time))))
index cc30a8b2bf262ebb4853e3aa620e6eecf15403fa..d08471155e5e34e161d216175f8d0fef92634d0a 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "automatic-notation, really-cool, scheme-language"
@@ -38,6 +38,7 @@ modified to inser all collected scores so far to the book.
 "
   doctitle = "Generating whole scores (also book parts) in scheme without using the parser"
 } % begin verbatim
+%%
 
 #(define-public (add-score parser score)
    (ly:parser-define! parser 'toplevel-scores
index 5233a96703a4eddff5627dd93e3fb2699a054135..524a742b5107efb89eb5227168605a882817f1f0 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "winds"
index 254a266304f0467cf319f06072150e209cab3341..561a346a3f6d2b5ec6f1800a7a7f9e4dac4c4a06 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -17,7 +17,6 @@ properties.
   doctitle = "Grid lines: changing their appearance"
 } % begin verbatim
 
-
 \score {
   \new ChoirStaff <<
     \new Staff {
index 927ad32969f9f5ad323ae1e15cd643546699b771..f6c1dc359350dcd88ac7f1fd8794326c6b595b4d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -19,7 +19,6 @@ this snippet.
   doctitle = "Grid lines: emphasizing rhythms and notes synchronization"
 } % begin verbatim
 
-
 \score {
   \new ChoirStaff {
     \relative c'' <<
index 7de010c2b663dcf8cadd6262b99ec7f5606ac7ac..2e52aeb090517ce69cab285a8f776c158e08060e 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, rhythms"
@@ -17,7 +17,6 @@ melody notes, chord names and fret diagrams.
   doctitle = "Guitar strum rhythms"
 } % begin verbatim
 
-
 \include "predefined-guitar-fretboards.ly"
 <<
   \new ChordNames {
index ebfcda051323494a825a957fc9d52209c452a18a..2de50e5d3065f5f244f43beb1877f200135387b7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -17,7 +17,6 @@ dotted-line, line, trill or zigzag.
   doctitle = "Hairpins with different line styles"
 } % begin verbatim
 
-
 \relative c' {
   c2\< c\!
   \override Hairpin.style = #'dashed-line
index 7cb8869e0afd7cbd90cd056a12f689fff3f2708e..98fa6bc09987f123914c01068bea20ca9526d62d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.2"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches"
@@ -19,7 +19,7 @@ system.
 
 \relative c'' {
   \override Accidental.hide-tied-accidental-after-break = ##t
-  cis1~ 1~
+  cis1~ cis~
   \break
   cis
 }
index 682e2d5421e3f4db6d64481b1bfaf7bfac35ad81..b92da64840e7b1acad8601f6dedbc8546da9afc0 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -18,7 +18,6 @@ following way:
   doctitle = "Hiding the extender line for text dynamics"
 } % begin verbatim
 
-
 \relative c'' {
   \override DynamicTextSpanner.style = #'none
   \crescTextCresc
index da24c5a5dda064c02dbe9cc86f0adebdd7e1e3cd..7556b0e9b39768e2ad46e256343b0424b3f5d0ec 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.2"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, specific-notation, tweaks-and-overrides"
@@ -29,7 +29,6 @@ itself.
   doctitle = "How to change fret diagram position"
 } % begin verbatim
 
-
 harmonies = \chordmode
 {
   a8:13
@@ -51,7 +50,7 @@ harmonies = \chordmode
      b4.~^\markup { \fret-diagram  #"6-x;5-2;4-4;3-2;2-2;1-4;"  } b4. a8\break
 % HERE IS THE SECOND METHOD
      <<
-       { a8 b4.~ 4. a8}
+       { a8 b4.~ b4. a8}
        { s4 s4 s4^\markup { \fret-diagram  #"6-x;5-2;4-4;3-2;2-2;1-4;"  }
        }
      >>
index 12d760f3ff1e1c2fd50bdb34e9ce9ad665468246..4e22c3caf05f2ac19633de817a17286fd7ce12c4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks, staff-notation, tweaks-and-overrides"
@@ -23,7 +23,6 @@ independently of the other.
   doctitle = "How to print two rehearsal marks above and below the same barline (method 2)"
 } % begin verbatim
 
-
 \score {
   \relative c'
   <<
index c43b550c9d996b93c37070ab48e69e6f2102b158..0191bbba972b085d0f78a2195f915c22e777301b 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "specific-notation, symbols-and-glyphs, text, vocal-music"
@@ -16,7 +16,6 @@ This can be achieved by separating those syllables by tildes.
   doctitle = "How to put ties between syllables in lyrics"
 } % begin verbatim
 
-
 \lyrics {
   wa~o~a
 }
index a6b6004a431f27fd67be4076b80c72f897a1efe8..d748938d094f4b3c8ff99ed82c94ade3aa3fb401 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "template, vocal-music"
@@ -18,7 +18,6 @@ verses as stand-alone text under the music.
   doctitle = "Hymn template"
 } % begin verbatim
 
-
 Timeline = {
   \time 4/4
   \tempo 4=96
index bbb2f9fbd6b03ca3d9aa619d0d2ecaba3dcce8d5..19422b6c24fe615c9082fa692128d1389f774130 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "keyboards, real-music"
@@ -23,7 +23,6 @@ context.
   doctitle = "Indicating cross-staff chords with arpeggio bracket"
 } % begin verbatim
 
-
 \new PianoStaff <<
   \set PianoStaff.connectArpeggios = ##t
   \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
index c8378a2f1da094584efeb517d7d55663c64ffbc4..2ba8a35fa7f52cd2fc48b3b808b26c9cb5f5d230 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -18,7 +18,6 @@ available.
   doctitle = "Inserting a caesura"
 } % begin verbatim
 
-
 \relative c'' {
   \override BreathingSign.text = \markup {
     \musicglyph #"scripts.caesura.straight"
index a3fc4d0bb00429dacea1f1fac0a9ec650d203c8f..c8fb9bc22f9efe600f6898f714561373f1bf1550 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "repeats"
@@ -16,7 +16,6 @@ Isolated percents can also be printed.
   doctitle = "Isolated percent repeats"
 } % begin verbatim
 
-
 makePercent =
 #(define-music-function (parser location note) (ly:music?)
    "Make a percent repeat the same length as NOTE."
index 150474729739106b2e9346033ece701b7c7db1f0..6d6ae87a8e5cdb519859b9802c2b24f6169e27df 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, tweaks-and-overrides"
@@ -17,7 +17,6 @@ initial clef.  This can be overridden with @code{full-size-change}.
   doctitle = "Keep change clefs full sized"
 } % begin verbatim
 
-
 \relative c' {
   \clef "treble"
   c1
index f834227dfcdf7ba2a70aaf52ca4894a1b9b5471b..29aac3541eb4989b5c41e88662981e35bcd224a4 100644 (file)
@@ -1,5 +1,5 @@
 accordion-discant-symbols.ly
-accordion-registers.ly
+accordion-register-symbols.ly
 changing-the-text-for-sustain-markings.ly
 clusters.ly
 controlling-the-placement-of-chord-fingerings.ly
@@ -13,5 +13,6 @@ laissez-vibrer-ties.ly
 piano-template-simple.ly
 piano-template-with-centered-lyrics.ly
 piano-template-with-melody-and-lyrics.ly
+removing-brace-on-first-line-of-piano-score.ly
 using-autochange-with-more-than-one-voice.ly
 vocal-ensemble-template-with-automatic-piano-reduction.ly
index d125dc80386fea60213aa6d6d411ac5db08ba80e..63f92466b516b6d7e34ffa96d4483244f8c268f6 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "connecting-notes, contemporary-notation, expressive-marks, fretted-strings, keyboards, specific-notation"
@@ -17,7 +17,6 @@ using @code{'tie-configuration}.
   doctitle = "Laissez vibrer ties"
 } % begin verbatim
 
-
 \relative c' {
   <c e g>4\laissezVibrer r <c f g>\laissezVibrer r
   <c d f g>4\laissezVibrer r <c d f g>4.\laissezVibrer r8
index d08607014dcb769bd13aa89b3ca2b3d7b6371401..c6e9215d7271fcb15fd328782d75b7a36cb30b6c 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, staff-notation"
@@ -16,7 +16,6 @@ Tablature can be formatted using letters instead of numbers.
   doctitle = "Letter tablature formatting"
 } % begin verbatim
 
-
 music = \relative c {
   c4 d e f
   g4 a b c
index 93086da94c1aae14b51da5f788c2c52e00eb0896..d3cbe37f386778706e85b77bb9304c5a62a98cc2 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -17,7 +17,6 @@ Glissando).
   doctitle = "Line arrows"
 } % begin verbatim
 
-
 \relative c'' {
   \override TextSpanner.bound-padding = #1.0
   \override TextSpanner.style = #'line
index 9167330fe64826c539b5c3ff19df484be2f658b2..48d2a946110671375aa49b7ec70ae30c37052e18 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, text, vocal-music"
index 0b0b6bba2186ae88cce8d9bc196c3f148ca9b5eb..8d616e36c9695a2d8d0a49f6c91dbf8f64f38200 100644 (file)
@@ -1,5 +1,5 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
@@ -18,7 +18,6 @@ details of pitch names and alterations.
   doctitle = "Makam example"
 } % begin verbatim
 
-
 % Initialize makam settings
 \include "makam.ly"
 
index b4d11b13d7fdd5c8eb2c6ff1f9df4be7fb6c8b96..92a2d97c1f56271930a5d3600cfc9dc5785a1302 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, rhythms"
index 1cf8befaa02315be7d88b4d23a88acb2baf736b9..1bacee840448df176596f0ea7e5789a904b731f3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, really-cool, staff-notation, workaround"
index f543c44a18fcd1f0cd174a2fdc928a6f07c0586c..fe5e53010936a613ef2531e9dde1e198c0a18acb 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords"
@@ -20,7 +20,6 @@ extender attributed to that number right before the number.
   doctitle = "Manually break figured bass extenders for only some numbers"
 } % begin verbatim
 
-
 bassfigures = \figuremode {
   \set useBassFigureExtenders = ##t
   <6 4>4 <6 4\!> <6 4\!> <6 4\!> |  <6\! 4\!>  <6 4> <6 4\!> <6 4>
index fe444152341330962595b2cb43fd74a9d5b5ba16..8fe39d8f220d8fe3c229a0286714a7e4a8710385 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "connecting-notes, rhythms, tweaks-and-overrides"
@@ -20,7 +20,6 @@ Beam positions may be controlled manually, by overriding the
   doctitle = "Manually controlling beam positions"
 } % begin verbatim
 
-
 \relative c' {
   \time 2/4
   % from upper staff-line (position 2) to center (position 0)
index a836fd38d17f4eccc3637fcd9fcc8ce14b31744a..31d0b8505b8fb6af99c4289a03691ccc92bb4cf8 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "contemporary-notation, editorial-annotations, vocal-music, workaround"
@@ -18,7 +18,6 @@ a spoken section with the @code{\\speakOn} keyword, and end it with the
   doctitle = "Marking notes of spoken parts with a cross on the stem"
 } % begin verbatim
 
-
 speakOn = {
   \override Stem.stencil =
     #(lambda (grob)
index 474f13f19de5fc2dd782109b2a151e8864a3f663..6ff040e98671d368fdcd82b63a5e6e34f6283bb6 100644 (file)
@@ -1,22 +1,23 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "text"
 
   texidoc = "
 Text that can spread over pages is entered with the
-@code{\\markuplist} command.
+@code{\\markuplines} command.
 
 "
   doctitle = "Markup lines"
 } % begin verbatim
 
+%% updated/modified by P.P.Schneider on Feb. 2014
 
 #(set-default-paper-size "a6")
 
@@ -31,7 +32,8 @@ Text that can spread over pages is entered with the
       Il y avait en Westphalie, dans le château de M. le baron de
       Thunder-ten-tronckh, un jeune garçon à qui la nature avait donné
       les mœurs les plus douces.  Sa physionomie annonçait son âme.
-      Il avait le jugement assez droit, avec l'esprit le plus simple ;
+      Il avait le jugement assez droit, avec l'esprit le plus
+      \concat { simple \hspace #.3 ; }
       c'est, je crois, pour cette raison qu'on le nommait Candide.  Les
       anciens domestiques de la maison soupçonnaient qu'il était fils
       de la sœur de monsieur le baron et d'un bon et honnête
@@ -40,12 +42,16 @@ Text that can spread over pages is entered with the
       quartiers, et que le reste de son arbre généalogique avait été
       perdu par l'injure du temps.
     }
+    \vspace #.3
     \paragraph {
       Monsieur le baron était un des plus puissants seigneurs de la
       Westphalie, car son château avait une porte et des fenêtres.  Sa
       grande salle même était ornée d'une tapisserie.  Tous les chiens
-      de ses basses-cours composaient une meute dans le besoin ; ses
-      palefreniers étaient ses piqueurs; le vicaire du village était
+      de ses basses-cours composaient une meute dans le
+      \concat { besoin \hspace #.3 ; }
+      ses palefreniers étaient ses
+      \concat { piqueurs \hspace #.3 ; }
+      le vicaire du village était
       son grand-aumônier.  Ils l'appelaient tous monseigneur, et ils
       riaient quand il faisait des contes.
     }
index 688ba96a071087d14fd380ef1bc0df2480980b65..93317e27d2f55cd3db506915fdbc4caa928cb162 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, repeats, staff-notation, workaround"
index dfb597b9a7108a8cd646a1cf12afd62bf397842e..0d19ecff49c24a4d5fc8d776edd6cf0a418b3bb3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "ancient-notation, contexts-and-engravers, staff-notation, tweaks-and-overrides"
@@ -19,7 +19,6 @@ the @code{transparent} property.
   doctitle = "Mensurstriche layout (bar lines between the staves)"
 } % begin verbatim
 
-
 global = {
   \hide Staff.BarLine
   s1 s
@@ -27,6 +26,7 @@ global = {
   \undo \hide Staff.BarLine
   \bar "|."
 }
+
 \new StaffGroup \relative c'' {
   <<
     \new Staff { << \global { c1 c } >> }
index 1c1fcd1019ff14d8805e1b1f9ba1a401f56f6bd7..fe6be59c1296a0e20c576d7f138ac4aee143e333 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.25"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
   texidoc = "
 The shorthands are defined in @samp{ly/script-init.ly}, where the
 variables @code{dashHat}, @code{dashPlus}, @code{dashDash},
-@code{dashBang}, @code{dashLarger}, @code{dashDot}, and
+@code{dashBar}, @code{dashLarger}, @code{dashDot}, and
 @code{dashUnderscore} are assigned default values.  The default values
-for the shorthands can be modified. For example, to make the @code{-+}
-(@code{dashPlus}) shorthand create a trill instead of the default +
-(@code{stopped}), assign the value of @code{trill} to the variable
+for the shorthands can be modified. For example, to associate the
+@code{-+} (@code{dashPlus}) shorthand with the trill symbol instead of
+the default + symbol, assign the value @code{trill} to the variable
 @code{dashPlus}:
 
 "
   doctitle = "Modifying default values for articulation shorthand notation"
 } % begin verbatim
 
-
 \relative c'' { c1-+ }
 
-dashPlus = \trill
+dashPlus = "trill"
 
 \relative c'' { c1-+ }
index 8a225d29ff56a627f4b66e4ee93f685e6f1185a9..e2a2a00af63d31129168b3a6aae069e9643aab40 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, simultaneous-notes, tweaks-and-overrides"
@@ -19,14 +19,14 @@ the right.  This behaviour can be over-ridden by using the
   doctitle = "Moving dotted notes in polyphony"
 } % begin verbatim
 
-
 \new Staff \relative c' <<
-  { f2. f4
+  {
+    f2. f4
     \override Staff.NoteCollision.prefer-dotted-right = ##f
     f2. f4
     \override Staff.NoteCollision.prefer-dotted-right = ##t
     f2. f4
   }
   \\
-  { e4 e e e e e e e e e e e}
+  { e4 e e e e e e e e e e e }
 >>
index d2b93bb89c6d7ef23bce3d14528f8b37800d268b..efee38d8904bac0a5973ba941e5e8410b1391171 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -24,7 +24,6 @@ slurs further down.
   doctitle = "Moving slur positions vertically"
 } % begin verbatim
 
-
 \relative c' {
   \stemDown
   e4( a)
index e1d8deea448609d05f32a9d972cf88bb636048a0..752aca16ed98d8a2998e4319d8739de4a2bbb312 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, text"
index 3d05329e1c1ebe2de4de05e5317ecf317eacb4f5..9f03ad7882bf3fe679a919db6a223202d90344c2 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, preparing-parts, staff-notation, tweaks-and-overrides"
@@ -25,7 +25,6 @@ staves. The possibilities are @code{SystemStartBar},
   doctitle = "Nesting staves"
 } % begin verbatim
 
-
 \new StaffGroup
 \relative c'' <<
   \set StaffGroup.systemStartDelimiterHierarchy
diff --git a/Documentation/snippets/new/accordion-discant-symbols.ly b/Documentation/snippets/new/accordion-discant-symbols.ly
deleted file mode 100644 (file)
index 7ec2129..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-\version "2.16.0"
-
-\header {
-  lsrtags = "keyboards, specific-notation, symbols-and-glyphs, workaround"
-
-  texidoc = "
-This snippet has been obsoleted by predefined markup commands, see
-@ruser{Accordion Registers}.  It's still useful as a simple
-demonstration of how to combine symbols: the placement of the symbols
-added with @code{\\markup} can be tweaked by changing the
-@code{\\translate-scaled} arguments.  @code{\\translate-scaled} is
-used here rather than @code{\\translate} in order to let the
-positioning of the symbol parts adapt to changes of @code{font-size}.
-"
-  doctitle = "Accordion-discant symbols"
-}
-
-discant = \markup {
-  \musicglyph #"accordion.discant"
-}
-dot = \markup {
-  \musicglyph #"accordion.dot"
-}
-
-\layout { ragged-right = ##t }
-
-% 16 voets register
-accBasson = ^\markup {
-  \combine
-  \discant
-  \translate-scaled #'(0 . 0.5) \dot
-}
-
-% een korig 8 en 16 voets register
-accBandon = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 0.5) \dot
-      \translate-scaled #'(0 . 1.5) \dot
-}
-
-accVCello = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 0.5) \dot
-      \combine
-        \translate-scaled #'(0 . 1.5) \dot
-        \translate-scaled #'(1 . 1.5) \dot
-}
-
-% 4-8-16 voets register
-accHarmon = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 0.5) \dot
-      \combine
-        \translate-scaled #'(0 . 1.5) \dot
-        \translate-scaled #'(0 . 2.5) \dot
-}
-
-accTrombon = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 0.5) \dot
-      \combine
-        \translate-scaled #'(0 . 1.5) \dot
-        \combine
-          \translate-scaled #'(1 . 1.5) \dot
-          \translate-scaled #'(-1 . 1.5) \dot
-}
-
-% eenkorig 4 en 16 voets register
-accOrgan = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 0.5) \dot
-      \translate-scaled #'(0 . 2.5) \dot
-}
-
-accMaster = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 0.5) \dot
-      \combine
-        \translate-scaled #'(0 . 1.5) \dot
-        \combine
-          \translate-scaled #'(1 . 1.5) \dot
-          \combine
-            \translate-scaled #'(-1 . 1.5) \dot
-            \translate-scaled #'(0 . 2.5) \dot
-}
-
-accAccord = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 1.5) \dot
-      \combine
-        \translate-scaled #'(1 . 1.5) \dot
-        \combine
-          \translate-scaled #'(-1 . 1.5) \dot
-          \translate-scaled #'(0 . 2.5) \dot
-}
-
-accMusette = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 1.5) \dot
-      \combine
-        \translate-scaled #'(1 . 1.5) \dot
-        \translate-scaled #'(-1 . 1.5) \dot
-}
-
-accCeleste = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 1.5) \dot
-      \translate-scaled #'(-1 . 1.5) \dot
-}
-
-accOboe = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 1.5) \dot
-      \translate-scaled #'(0 . 2.5) \dot
-}
-
-accClarin = ^\markup {
-  \combine
-    \discant
-    \translate-scaled #'(0 . 1.5) \dot
-}
-
-accPiccolo = ^\markup {
-    \combine
-       \discant
-       \translate-scaled #'(0 . 2.5) \dot
-}
-
-accViolin = ^\markup {
-  \combine
-    \discant
-    \combine
-      \translate-scaled #'(0 . 1.5) \dot
-      \combine
-        \translate-scaled #'(1 . 1.5) \dot
-        \translate-scaled #'(0 . 2.5) \dot
-}
-
-\relative c'' {
-  c4 d\accBasson e f
-  c4 d\accBandon e f
-  c4 d\accVCello e f
-  c4 d\accHarmon e f
-  c4 d\accTrombon e f
-  \break
-  c4 d\accOrgan e f
-  c4 d\accMaster e f
-  c4 d\accAccord e f
-  c4 d\accMusette e f
-  c4 d\accCeleste e f
-  \break
-  c4 d\accOboe e f
-  c4 d\accClarin e f
-  c4 d\accPiccolo e f
-  c4 d\accViolin e f
-}
diff --git a/Documentation/snippets/new/accordion-registers.ly b/Documentation/snippets/new/accordion-registers.ly
deleted file mode 100644 (file)
index 26a6e9d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-\version "2.17.23"
-
-\header {
-  lsrtags = "keyboards, specific-notation, symbols-and-glyphs"
-
-  texidoc = "Accordion register symbols are available as
-@code{\\markup} as well as as standalone music events (as register
-changes tend to occur between actual music events.  Bass registers are
-not overly standardized.  The available commands can be found in
-@ruser{Accordion Registers}."
-
-  doctitle = "Accordion register symbols"
-}
-
-\layout { ragged-right = ##t }
-
-#(use-modules (scm accreg))
-
-\new PianoStaff
-<<
-  \new Staff \relative
-  { \clef treble \discant "10" r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a]
-    << { r16 <f bes> r <e a> r <d g> } \\ { d r a r bes r } >> | <cis e a>1 }    
-  \new Staff \relative
-  { \clef treble \freeBass "1" r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16
-    \clef bass \stdBass "Master"
-    << { r16 <f, bes d>^"b" r <e a c>^"am" r <d g bes>^"gm" |
-        <e a cis>1^"a" } \\
-       { d8_"D" c_"C" bes_"B" | a1_"A" }
-     >>
-  }
->>
diff --git a/Documentation/snippets/new/adding-a-figured-bass-above-or-below-the-notes.ly b/Documentation/snippets/new/adding-a-figured-bass-above-or-below-the-notes.ly
deleted file mode 100644 (file)
index 811df57..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-\version "2.17.6"
-
-\header {
-  lsrtags = "ancient-notation, chords, contexts-and-engravers"
-
-  texidoc = "
-When writing a figured bass, you can place the figures above or below
-the bass notes, by defining the
-@code{BassFigureAlignmentPositioning.direction} property (exclusively
-in a @code{Staff} context).  Choices are @code{#UP} (or @code{#1}),
-@code{#CENTER} (or @code{#0}) and @code{#DOWN} (or @code{#-1}).
-
-This property can be changed as many times as you wish.  Use
-@code{\\once \\override} if you don't want the override to apply to the
-whole score.
-
-"
-  doctitle = "Adding a figured bass above or below the notes"
-}
-
-
-bass = {
-  \clef bass
-  g4 b, c d
-  e d8 c d2
-}
-continuo = \figuremode {
-  <_>4 <6>4 <5/>4
-  \override Staff.BassFigureAlignmentPositioning.direction = #UP
-  %\bassFigureStaffAlignmentUp
-  < _+ >4 <6>
-  \set Staff.useBassFigureExtenders = ##t
-  \override Staff.BassFigureAlignmentPositioning.direction = #DOWN
-  %\bassFigureStaffAlignmentDown
-  <4>4. <4>8 <_+>4
-}
-\score {
-  <<
-    \new Staff = bassStaff \bass
-    \context Staff = bassStaff \continuo
-  >>
-}
diff --git a/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly b/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly
deleted file mode 100644 (file)
index b4d32ff..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-\version "2.16.0"
-
-\header {
-  lsrtags = "scheme-language"
-
-  texidoc = "
-You can add additional elements to notes using @code{map-some-music}. In this
-example, an extra script is attached to a note.
-
-In general, first do a @code{\\displayMusic} of the music you want to
-create, then write a function that will work on the appropriate parts
-of the music for you.
-"
-  doctitle = "Adding extra fingering with scheme"
-}
-
-addScript =
-#(define-music-function (parser location script music)
-   (ly:event? ly:music?)
-   (map-some-music
-    (lambda (mus)
-      (define (append-script-at! prop)
-        (set! (ly:music-property mus prop)
-              (append (ly:music-property mus prop)
-                      (list (ly:music-deep-copy script))))
-        mus)
-      (case (ly:music-property mus 'name)
-        ((EventChord)
-         (append-script-at! 'elements))
-        ((NoteEvent)
-         (append-script-at! 'articulations))
-        (else #f)))
-    music))
-
-\score {
-  {
-    \addScript _6 { c'4-3 <c' e' g'> }
-  }
-}
diff --git a/Documentation/snippets/new/adding-orchestral-cues-to-a-vocal-score.ly b/Documentation/snippets/new/adding-orchestral-cues-to-a-vocal-score.ly
deleted file mode 100644 (file)
index fcc5778..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-\version "2.17.6"
-
-\header {
-  lsrtags = "staff-notation, vocal-music"
-
-  texidoc = "
-This shows one approach to simplify adding many orchestral cues to the
-piano reduction in a vocal score.  The music function @code{\\cueWhile}
-takes four arguments: the music from which the cue is to be taken, as
-defined by @code{\\addQuote}, the name to be inserted before the cue
-notes, then either @code{#UP} or @code{#DOWN} to specify either
-@code{\\voiceOne} with the name above the staff or @code{\\voiceTwo}
-with the name below the staff, and finally the piano music in parallel
-with which the cue notes are to appear.  The name of the cued
-instrument is positioned to the left of the cued notes. Many passages
-can be cued, but they cannot overlap each other in time.
-
-"
-  doctitle = "Adding orchestral cues to a vocal score"
-}
-
-cueWhile =
-#(define-music-function
-   (parser location instrument name dir music)
-   (string? string? ly:dir? ly:music?)
-   #{
-     \cueDuring $instrument #dir {
-       \once \override TextScript.self-alignment-X = #RIGHT
-       \once \override TextScript.direction = $dir
-       <>-\markup { \tiny #name }
-       $music
-     }
-   #})
-
-flute = \relative c'' {
-  \transposition c'
-  s4 s4 e g
-}
-\addQuote "flute" { \flute }
-
-clarinet = \relative c' {
-  \transposition bes
-  fis4 d d c
-}
-\addQuote "clarinet" { \clarinet }
-
-singer = \relative c'' { c4. g8 g4 bes4 }
-words = \lyricmode { here's the lyr -- ics }
-
-pianoRH = \relative c'' {
-  \transposition c'
-  \cueWhile "clarinet" "Clar." #DOWN { c4. g8 }
-  \cueWhile "flute" "Flute" #UP { g4 bes4 }
-}
-pianoLH = \relative c { c4 <c' e> e, <g c> }
-
-\score {
-  <<
-    \new Staff {
-      \new Voice = "singer" {
-        \singer
-      }
-    }
-    \new Lyrics {
-      \lyricsto "singer"
-      \words
-    }
-    \new PianoStaff <<
-      \new Staff {
-        \new Voice {
-          \pianoRH
-        }
-      }
-      \new Staff {
-        \clef "bass"
-        \pianoLH
-      }
-    >>
-  >>
-}
diff --git a/Documentation/snippets/new/adding-timing-marks-to-long-glissandi.ly b/Documentation/snippets/new/adding-timing-marks-to-long-glissandi.ly
deleted file mode 100644 (file)
index 3bb2d02..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-\version "2.17.30"
-
-\header {
-  lsrtags = "expressive-marks, staff-notation, tweaks-and-overrides"
-
-  texidoc = "
-Skipped beats in very long glissandi are sometimes indicated by
-timing marks, often consisting of stems without noteheads.  Such
-stems can also be used to carry intermediate expression markings.
-
-If the stems do not align well with the glissando, they may need to
-be repositioned slightly.
-"
-
-  doctitle = "Adding timing marks to long glissandi"
-}
-
-glissandoSkipOn = {
-  \override NoteColumn.glissando-skip = ##t
-  \hide NoteHead
-  \override NoteHead.no-ledgers = ##t
-}
-
-glissandoSkipOff = {
-  \revert NoteColumn.glissando-skip
-  \undo \hide NoteHead
-  \revert NoteHead.no-ledgers
-}
-
-\relative c'' {
-  r8 f8\glissando
-  \glissandoSkipOn
-  f4 g a a8\noBeam
-  \glissandoSkipOff
-  a8
-
-  r8 f8\glissando
-  \glissandoSkipOn
-  g4 a8
-  \glissandoSkipOff
-  a8 |
-
-  r4 f\glissando \<
-  \glissandoSkipOn
-  a4\f \>
-  \glissandoSkipOff
-  b8\! r |
-}
diff --git a/Documentation/snippets/new/alternative-bar-numbering.ly b/Documentation/snippets/new/alternative-bar-numbering.ly
deleted file mode 100644 (file)
index 78903e3..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-\version "2.16.0"
-
-\header {
-  lsrtags = "editorial-annotations, staff-notation, tweaks-and-overrides"
-  texidoc = "Two alternative methods for bar numbering can be set,
-  especially for when using repeated music."
-  doctitle = "Alternative bar numbering"
-}
-
-\relative c'{
-  \set Score.alternativeNumberingStyle = #'numbers
-  \repeat volta 3 { c4 d e f | }
-    \alternative {
-      { c4 d e f | c2 d \break }
-      { f4 g a b | f4 g a b | f2 a | \break }
-      { c4 d e f | c2 d }
-    }
-  c1 \break
-  \set Score.alternativeNumberingStyle = #'numbers-with-letters
-  \repeat volta 3 { c,4 d e f | }
-    \alternative {
-      { c4 d e f | c2 d \break }
-      { f4 g a b | f4 g a b | f2 a | \break }
-      { c4 d e f | c2 d }
-    }
-  c1
-}
diff --git a/Documentation/snippets/new/ancient-fonts.ly b/Documentation/snippets/new/ancient-fonts.ly
deleted file mode 100644 (file)
index 159bed3..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-%% This file is in the public domain.
-\version "2.17.6"
-
-\header {
-  lsrtags = "ancient-notation, symbols-and-glyphs"
-
-  texidoc = "
-Shown here are many (all?) of the symbols that are included in
-LilyPond's support for ancient notation.
-"
-  doctitle = "Ancient fonts"
-}
-
-upperStaff = \new VaticanaStaff = "upperStaff" <<
-  \context VaticanaVoice <<
-    \transpose c c {
-
-      \override NoteHead.style = #'vaticana.punctum
-      \key es \major
-      \clef "vaticana-fa2"
-      c1 des e f ges
-
-      \override NoteHead.style = #'vaticana.inclinatum
-      a! b ces'
-      \bar "|"
-      % \break % 1 (8*1)
-
-      \override NoteHead.style = #'vaticana.quilisma
-      b! des'! ges! fes!
-      \breathe
-      \clef "vaticana-fa1"
-      \override NoteHead.style = #'vaticana.plica
-      es d
-      \override NoteHead.style = #'vaticana.reverse.plica
-      c d
-      \bar "|"
-      % \break %2 (8*1)
-
-      \override NoteHead.style = #'vaticana.punctum.cavum
-      es f
-      \override NoteHead.style = #'vaticana.lpes
-      g as
-      \override NoteHead.style = #'vaticana.upes
-      bes as
-      \override NoteHead.style = #'vaticana.vupes
-      g f
-      \override NoteHead.style = #'vaticana.linea.punctum
-      \once \override Staff.BarLine.bar-extent = #'(-1 . 1) \bar "|"
-      % \break % 3 (8*1)
-
-      es d
-      \override NoteHead.style = #'vaticana.epiphonus
-      c d
-      \override NoteHead.style = #'vaticana.cephalicus
-      es f
-
-      \override Staff.KeySignature.glyph-name-alist = #alteration-medicaea-glyph-name-alist
-      \override Staff.Accidental.glyph-name-alist = #alteration-medicaea-glyph-name-alist
-      \override Staff.Custos.style = #'medicaea
-      \override NoteHead.style = #'medicaea.punctum
-      \clef "medicaea-fa2"
-      ces des
-      \bar "|"
-      % \break % 4 (8*1)
-
-      e! f! ges
-      \clef "medicaea-do2"
-      \override NoteHead.style = #'medicaea.inclinatum
-      a! b! ces'
-      \override NoteHead.style = #'medicaea.virga
-      b! a!
-      \bar "|"
-      % \break % 5 (8*1)
-
-      ges fes
-      \clef "medicaea-fa1"
-      \override NoteHead.style = #'medicaea.rvirga
-      e des ces
-
-      \override Staff.KeySignature.glyph-name-alist = #alteration-hufnagel-glyph-name-alist
-      \override Staff.Accidental.glyph-name-alist = #alteration-hufnagel-glyph-name-alist
-      \override Staff.Custos.style = #'hufnagel
-      \override NoteHead.style = #'hufnagel.punctum
-      \clef "hufnagel-fa2"
-      ces des es
-      \bar "|"
-      % \break % 6 (8*1)
-
-      fes ges
-      \clef "hufnagel-do2"
-      \override NoteHead.style = #'hufnagel.lpes
-      as! bes! ces'
-      \override NoteHead.style = #'hufnagel.virga
-      bes! as!
-      \bar "|"
-      % \break % 7 (8*1)
-
-      ges! fes!
-      \clef "hufnagel-do-fa"
-      \override NoteHead.style = #'hufnagel.punctum
-      es! des ces des! es! fes!
-      \bar "||"
-      % \break % 8 (8*1)
-
-      s32*1
-      % \break % 12 (32*1)
-    }
-  >>
->>
-
-lowerStaff = \new MensuralStaff = "lowerStaff" <<
-  \context MensuralVoice <<
-    \transpose c c {
-
-      \key a \major
-      cis'1 d'\breve gis'\breve e'\breve \[ e'\longa fis'\longa \]
-      \set Staff.forceClef = ##t
-      \clef "neomensural-c2"
-      cis1
-      \bar "|"
-      % \break % 2 (16*1)
-
-      \[ g\breve dis''\longa \]
-      b\breve \[ a\longa d\longa \]
-      \clef "petrucci-c2"
-      % \break % 4 (16*1)
-
-      fis1 ces1
-      \clef "petrucci-c2"
-      r\longa
-      \set Staff.forceClef = ##t
-      \clef "mensural-c2"
-      r\breve
-      \bar "|"
-      % \break % 5 (8*1)
-
-      r2
-      \clef "mensural-g"
-      r4 r8 r16 r16
-      \override NoteHead.style = #'mensural
-      \override Rest.style = #'mensural
-      \clef "petrucci-f"
-      c8 b, c16 b, c32 b, c64 b, c64 b,
-      d8 e d16 e d32 e d64 e d64 e
-      r\longa
-      \set Staff.forceClef = ##t
-      \clef "petrucci-f"
-      r\breve
-      \bar "|"
-      % \break % 6 (8*1)
-
-      r\breve
-      \clef "mensural-f"
-      r2 r4 r8 r16 r16
-
-      \set Staff.forceClef = ##t
-      \clef "mensural-f"
-      e\breve f g a1
-      \clef "mensural-g"
-      % \break % 7 (8*1)
-
-      \[ bes'!\longa a'!\longa c''!\longa \]
-      e'1 d' c' d' \bar "|"
-      \bar "|"
-      % \break % 9 (16*1)
-
-      bes'!\longa fis'!1 as'!1 ges'!\longa % lig
-      \set Staff.forceClef = ##t
-      \clef "mensural-g"
-      e'2 d' c' \bar "|"
-      % \break % 11 (16*1)
-
-      \set Staff.forceClef = ##t
-      \clef "petrucci-g"
-      c'2 d' e' f'
-      \clef "petrucci-g"
-      g' as'! bes'! cis''!
-      bes'! as'! gis'! fis'!
-      \set Staff.forceClef = ##t
-      \clef "mensural-g"
-      es'! des'! cis'!1 \bar "||"
-      % \break % 12 (8*1)
-    }
-  >>
->>
-
-\paper {
-  line-thickness = #(/ staff-space 5.0)
-}
-
-\score {
-  <<
-    \upperStaff
-    \lowerStaff
-  >>
-  \layout {
-    indent = 0.0
-    line-width = 17.25\cm
-    \context {
-      \Score
-      timing = ##f
-    }
-    \context {
-      \MensuralVoice
-      \override NoteHead.style = #'neomensural
-      \override Rest.style = #'neomensural
-      \override Flag.style = #'mensural
-      \override Stem.thickness = #1.0
-    }
-    \context {
-      \MensuralStaff
-      \revert  BarLine.transparent
-      \override KeySignature.glyph-name-alist = #alteration-mensural-glyph-name-alist
-      clefGlyph = #"clefs.petrucci.c2"
-    }
-    \context {
-      \VaticanaStaff
-      \revert  BarLine.transparent
-      \override StaffSymbol.thickness = #2.0
-      \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist
-      \override Custos.neutral-position = #4
-    }
-  }
-}
-
diff --git a/Documentation/snippets/new/ancient-notation-template----modern-transcription-of-gregorian-music.ly b/Documentation/snippets/new/ancient-notation-template----modern-transcription-of-gregorian-music.ly
deleted file mode 100644 (file)
index 2fe51d9..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-\version "2.17.30"
-
-\header {
-  lsrtags = "vocal-music, ancient-notation, template"
-
-  texidoc = "
-This example demonstrates how to do modern transcription of Gregorian
-music. Gregorian music has no measure, no stems; it uses only half and
-quarter note heads, and special marks, indicating rests of different
-length.
-
-"
-  doctitle = "Ancient notation template -- modern transcription of gregorian music"
-}
-
-\include "gregorian.ly"
-
-chant = \relative c' {
-  \set Score.timing = ##f
-  f4 a2 \divisioMinima
-  g4 b a2 f2 \divisioMaior
-  g4( f) f( g) a2 \finalis
-}
-
-verba = \lyricmode {
-  Lo -- rem ip -- sum do -- lor sit a -- met
-}
-
-\score {
-  \new Staff <<
-    \new Voice = "melody" \chant
-    \new Lyrics = "one" \lyricsto melody \verba
-  >>
-  \layout {
-    \context {
-      \Staff
-      \remove "Time_signature_engraver"
-      \remove "Bar_engraver"
-      \hide Stem
-    }
-    \context {
-      \Voice
-      \override Stem.length = #0
-    }
-    \context {
-      \Score
-      barAlways = ##t
-    }
-  }
-}
-
diff --git a/Documentation/snippets/new/bar-chords-notation-for-guitar--with-text-spanner.ly b/Documentation/snippets/new/bar-chords-notation-for-guitar--with-text-spanner.ly
deleted file mode 100644 (file)
index c74d392..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-\version "2.17.6"
-
-\header {
-  lsrtags = "chords, fretted-strings"
-
-  texidoc = "
-Here is how to print bar chords, or half-bar chords (just uncomment the
-appropriate line for to select either one).
-
-The syntax is @code{\\bbarre #\"@var{fret number}\" @{ notes @} }.
-"
-  doctitle = "Bar chords notation for Guitar (with Text Spanner)"
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%%%%%%  Cut here ----- Start 'bbarred.ly'
-
-%% C with slash -------------------------------
-cWithSlash = \markup {
-  \combine \roman C \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0)
-}
-%% Span -----------------------------------
-%% Syntax: \bbarre #"text" { notes } - text = any number of box
-bbarre =
-#(define-music-function (barre location str music) (string? ly:music?)
-   (let ((elts (extract-named-music music '(NoteEvent EventChord))))
-     (if (pair? elts)
-         (let ((first-element (first elts))
-               (last-element (last elts)))
-           (set! (ly:music-property first-element 'articulations)
-                 (cons (make-music 'TextSpanEvent 'span-direction -1)
-                       (ly:music-property first-element 'articulations)))
-           (set! (ly:music-property last-element 'articulations)
-                 (cons (make-music 'TextSpanEvent 'span-direction 1)
-                       (ly:music-property last-element 'articulations))))))
-   #{
-       \once \override TextSpanner.font-size = #-2
-       \once \override TextSpanner.font-shape = #'upright
-       \once \override TextSpanner.staff-padding = #3
-       \once \override TextSpanner.style = #'line
-       \once \override TextSpanner.to-barline = ##f
-       \once \override TextSpanner.bound-details =
-            #`((left
-                (text . ,#{ \markup { \draw-line #'( 0 . -.5) } #})
-                (Y . 0)
-                (padding . 0.25)
-                (attach-dir . -2))
-               (right
-                (text . ,#{ \markup { \cWithSlash #str } #})
-                (Y . 0)
-                (padding . 0.25)
-                (attach-dir . 2)))
-%% uncomment this line for make full barred
-       % \once  \override TextSpanner.bound-details.left.text =  \markup { "B" #str }
-       $music
-   #})
-
-%% %%%%%%%  Cut here ----- End 'bbarred.ly'
-%% Copy and change the last line for full barred. Rename in 'fbarred.ly'
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%% Syntaxe: \bbarre #"text" { notes } - text = any number of box
-\relative c'{ \clef "G_8" \stemUp \bbarre #"III" { <f a'>16[  c' d c d8] } }
diff --git a/Documentation/snippets/new/broken-crescendo-hairpin.ly b/Documentation/snippets/new/broken-crescendo-hairpin.ly
deleted file mode 100644 (file)
index f14c983..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-\version "2.19.2"
-
-\header {
-  lsrtags = "contemporary-notation, expressive-marks, symbols-and-glyphs"
-
-  texidoc = "
-In order to make parts of a crescendo hairpin invisible, the following
-method is used: A white rectangle is drawn on top of the respective
-part of the crescendo hairpin, making it invisible.
-
-The markup command @code{with-dimensions} tells LilyPond to consider only
-the bottom edge of the rectangle when spacing it against the hairpin.
-The property @code{staff-padding} prevents the rectangle from fitting
-between the hairpin and staff.
-
-Make sure to put the hairpin in a lower layer than the text markup to
-draw the rectangle over the hairpin.
-
-"
-  doctitle = "Broken Crescendo Hairpin"
-}
-
-\relative c' {
-  <<
-    {
-      \dynamicUp
-      r2 r16 c'8.\pp r4
-    }
-    \\
-    {
-      \override DynamicLineSpanner.layer = #0
-      des,2\mf\< ~
-      \override TextScript.layer = #2
-      \once\override TextScript.staff-padding = #6
-      \once\override TextScript.vertical-skylines = #'()
-      des16_\markup \with-dimensions #'(2 . 7) #'(0 . 0)
-                    \with-color #white
-                    \filled-box #'(2 . 7) #'(0 . 2) #0
-      r8. des4 ~ 16->\sff
-    }
-  >>
-}
diff --git a/Documentation/snippets/new/centered-measure-numbers.ly b/Documentation/snippets/new/centered-measure-numbers.ly
deleted file mode 100644 (file)
index 6fa6ee9..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-\version "2.17.7"
-
-\header {
-  lsrtags = "contexts-and-engravers, repeats, staff-notation"
-
-  texidoc = "
-Scores of large ensemble works often have bar numbers placed beneath the
-system, centered horizontally on the measure's extent.  This snippet shows
-how the @code{Measure_counter_engraver} may be used to simulate this
-notational practice.  Here, the engraver has been added to a @code{Dynamics}
-context.
-
-"
-
-  doctitle = "Centered measure numbers"
-}
-
-\layout {
-  \context {
-    \Dynamics
-    \consists #Measure_counter_engraver
-    \override MeasureCounter.direction = #DOWN
-    \override MeasureCounter.font-encoding = #'latin1
-    \override MeasureCounter.font-shape = #'italic
-    % to control the distance of the Dynamics context from the staff:
-    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #2
-  }
-  \context {
-    \Score
-    \remove "Bar_number_engraver"
-  }
-}
-
-pattern = \repeat unfold 7 { c'4 d' e' f' }
-
-\new StaffGroup <<
-  \new Staff {
-    \pattern
-  }
-  \new Staff {
-    \pattern
-  }
-  \new Dynamics {
-    \startMeasureCount
-    s1*7
-    \stopMeasureCount
-  }
->>
diff --git a/Documentation/snippets/new/centering-markup-on-note-heads-automatically.ly b/Documentation/snippets/new/centering-markup-on-note-heads-automatically.ly
deleted file mode 100644 (file)
index 641f286..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-\version "2.17.6"
-
-\header {
-  lsrtags = "text, tweaks-and-overrides, contexts-and-engravers"
-  texidoc = "
-For technical reasons, text scripts attached to note heads cannot
-easily be centered on a note head's width, unlike articulations.
-
-Instead of using trial-and-error offset tweaks, this snippet uses a
-Scheme engraver to reset the horizontal parent of each markup to a
-@code{NoteColumn}.  This also allows text to follow note heads which have
-been shifted via @code{force-hshift}.
-"
-  doctitle = "Centering markup on note heads automatically"
-}
-
-#(define (Text_align_engraver ctx)
-  (let ((scripts '())
-        (note-column #f))
-    (make-engraver
-     (acknowledgers
-      ((note-column-interface trans grob source)
-       ;; cache NoteColumn in this Voice context
-       (set! note-column grob))
-      ((text-script-interface trans grob source)
-       ;; whenever a TextScript is acknowledged,
-       ;; add it to `scripts' list
-       (set! scripts (cons grob scripts))))
-     ((stop-translation-timestep trans)
-      ;; if any TextScript grobs exist,
-      ;; set NoteColumn as X-parent
-      (for-each (lambda (script)
-                 (set! (ly:grob-parent script X) note-column))
-               scripts)
-      ;; clear scripts ready for next timestep
-      (set! scripts '())))))
-
-\layout {
-  \context {
-    \Voice
-    \consists #Text_align_engraver
-    \override TextScript.X-offset =
-      #ly:self-alignment-interface::aligned-on-x-parent
-    \override TextScript.self-alignment-X = #CENTER
-  }
-}
-
-\new Staff <<
-  \relative c'' {
-    \override NoteColumn.force-hshift = #3
-    c1-\markup { \arrow-head #Y #DOWN ##t }
-  }
-  \\
-  \relative c' {
-    a4 a-\markup { \huge ^ } a a
-  }
->>
diff --git a/Documentation/snippets/new/changing-the-tuplet-number.ly b/Documentation/snippets/new/changing-the-tuplet-number.ly
deleted file mode 100644 (file)
index 346d12e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-\version "2.17.30"
-
-\header {
-  lsrtags = "rhythms"
-
-  texidoc = "
-By default, only the numerator of the tuplet number is printed over the
-tuplet bracket. Alternatively, num:den of the tuplet number may
-be printed, or the tuplet number may be suppressed altogether.
-
-"
-  doctitle = "Changing the tuplet number"
-}
-
-
-\relative c'' {
-  \tuplet 3/2 { c8 c c }
-  \tuplet 3/2 { c8 c c }
-  \override TupletNumber.text = #tuplet-number::calc-fraction-text
-  \tuplet 3/2 { c8 c c }
-  \omit TupletNumber
-  \tuplet 3/2 { c8 c c }
-}
diff --git a/Documentation/snippets/new/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly b/Documentation/snippets/new/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly
deleted file mode 100644 (file)
index cedf58c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-\version "2.17.11"
-
-\header {
-  lsrtags = "workaround, contexts-and-engravers, contemporary-notation, rhythms"
-
-  doctitle = "Changing time signatures inside a polymetric section using \\scaleDurations"
-}
-
-
-\layout {
-  \context {
-    \Score
-    \remove "Timing_translator"
-    \remove "Default_bar_line_engraver"
-  }
-  \context {
-    \Staff
-    \consists "Timing_translator"
-    \consists "Default_bar_line_engraver"
-  }
-}
-
-<<
-  \new Staff {
-    \scaleDurations 8/5 {
-      \time 6/8
-      \set Timing.measureLength = #(ly:make-moment 6/5)
-      b8 b b b b b
-      \time 2/4
-      \set Timing.measureLength = #(ly:make-moment 4/5)
-      b4 b
-    }
-  }
-  \new Staff {
-    \clef bass
-    \time 2/4
-    c2 d e f
-  }
->>
diff --git a/Documentation/snippets/new/chant-or-psalms-notation.ly b/Documentation/snippets/new/chant-or-psalms-notation.ly
deleted file mode 100644 (file)
index 8edb405..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-\version "2.17.6"
-
-\header {
-  lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers, specific-notation"
-
-  texidoc = "
-This form of notation is used for the chant of the Psalms, where verses
-aren't always the same length.
-
-"
-  doctitle = "Chant or psalms notation"
-}
-
-stemOff = \hide Staff.Stem
-stemOn  = \undo \stemOff
-
-\score {
-  \new Staff \with { \remove "Time_signature_engraver" }
-  {
-    \key g \minor
-    \cadenzaOn
-    \stemOff a'\breve bes'4 g'4
-    \stemOn a'2 \bar "||"
-    \stemOff a'\breve g'4 a'4
-    \stemOn f'2 \bar "||"
-    \stemOff a'\breve^\markup { \italic flexe }
-    \stemOn g'2 \bar "||"
-  }
-}
-
diff --git a/Documentation/snippets/new/chords-headword.ly b/Documentation/snippets/new/chords-headword.ly
deleted file mode 100644 (file)
index 4f625dd..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-\version "2.17.6"
-
-\header {
-  lsrtags = "headword"
-  texidoc = ""
-  doctitle = "headword"
-}
-
-
-theChords = \chordmode {
-  \time 2/2
-  f1 | c2 f2 | f1 | c2 f2| %\break
-  f2 bes2 | f1 | c2:7 f | c1 | \break
-}
-
-verseOne = \lyricmode {
-  \set stanza = #"1."
-  Fair is the sun - shine,
-  Fair - er the moon - light
-  And all the stars __ _  in heav'n a -- bove;
-}
-
-verseTwo = \lyricmode {
-  \set stanza = #"2."
-  Fair are the mead - ows,
-  Fair - er the wood - land,
-  Robed in the flow -- ers of bloom -- ing spring;
-}
-
-Soprano = {
-  \time 2/2
-  \key f \major
-  \stemUp
-  f'2 f'4 f' | g'4 e' f'2 | a'4. a'8 a'4 a' | bes'4 g' a'2 |
-  c''2 f''4 d'' |  c''2  bes'4  a' | bes'2 a' | g'1 |
-}
-
-Alto = {
-  \key f \major
-  c'2 c'4 c' | d'4 c' c'2 | f'4. f'8 f'4 fis' | g'4 e' f'2 |
-  f'2 f'4 f' |  f'2  g'4  f' | e'2 f' | e'1 |
-}
-
-Tenor = {
-  \key f \major
-  \stemDown
-  a2 a4 a | bes4 g a2  | c'4. c'8 d'4 d' | d'4 c' c'2 |
-  a2 d'4 bes | a2 c'4 c' | c'2 c'  | c'1 |
-}
-
-Bass = {
-  \key f \major
-  f2 f4 f | bes,4 c  f2 | f4. e8 d4 c | bes,4 c f2 |
-  f2 bes,4 d | f2 e4 f | g2 f | c1 |
-}
-
-
-\score {
-  <<
-    \new ChordNames { \theChords }
-    \context Staff = upper {
-      \context Voice = sop {
-        <<
-          \Soprano
-          \Alto
-        >>
-      }
-    }
-    \context Lyrics = "LyrOne" \lyricsto "sop" { \verseOne }
-    \context Lyrics = "LyrTwo" \lyricsto "sop" { \verseTwo }
-    \context Staff = lower {
-      \new Voice {
-        \clef bass
-        \accidentalStyle modern-cautionary
-        <<
-          \Tenor
-          \Bass
-        >>
-      }
-    }
-  >>
-
-  \layout {
-    indent = 0
-    \context {
-      \Score
-      \remove "Bar_number_engraver"
-    }
-    \context {
-      \Voice
-      \override StanzaNumber.padding = #1.8
-    }
-  }
-}
-\paper {  }
diff --git a/Documentation/snippets/new/compound-time-signatures.ly b/Documentation/snippets/new/compound-time-signatures.ly
deleted file mode 100644 (file)
index 693ed00..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-\version "2.17.15"
-
-\header {
-  lsrtags = "rhythms"
-
-  texidoc = "
-Odd 20th century time signatures (such as \\\"5/8\\\") can often be
-played as compound time signatures (e.g. \\\"3/8 + 2/8\\\"), which
-combine two or more inequal metrics. LilyPond can make such music quite
-easy to read and play, by explicitly printing the compound time
-signatures and adapting the automatic beaming behavior.
-
-"
-  doctitle = "Compound time signatures"
-}
-
-\relative c' {
-  \compoundMeter #'((2 8) (3 8))
-  c8 d e fis gis
-  c8 fis, gis e d
-  c8 d e4 gis8
-}
diff --git a/Documentation/snippets/new/conducting-signs,-measure-grouping-signs.ly b/Documentation/snippets/new/conducting-signs,-measure-grouping-signs.ly
deleted file mode 100644 (file)
index c833826..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-\version "2.16.0"
-
-\header {
-  lsrtags = "rhythms"
-  texidoc = "
-Beat grouping within a measure is controlled by the context property
-@code{beatStructure}.  Values of @code{beatStructure} are
-established for many time signatures in
-@file{scm/time-signature-settings.scm}.  Values of @code{beatStructure}
-can be changed or set with @code{\set}.
-Alternatively, @code{\time} can be used to both
-set the time signature and establish the beat structure.
-For this, you specify the internal grouping of beats in a measure
-as a list of numbers (in Scheme syntax) before the time signature.
-
-@code{\time} applies to the @code{Timing} context, so it will not
-reset values of @code{beatStructure} or @code{baseMoment} that are set
-in other lower-level contexts, such as @code{Voice}.
-
-If the @code{Measure_grouping_engraver} is included
-in one of the display contexts, measure grouping signs will be
-created.  Such signs ease reading rhythmically complex modern music.
-In the example, the 9/8 measure is grouped in two different
-patterns using the two different methods, while the 5/8 measure
-is grouped according to the default setting in
-@file{scm/time-signature-settings.scm}:
-"
-  doctitle = "Conducting signs, measure grouping signs"
-}
-
-
-\score {
-  \new Voice \relative c'' {
-    \time 9/8
-    g8 g d d g g a( bes g) |
-    \set Timing.beatStructure = #'(2 2 2 3)
-    g8 g d d g g a( bes g) |
-    \time #'(4 5) 9/8
-    g8 g d d g g a( bes g) |
-    \time 5/8
-    a4. g4 |
-  }
-  \layout {
-    \context {
-      \Staff
-      \consists "Measure_grouping_engraver"
-    }
-  }
-}
diff --git a/Documentation/snippets/new/creating-a-delayed-turn.ly b/Documentation/snippets/new/creating-a-delayed-turn.ly
deleted file mode 100644 (file)
index 87223e9..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-\version "2.17.97"
-
-\header {
-  lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides"
-
-  texidoc = "
-Creating a delayed turn, where the lower note of the turn uses the
-accidental, requires several overrides.  The
-@code{outside-staff-priority} property must be set to @code{#f}, as
-otherwise this would take precedence over the @code{avoid-slur
-property}.  Changing the fractions @code{2/3} and @code{1/3} adjusts the
-horizontal position.
-"
-  doctitle = "Creating a delayed turn"
-}
-
-
-\relative c'' {
-  c2*2/3 ( s2*1/3\turn d4) r
-  <<
-    { c4.( d8) }
-    { s4 s\turn }
-  >>
-  \transpose c d \relative c'' <<
-    { c4.( d8) }
-    {
-      s4
-      \once \set suggestAccidentals = ##t
-      \once \override AccidentalSuggestion #'outside-staff-priority = ##f
-      \once \override AccidentalSuggestion #'avoid-slur = #'inside
-      \once \override AccidentalSuggestion #'font-size = #-3
-      \once \override AccidentalSuggestion #'script-priority = #-1
-      \single \hideNotes
-      b8-\turn \noBeam
-      s8
-    }
-  >>
-}
index 8e9a8c65b4f3a5719a4e33e771264cc524227552..40c2af9b289c60a5d9d20ef4ad62c66a77fd9bb5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.17.11"
+\version "2.19.0"
 
 \header {
   lsrtags = "pitches, real-music, really-cool, scheme-language"
@@ -17,7 +17,7 @@ Planets.
 rhythm =
 #(define-music-function (parser location p) (ly:pitch?)
    "Make the rhythm in Mars (the Planets) at the given pitch"
-  #{ \tuplet 3/2 { $p 8 $p $p } $p 4 $p $p 8 $p $p 4 #})
+  #{ \tuplet 3/2 { $p 8 8 8 } 4 4 8 8 4 #})
 
 \new Staff {
   \time 5/4
diff --git a/Documentation/snippets/new/creating-double-digit-fingerings.ly b/Documentation/snippets/new/creating-double-digit-fingerings.ly
deleted file mode 100644 (file)
index f9bf74b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-\version "2.17.15"
-
-\header {
-  lsrtags = "editorial-annotations, expressive-marks, scheme-language, staff-notation, tweaks-and-overrides"
-
-  texidoc = "
-Creating fingerings larger than 5 is possible.
-"
-  doctitle = "Creating double-digit fingerings"
-}
-
-\relative c' {
-  c1-10
-  c1-50
-  c1-36
-  c1-29
-}
diff --git a/Documentation/snippets/new/creating-real-parenthesized-dynamics.ly b/Documentation/snippets/new/creating-real-parenthesized-dynamics.ly
deleted file mode 100644 (file)
index bfdd1bd..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-\version "2.16.0"
-
-\header {
-  lsrtags = "expressive-marks, text, workaround"
-
-  texidoc = "
-Although the easiest way to add parentheses to a dynamic mark is to use
-a @code{\\markup} block, this method has a downside: the created
-objects will behave like text markups, and not like dynamics.
-
-However, it is possible to create a similar object using the equivalent
-Scheme code (as described in the Notation Reference), combined with the
-@code{make-dynamic-script} function. This way, the markup will be
-regarded as a dynamic, and therefore will remain compatible with
-commands such as @code{\\dynamicUp} or @code{\\dynamicDown}.
-
-
-
-"
-  doctitle = "Creating \"real\" parenthesized dynamics"
-}
-
-paren =
-#(define-event-function (parser location dyn) (ly:event?)
-   (make-dynamic-script
-    #{ \markup \concat {
-         \normal-text \italic \fontsize #2 (
-        \pad-x #0.2 #(ly:music-property dyn 'text)
-        \normal-text \italic \fontsize #2 )
-       }
-    #}))
-
-\relative c'' {
-  c4\paren\f c c \dynamicUp c\paren\p
-}
diff --git a/Documentation/snippets/new/cross-staff-stems.ly b/Documentation/snippets/new/cross-staff-stems.ly
deleted file mode 100644 (file)
index ed36504..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-\version "2.16.0"
-
-\header {
-  lsrtags = "staff-notation, tweaks-and-overrides, contexts-and-engravers"
-  texidoc = "
-This snippet shows the use of the @code{Span_stem_engraver}
-and @code{\crossStaff} to connect stems across staves automatically.
-The stem length need not be specified, as the variable distance
-between noteheads and staves is calculated automatically.
-"
-  doctitle = "Cross staff stems"
-}
-
-\layout {
-  \context {
-    \PianoStaff
-    \consists #Span_stem_engraver
-  }
-}
-
-{
-  \new PianoStaff <<
-    \new Staff {
-      <b d'>4 r d'16\> e'8. g8 r\!
-      e'8 f' g'4 e'2
-    }
-    \new Staff {
-      \clef bass
-      \voiceOne
-      \autoBeamOff
-      \crossStaff { <e g>4 e, g16 a8. c8} d
-      \autoBeamOn
-      g8 f g4 c2
-    }
-  >>
-}
diff --git a/Documentation/snippets/new/using-an-extra-voice-for-breaks.ly b/Documentation/snippets/new/using-an-extra-voice-for-breaks.ly
new file mode 100644 (file)
index 0000000..418b9d6
--- /dev/null
@@ -0,0 +1,41 @@
+\version "2.18.0"
+
+\header {
+  lsrtags = "specific-notation, workaround"
+
+  texidoc = "
+
+Often it is easier to manage line and page-breaking information by
+keeping it separate from the music by introducing an extra voice
+containing only skips along with the @code{\break},
+@code{pageBreak} and other layout information.
+
+This pattern becomes especially helpful when overriding
+@code{line-break-system-details} and the other useful but long
+properties of @code{NonMusicalPaperColumnGrob}.
+"
+  doctitle = "Using an extra voice for breaks"
+}
+
+music = \relative c'' { c4 c c c }
+
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    \new Staff <<
+      \new Voice {
+        s1 * 2 \break
+        s1 * 3 \break
+        s1 * 6 \break
+        s1 * 5 \break
+      }
+      \new Voice {
+        \repeat unfold 2 { \music }
+        \repeat unfold 3 { \music }
+        \repeat unfold 6 { \music }
+        \repeat unfold 5 { \music }
+      }
+    >>
+  }
+}
index 65030025a338a43f88da3343f790d1ed7cd74f49..059e9241d0b9b2a61ae08d1fe494d04a62545276 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -29,7 +29,6 @@ to the tuplet number or tuplet fraction.
     #(tuplet-number::append-note-wrapper
       (tuplet-number::non-default-tuplet-fraction-text 12 7) "8")
   \tuplet 3/2  { c4. c4. c4. c4. }
-
   \once \override TupletNumber.text =
     #(tuplet-number::append-note-wrapper
       tuplet-number::calc-denominator-text "4")
@@ -38,7 +37,6 @@ to the tuplet number or tuplet fraction.
     #(tuplet-number::append-note-wrapper
       tuplet-number::calc-fraction-text "4")
   \tuplet 3/2  { c8 c8 c8 c8 c8 c8 }
-
   \once \override TupletNumber.text =
     #(tuplet-number::fraction-with-notes "4." "8")
   \tuplet 3/2  { c4. c4. c4. c4. }
index 2ec7ebf8d9cd2ed53c42c1db9bf119875dc3e69d..1b294569e36e422ffde26d600bb93215525f6a25 100644 (file)
@@ -1,19 +1,21 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "vocal-music"
 
   texidoc = "
-The vertical spacing engine changed for version 2.14.  This can cause
-lyrics to be spaced differently.  It is possible to set properties for
-@code{Lyric} and @code{Staff} contexts to get the spacing engine to
-behave as it did in version 2.12.
+The vertical spacing engine changed since version 2.14.  This can cause
+lyrics to be spaced differently.
+
+It is possible to set properties for @code{Lyric} and @code{Staff}
+contexts to get the spacing engine to behave as it did in version 2.12.
+
 
 "
   doctitle = "Obtaining 2.12 lyrics spacing in newer versions"
index 1b1692a02b1d257b36fd1aa753527058f79bea3a..019a68bccaca5d648dd81f343b4c665d7bcbc098 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -17,47 +17,68 @@ This snippet demonstrates open-string harmonics
 } % begin verbatim
 
 openStringHarmonics = {
+  \textSpannerDown
+  \override TextSpanner.staff-padding = #3
+  \override TextSpanner.dash-fraction = #0.3
+  \override TextSpanner.dash-period = #1
+
   %first harmonic
-  \harmonicByFret #12 e,2\6_\markup{"1st harm."}
-  \harmonicByRatio #1/2 e,\6
+  \override TextSpanner.bound-details.left.text = \markup\small "1st harm. "
+  \harmonicByFret #12 e,2\6\startTextSpan
+  \harmonicByRatio #1/2 e,\6\stopTextSpan
+
   %second harmonic
-  \harmonicByFret #7 e,\6_\markup{"2nd harm. - - - -"}
+  \override TextSpanner.bound-details.left.text = \markup\small "2nd harm. "
+  \harmonicByFret #7 e,\6\startTextSpan
   \harmonicByRatio #1/3 e,\6
   \harmonicByFret #19 e,\6
-  \harmonicByRatio #2/3 e,\6
+  \harmonicByRatio #2/3 e,\6\stopTextSpan
   %\harmonicByFret #19 < e,\6 a,\5 d\4 >
   %\harmonicByRatio #2/3 < e,\6 a,\5 d\4 >
+
   %third harmonic
-  \harmonicByFret #5 e,\6_\markup{"3rd harm. - - - -"}
+  \override TextSpanner.bound-details.left.text = \markup\small "3rd harm. "
+  \harmonicByFret #5 e,\6\startTextSpan
   \harmonicByRatio #1/4 e,\6
   \harmonicByFret #24 e,\6
-  \harmonicByRatio #3/4 e,\6
+  \harmonicByRatio #3/4 e,\6\stopTextSpan
   \break
+
   %fourth harmonic
-  \harmonicByFret #4 e,\6_\markup{"4th harm. - - - - - - - - - - - - -"}
+  \override TextSpanner.bound-details.left.text = \markup\small "4th harm. "
+  \harmonicByFret #4 e,\6\startTextSpan
   \harmonicByRatio #1/5 e,\6
   \harmonicByFret #9 e,\6
   \harmonicByRatio #2/5 e,\6
   \harmonicByFret #16 e,\6
-  \harmonicByRatio #3/5 e,\6
+  \harmonicByRatio #3/5 e,\6\stopTextSpan
+
   %fifth harmonic
-  \harmonicByFret #3 e,\6_\markup{"5th harm."}
-  \harmonicByRatio #1/6 e,\6
+  \override TextSpanner.bound-details.left.text = \markup\small "5th harm. "
+  \harmonicByFret #3 e,\6\startTextSpan
+  \harmonicByRatio #1/6 e,\6\stopTextSpan
   \break
+
   %sixth harmonic
-  \harmonicByFret #2.7 e,\6_\markup{"6th harm."}
-  \harmonicByRatio #1/7 e,\6
+  \override TextSpanner.bound-details.left.text = \markup\small "6th harm. "
+  \harmonicByFret #2.7 e,\6\startTextSpan
+  \harmonicByRatio #1/7 e,\6\stopTextSpan
+
   %seventh harmonic
-  \harmonicByFret #2.3 e,\6_\markup{"7th harm."}
-  \harmonicByRatio #1/8 e,\6
+  \override TextSpanner.bound-details.left.text = \markup\small "7th harm. "
+  \harmonicByFret #2.3 e,\6\startTextSpan
+  \harmonicByRatio #1/8 e,\6\stopTextSpan
+
   %eighth harmonic
-  \harmonicByFret #2 e,\6_\markup{"8th harm."}
-  \harmonicByRatio #1/9 e,\6
+  \override TextSpanner.bound-details.left.text = \markup\small "8th harm. "
+  \harmonicByFret #2 e,\6\startTextSpan
+  \harmonicByRatio #1/9 e,\6\stopTextSpan
 }
 
 \score {
   <<
-    \new Staff {
+    \new Staff
+    \with { \omit StringNumber } {
       \new Voice {
         \clef "treble_8"
         \openStringHarmonics
index 61fed7dc465a7dfc67583ee8322cdb9e501029b5..6bc546d353850e09267f107b884fbdbdda645293 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, staff-notation, template, vocal-music"
@@ -19,7 +19,6 @@ music for transposing instruments at concert pitch.
   doctitle = "Orchestra choir and piano template"
 } % begin verbatim
 
-
 #(set-global-staff-size 17)
 \paper {
   indent = 3.0\cm  % space for instrumentName
index 6729c113af99e41a8ce569befcc3cb166d9d6d97..1cd8bdfe142e436a6d4bc9034e02324880e1f827 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, text"
@@ -19,7 +19,6 @@ override the text of the bracket, set @code{ottavation} after invoking
   doctitle = "Ottava text"
 } % begin verbatim
 
-
 {
   \ottava #1
   \set Staff.ottavation = #"8"
index 742e687c9300aabe9742f8932d7df54292332023..5e99a2ad33b14a207e2aff61eb6e6254fdca539d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, scheme-language, text, titles"
@@ -20,7 +20,6 @@ By putting the output of
   doctitle = "Outputting the version number"
 } % begin verbatim
 
-
 \score {
   \new Lyrics {
     \override Score.RehearsalMark.self-alignment-X = #LEFT
index e13154f9a02c59ba34641341bdc62f99f923e833..2d8707ca9190d841dd45da31a47892ceb489d24d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.25"
+\version "2.18.0"
 
 \header {
   lsrtags = "scheme-language, tweaks-and-overrides"
index 727f9d4191aa3c18be1fdeaa2e48360011f509b4..1f7db440efc5251ac2c24c60221a008d858672d3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "spacing"
@@ -17,7 +17,6 @@ in markups.
   doctitle = "Page label"
 } % begin verbatim
 
-
 #(set-default-paper-size "a6")
 
 #(define-markup-command (toc-line layout props label text)
index 691c47f77509aa213735d04f2f3b25c490172a7d..38e1386f780bf69c6d15a35b7a8b2a880a71c29d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -44,7 +44,6 @@ with @code{\\partcombine}, it will be necessary to use three calls to
   doctitle = "Partcombine and autoBeamOff"
 } % begin verbatim
 
-
 {
   %\set Staff.autoBeaming = ##f % turns off all autobeaming
   \partcombine
index aa6bcadb378cdef07dc3004d09c4faced594fe94..8692564ebf9ef2473c52d7c681d0e6931470b4b7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "repeats, tweaks-and-overrides"
@@ -17,7 +17,6 @@ the context property @code{repeatCountVisibility}.
   doctitle = "Percent repeat count visibility"
 } % begin verbatim
 
-
 \relative c'' {
   \set countPercentRepeats = ##t
   \set repeatCountVisibility = #(every-nth-repeat-count-visible 5)
index 508bad74620f6b5857be8228c4534f5eac2e3534..36180e5b7ed26594b97e6ae93faf377b78bc2117 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "repeats"
@@ -17,7 +17,6 @@ convenient property is switched, as shown in this example:
   doctitle = "Percent repeat counter"
 } % begin verbatim
 
-
 \relative c'' {
   \set countPercentRepeats = ##t
   \repeat percent 4 { c1 }
index fdea45c4dc5ee114af15afc22010ab10e1c339e9..e7d22ebef258a936002eaf55107a6dd8c9d6f3c1 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "percussion"
@@ -19,7 +19,6 @@ demonstrated in this example.
   doctitle = "Percussion beaters"
 } % begin verbatim
 
-
 stick = \markup {
   \with-dimensions #'(0 . 5) #'(0 . 5)
   \postscript #"
index c67206c3aa3335e753411134078c96aeb119c765..9046dfd7c030a136b820838c1daa083ada115eb3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, version-specific"
@@ -18,7 +18,6 @@ tuplets have to be beamed manually.
   doctitle = "Permitting line breaks within beamed tuplets"
 } % begin verbatim
 
-
 \layout {
   \context {
     \Voice
index 0b58a54b46acefd5174b1b359f691eaa8eee2abf..b2728932e448485ebd93e1b3f6c6b01530a16359 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "keyboards, really-simple, template"
@@ -16,7 +16,6 @@ Here is a simple piano staff with some notes.
   doctitle = "Piano template (simple)"
 } % begin verbatim
 
-
 upper = \relative c'' {
   \clef treble
   \key c \major
index ccf50e699b3ff87b6af3a175df37106ed3b0d046..d1f05af6dcf6d13257a4f06c86539221883519f3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "keyboards, really-simple, template, text"
@@ -17,7 +17,6 @@ centered between the staves of a piano staff.
   doctitle = "Piano template with centered lyrics"
 } % begin verbatim
 
-
 upper = \relative c'' {
   \clef treble
   \key c \major
index c44b64ba22debfde38b801c38ef62fffe7f8a682..57466a0a3e523ed00dc7102a4a2e710e89d25056 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "keyboards, really-simple, template, vocal-music"
@@ -17,7 +17,6 @@ with piano accompaniment underneath.
   doctitle = "Piano template with melody and lyrics"
 } % begin verbatim
 
-
 melody = \relative c'' {
   \clef treble
   \key c \major
index 51ac129a33ffb28e01af728f50a9bcf6cb26406c..bea1e6510e30c3b5f6eaf4feb59e2b9bae6a1cbd 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -18,7 +18,6 @@ in the following example. Note: you must use a chord construct
   doctitle = "Placement of right-hand fingerings"
 } % begin verbatim
 
-
 #(define RH rightHandFinger)
 
 \relative c {
index 1aa24cb2bbc9c2c8fc156f4561dc49f2a9e5b4bb..5a9c845a9bfc2d458e181b7bfe36c5eebef9f685 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -17,7 +17,6 @@ staff.
   doctitle = "Polyphony in tablature"
 } % begin verbatim
 
-
 upper = \relative c' {
   \time 12/8
   \key e \minor
index 68861a1dc30f69e376cdc3106967a13835a09844..6f3d878fad7cc8df662fae147a7026cff46d8548 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -17,7 +17,6 @@ and lower start positions independently.
   doctitle = "Positioning arpeggios"
 } % begin verbatim
 
-
 \relative c' {
   <c e g b>1\arpeggio
   \once \override Arpeggio.positions = #'(-5 . 0)
index 253b05ec0315cf1a17423e60aa0c9a90158b3213..8812a067af3c69618eea6a0c8f0c92f5efb667f8 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -20,18 +20,17 @@ involved.
   doctitle = "Positioning fingering indications precisely"
 } % begin verbatim
 
-
 \relative c' {
   \set fingeringOrientations = #'(left)
   <c-1 d-2 a'-5>4
-  <c-1 d-\tweak extra-offset #'(0 . 0.7)-2 a'-5>4
+  <c-1 d-\tweak extra-offset #'(0 . 0.2)-2 a'-5>4
   \set fingeringOrientations = #'(down)
   <c-1 d-2 a'-5>4
-  <c-1 d-\tweak extra-offset #'(-1.2 . 0)-2 a'-5>4
+  <c-\tweak extra-offset #'(0 . -1.1)-1 d-\tweak extra-offset #'(-1.2 . -1.8)-2 a'-5>4
   \set fingeringOrientations = #'(down right up)
-  <c-1 d-2 a'-5>4
+  <c-1 d-\tweak extra-offset #'(-0.3 . 0)-2 a'-5>4
   <c-1 d-\tweak extra-offset #'(-1 . 1.2)-2 a'-5>4
   \set fingeringOrientations = #'(up)
-  <c-1 d-2 a'-5>4
-  <c-1 d-\tweak extra-offset #'(-1.2 . 0)-2 a'-5>4
+  <c-1 d-\tweak extra-offset #'(0 . 1.1)-2 a'-\tweak extra-offset #'(0 . 1)-5>4
+  <c-1 d-\tweak extra-offset #'(-1.2 . 1.5)-2 a'-\tweak extra-offset #'(0 . 1.4)-5>4
 }
index d3c6e90dc9672e68ac62002d576ab7ac929fad50..c05f2592a688cb835265d006413b1347f7655bea 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -19,7 +19,6 @@ beaming for grace notes.
   doctitle = "Positioning grace note beams at the height of normal note beams"
 } % begin verbatim
 
-
 \relative c {
   f8[ e]
   \grace {
index 0bbbdf1624d6d015bd1a85d91ea4fa21c48abdb5..ab8bc4eef1a997eae28e3549ea827f1e7ec37ac9 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.28"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -19,7 +19,6 @@ the) graces are put left of the musical columns for the main notes.
   doctitle = "Positioning grace notes with floating space"
 } % begin verbatim
 
-
 \relative c'' {
   <<
     \override Score.SpacingSpanner.strict-grace-spacing = ##t
index b03aa21b892254452c834758aca73fd22e555fbb..9444c97a141d60e48c87480bc53fdf2424caac13 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "breaks, repeats, symbols-and-glyphs, workaround"
@@ -58,7 +58,7 @@ line.
     % Here begins the trickery!
     % \cadenzaOn will suppress the bar count and \stopStaff removes the staff lines.
     \cadenzaOn
-      \stopStaff
+    \stopStaff
         % Some examples of possible text-displays
 
         % text line-aligned
@@ -90,33 +90,33 @@ line.
           \bar ""
         }
         % Resume bar count and show staff lines again
-     \startStaff
-   \cadenzaOff
+    \startStaff
+    \cadenzaOff
 
-   % Should Coda be on new line?
-   % Coda NOT on new line: DON'T use \break
-   % Coda on new line: use \break
-   \break
+    % Should Coda be on new line?
+    % Coda NOT on new line: DON'T use \break
+    % Coda on new line: use \break
+    \break
 
-   % Show up, you clef and key!
-   \once \override Staff.KeySignature.break-visibility = #end-of-line-invisible
-   \once \override Staff.Clef.break-visibility = #end-of-line-invisible
+    % Show up, you clef and key!
+    \once \override Staff.KeySignature.break-visibility = #end-of-line-invisible
+    \once \override Staff.Clef.break-visibility = #end-of-line-invisible
 
-   % Set coda sign as rehearsal mark and adjust size and position
+    % Set coda sign as rehearsal mark and adjust size and position
 
-   % Put the coda sign ontop of the (treble-)clef dependend on coda's line-position
+    % Put the coda sign ontop of the (treble-)clef dependend on coda's line-position
 
-   % Coda NOT on new line, use this:
-   % \once \override Score.RehearsalMark.extra-offset = #'( -2 . 1.75 )
+    % Coda NOT on new line, use this:
+    % \once \override Score.RehearsalMark.extra-offset = #'( -2 . 1.75 )
 
-   % Coda on new line, use this:
-   \once \override Score.RehearsalMark.extra-offset = #'( -4.5 . 0 )
+    % Coda on new line, use this:
+    \once \override Score.RehearsalMark.extra-offset = #'( -5 . .5 )
 
-   \once \override Score.RehearsalMark.font-size = #5
-   \mark \markup { \musicglyph #"scripts.coda" }
+    \once \override Score.RehearsalMark.font-size = #5
+    \mark \markup { \musicglyph #"scripts.coda" }
 
-   % The coda
-   \repeat unfold 5 {
+    % The coda
+    \repeat unfold 6 {
       c4 c c c
     }
     \bar"|."
index 8348981a4e28bd116c24e5c7d178cb286e8741b7..8be61a74e2f652711b3ebbea8f7d21fa0d9a8373 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides"
@@ -17,7 +17,6 @@ set to false in order to be printed inside slurs.
   doctitle = "Positioning text markups inside slurs"
 } % begin verbatim
 
-
 \relative c'' {
   \override TextScript.avoid-slur = #'inside
   \override TextScript.outside-staff-priority = ##f
index b788c3cd102b03a62456b84335cd959362b4cde3..1ff350eec5b5e2cc79014818020258b3a347612d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "automatic-notation, pitches"
index db86ab6d76c4fc308334e93f522bfa312026398e..d39af579da94560150752b809586394d952f4be6 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -18,8 +18,6 @@ tuplet marking.  This can be overcome by setting @code{TupletBracket
   doctitle = "Preventing final mark from removing final tuplet"
 } % begin verbatim
 
-\markup \vspace #1 %% workaround for LSR-problem
-
 \new Staff {
    \set tupletFullLength = ##t
    \time 1/8
index 1d3f0504571635c869465162c9487ef1687e4df7..ab32f9212ff6533099e77ce47efd9807c9f4c0bb 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "automatic-notation, pitches"
@@ -19,7 +19,6 @@ property in the @code{Staff} context.
   doctitle = "Preventing natural signs from being printed when the key signature changes"
 } % begin verbatim
 
-
 \relative c' {
   \key d \major
   a4 b cis d
diff --git a/Documentation/snippets/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly b/Documentation/snippets/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
new file mode 100644 (file)
index 0000000..7a4bce3
--- /dev/null
@@ -0,0 +1,26 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
+
+\header {
+  lsrtags = "repeats, tweaks-and-overrides"
+
+  texidoc = "
+A @code{|:} bar line can be printed at the beginning of a piece.
+
+"
+  doctitle = "Printing a repeat sign at the beginning of a piece"
+} % begin verbatim
+
+\relative c'' {
+  \bar ".|:"
+  \repeat volta 2 {
+    c1
+    d1
+    d4 e f g
+  }
+}
index 75c335bdeafccb02eb52708dcd13f99ded706346..085ca0037a54e7c47248bd2fdbaac532dd9fdf22 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -18,7 +18,6 @@ measures except at the end of the line.
   doctitle = "Printing bar numbers at regular intervals"
 } % begin verbatim
 
-
 \relative c' {
   \override Score.BarNumber.break-visibility = #end-of-line-invisible
   \set Score.currentBarNumber = #11
index 63b65a8372c0cebfb01dad4faef1bb3cd679cbc0..19b7ee80bc9680a66ab3034085a07d6c40830773 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -16,7 +16,6 @@ Bar numbers can also be printed inside boxes or circles.
   doctitle = "Printing bar numbers inside boxes or circles"
 } % begin verbatim
 
-
 \relative c' {
   % Prevent bar numbers at the end of a line and permit them elsewhere
   \override Score.BarNumber.break-visibility = #end-of-line-invisible
index 634017285c1e2dab1d88cf3f153603e695e8a2d1..91d1e1b6c0e995cb88e4dba212afe2a2d9415fc7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -18,7 +18,6 @@ notation) by setting the @code{circled-tip} property of the
   doctitle = "Printing hairpins using al niente notation"
 } % begin verbatim
 
-
 \relative c'' {
   \override Hairpin.circled-tip = ##t
   c2\< c\!
index 89e2fbf87a829a4013d9c213e5ac3b0b8f41df66..385a7234b9bd038479c2240b5209c672da5d6b9a 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "text"
@@ -18,7 +18,6 @@ to align the right end of the mark with the bar line.
   doctitle = "Printing marks at the end of a line"
 } % begin verbatim
 
-
 \relative c'' {
   g2 c
   d,2 a'
index 556eea09969144530411bb93bc409310348b51ac..1d4a800d1d1b5ee660f408827ebf7080f603f8f3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "text"
@@ -17,7 +17,6 @@ they may also be printed on every staff.
   doctitle = "Printing marks on every staff"
 } % begin verbatim
 
-
 \score {
   <<
     \new Staff { c''1 \mark "molto" c'' }
index 4c563872b41e188604e7d401e58a765ee371e477..afaa08b59fec0bdb5739655e4112ac649f0b61d4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, rhythms, tweaks-and-overrides"
@@ -18,8 +18,10 @@ of @code{MetronomeMark} or @code{RehearsalMark} appropriately.
   doctitle = "Printing metronome and rehearsal marks below the staff"
 } % begin verbatim
 
-
-\layout { ragged-right = ##f }
+\layout {
+  indent = 0
+  ragged-right = ##f
+}
 
 {
   % Metronome marks below the staff
index 8d52ffd405e7541ac359a72687713096a16d5a55..c00d9740261c196b01ab7aecaf5390652c220534 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "contemporary-notation, percussion, real-music, really-cool, rhythms"
index 96b4d051ad3d0ebf89d9024d44471dbb833726f1..9e59ce53823569eafb5593dcd5ad7a9223e9881c 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "tweaks-and-overrides"
@@ -18,7 +18,6 @@ representation of the octave of the note.
   doctitle = "Printing note names with and without an octave marker"
 } % begin verbatim
 
-
 scale = \relative c' {
   a4 b c d
   e4 f g a
index 49c10706a01e841735b18b1956c6a07bb8579e1c..bd7ef3e689bab1c728d04ebb03f4f244f255d1de 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, text, workaround, world-music"
@@ -17,7 +17,6 @@ demonstrated here.
   doctitle = "Printing text from right to left"
 } % begin verbatim
 
-
 {
   b1^\markup {
     \line { i n g i r u m i m u s n o c t e }
index ae6321a6e2df6ef49545b30e190e2abfd0702b1b..7280abfdf787efd3a7e5803cd3e7002ea2e4acaa 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -20,6 +20,10 @@ must be inserted before the first note for this to work.
   doctitle = "Printing the bar number for the first measure"
 } % begin verbatim
 
+\layout {
+  indent = 0
+  ragged-right = ##t
+}
 
 \relative c' {
   \set Score.barNumberVisibility = #all-bar-numbers-visible
index b5d489208de5f016a92e5fb24cff0073dd78b2c1..5f9744918dba516652146ef08e5a170d408510a4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.28"
+\version "2.18.0"
 
 \header {
   lsrtags = "spacing, tweaks-and-overrides"
@@ -18,13 +18,12 @@ the note that occurs at the same time. This may cause collisions.
   doctitle = "Proportional strict notespacing"
 } % begin verbatim
 
-
 \relative c'' <<
   \override Score.SpacingSpanner.strict-note-spacing = ##t
   \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
   \new Staff {
     c8[ c \clef alto c c \grace { d16 } c8 c] c4
-    c2 \grace { c16 c16 } c2
+    c2 \grace { c16[ c16] } c2
   }
   \new Staff {
     c2 \tuplet 3/2 { c8 \clef bass cis,, c } c4
index 4edd6a59e58172bc594738f50c0cd2c85affb19e..d1676ce31811aab466d03d14a213434304bcbca1 100644 (file)
@@ -1,19 +1,19 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "staff-notation, text, vocal-music"
 
   texidoc = "
 Lyrics can be moved vertically to place them inside the staff.  The
-lyrics are moved with @code{\\override LyricText.extra-offset = #'(0
-. dy)} and there are similar commands to move the extenders and
-hyphens.  The offset needed is established with trial and error.
+lyrics are moved with @code{\\override LyricText.extra-offset = #'(0 .
+dy)} and there are similar commands to move the extenders and hyphens.
+The offset needed is established with trial and error.
 
 "
   doctitle = "Putting lyrics inside the staff"
index b83496137443d94decf2e74e1b7d96b8abd9715b..cbc1ce7534b4b55b32c934422e4206e89403ccf5 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "staff-notation"
@@ -25,7 +25,6 @@ the Internals Reference.
   doctitle = "Quoting another voice"
 } % begin verbatim
 
-
 quoteMe = \relative c' {
   fis4 r16 a8.-> b4\ff c
 }
index a5cb083c2e58ec524790e87afad4cd6f43a093d3..85a038f55fc2ea96629df0f0546b4415bfa9d516 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "winds"
index 10ff50af8ad51865a4f0695d6db23cca38c545cc..55e6503334b08e85ae0348787dc97e0b72f26562 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, rhythms"
@@ -17,11 +17,12 @@ Bar numbers can be removed entirely by removing the
   doctitle = "Removing bar numbers from a score"
 } % begin verbatim
 
-
 \layout {
   \context {
     \Score
-    \remove "Bar_number_engraver"
+    \omit BarNumber
+    % or:
+    %\remove "Bar_number_engraver"
   }
 }
 
diff --git a/Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly b/Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly
new file mode 100644 (file)
index 0000000..0d83273
--- /dev/null
@@ -0,0 +1,44 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
+
+\header {
+  lsrtags = "keyboards, staff-notation, tweaks-and-overrides"
+
+  texidoc = "
+This snippet removes the first brace from a @code{PianoStaff} or a
+@code{GrandStaff}. It may be useful when cutting and pasting the
+engraved image into existing music.
+
+It uses @code{\\alterBroken}.
+
+"
+  doctitle = "Removing brace on first line of piano score"
+} % begin verbatim
+% => http://lilypond.1069038.n5.nabble.com/Getting-rid-of-initial-brace-on-piano-score-td161158.html
+someMusic =  {
+  \once \override Staff.Clef.stencil = ##f
+  \once \override Staff.TimeSignature.stencil = ##f
+  \repeat unfold 3 c1 \break
+  \repeat unfold 5 c1 \break
+  \repeat unfold 5 c1
+}
+
+\score {
+  \new PianoStaff
+  <<
+    \new Staff = "right" \relative c'' \someMusic
+    \new Staff = "left" \relative c' { \clef F \someMusic }
+  >>
+  \layout {
+    indent=75
+    \context {
+      \PianoStaff
+      \alterBroken transparent #'(#t) SystemStartBrace
+    }
+  }
+}
index fd0fdce66220359594db3d42c0b52dd51d44c54e..07982c9ba4361e4e969249d697d247ff639b1967 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -18,7 +18,6 @@ a staff-by-staff basis.
   doctitle = "Removing connecting bar lines on StaffGroup PianoStaff or GrandStaff"
 } % begin verbatim
 
-
 \relative c' {
   \new StaffGroup <<
     \new Staff {
index 6cad882e87f416581562e381d62dd9074dfcc4cd..ed8e432f8b357bfdff86f451c2aa23d636b923d2 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "breaks, staff-notation, tweaks-and-overrides"
@@ -25,7 +25,6 @@ written.
   doctitle = "Removing the first empty line"
 } % begin verbatim
 
-
 \layout {
   \context {
     \Staff \RemoveEmptyStaves
index fa562f980a808c3124ebf197383683cbe5251a48..b4f73273e783f0b66f7f179e48fda8e465716a86 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.5"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
@@ -16,6 +16,9 @@ Repeats headword
   doctitle = "Repeats headword"
 } % begin verbatim
 
+%% http://lsr.di.unimi.it/LSR/Item?id=821
+%% see also http://www.lilypond.org/doc/v2.18/Documentation/notation/repeats
+
 % Beethoven, Op. 57
 % Piano sonata 23 - Dem Grafen Franz von Brunswick Gewidmet
 % Movt II, Andante con moto
index d3fa46c992d25b0266a26c630f09713e82d5fddc..3b55be22a85c818a8d458590c6bf421500ffbb2c 100644 (file)
@@ -8,6 +8,7 @@ numbering-groups-of-measures.ly
 percent-repeat-count-visibility.ly
 percent-repeat-counter.ly
 positioning-segno-and-coda-with-line-break.ly
+printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
 setting-the-double-repeat-default-for-volte.ly
 shortening-volta-brackets.ly
 volta-below-chords.ly
index 789f0b6d346682b3c5591e271ca9121955aee9f7..9da37cb60a9d82e375ec45a84469c54fa3b74871 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "ancient-notation, rhythms, symbols-and-glyphs, tweaks-and-overrides"
@@ -19,7 +19,6 @@ Rests may be used in various styles.
   doctitle = "Rest styles"
 } % begin verbatim
 
-
 \layout {
   indent = 0
   \context {
index f8581769ed46774b8eb0690e4de4f9a42377d000..bf28390f9f6acf4c29ed9aed86f057b951ff7b2c 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, version-specific"
@@ -18,7 +18,6 @@ new beaming endings:
   doctitle = "Reverting default beam endings"
 } % begin verbatim
 
-
 \relative c'' {
   \time 12/8
 
index 6d47071c7979cb17ab9b530e0e9089ca05c5e2d2..4e140b330d1dba7ab741a041ffbd4739270111b3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -26,7 +26,6 @@ the appropriate duration).
   doctitle = "Rhythmic slashes"
 } % begin verbatim
 
-
 % Macro to print single slash
 rs = {
   \once \override Rest.stencil = #ly:percent-repeat-item-interface::beat-slash
index 5bf703a5d0f5c6a93d0e451abaaf00c02804c070..5a53ef2ed5a0dffdeb08c939800041b7b28741db 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.2"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
@@ -16,6 +16,9 @@ Rhythms headword
   doctitle = "Rhythms headword"
 } % begin verbatim
 
+%% http://lsr.di.unimi.it/LSR/Item?id=822
+%% see also http://lilypond.org/doc/v2.18/Documentation/notation/rhythms
+
 % Beethoven, Op. 81a
 % Piano sonata 26 - Das Lebewohl
 % Movt II - Abwesenheit
@@ -82,7 +85,7 @@ Rhythms headword
       c'''32 ) \!
       g''8 (
       ~
-      32 [
+      g''32 [
       a''64
       g''64 ) ]
 
@@ -215,5 +218,4 @@ Rhythms headword
       <g e>32
       c'32
    }
-
 >>
index 99c7a93f8000f0a2fccd44eae45bb0232e44983d..358e8accfb34b1638d63a1a4e118fcef90681d09 100644 (file)
@@ -60,6 +60,8 @@ stemlets.ly
 strict-beat-beaming.ly
 subdividing-beams.ly
 three-sided-box.ly
+time-signature-in-parentheses---method-3.ly
+time-signature-in-parentheses.ly
 time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly
 tweaking-grace-layout-within-music.ly
 using-alternative-flag-styles.ly
index 8df49621015116ca335a7c364461d29d1538e22e..001e5ed5872a3f326d73461db8eea95dc21101c7 100644 (file)
@@ -1,5 +1,5 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
@@ -16,7 +16,6 @@ SATB choir template (four staves)
   doctitle = "SATB Choir template - four staves"
 } % begin verbatim
 
-
 global = {
   \key c \major
   \time 4/4
index a7bc17c61bd3fe216ce7afa6be1775acbc4fd7cf..848256fe6647e55b7b157d5be4e6b27e7c0eb312 100644 (file)
@@ -6,6 +6,7 @@ changing--flageolet-mark-size.ly
 changing-properties-for-individual-grobs.ly
 creating-a-sequence-of-notes-on-various-pitches.ly
 creating-double-digit-fingerings.ly
+customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly
 displaying-grob-ancestry.ly
 drawing-boxes-around-grobs.ly
 drawing-circles-around-various-objects.ly
index 86b9fba5e587f59443e9817cc0581687c66e99dd..36d3fc17718bdc3e9858675d4d2b324e232ddcb1 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
index be7a8967d80d9988484487a719c2a8cb31b7af87..044bd68e61879dd6c650fbfe4785b747a30c69e5 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, tweaks-and-overrides"
index 067fbbfd2c78f72e5c0cf832808e6648fa55e80e..b0f930c87c9f437cd2f59846bfaf1affbee0370e 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -18,7 +18,6 @@ by overriding the @code{'to-barline} property.
   doctitle = "Setting hairpin behavior at bar lines"
 } % begin verbatim
 
-
 \relative c'' {
   e4\< e2.
   e1\!
index d7d4d2cda299b77f18427dcc7252a53c57214d35..cbe0712c614b8298c662ddc9cdf9130f6ade466f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "paper-and-layout, staff-notation, tweaks-and-overrides"
@@ -18,7 +18,6 @@ default.
   doctitle = "Setting system separators"
 } % begin verbatim
 
-
 \paper {
   system-separator-markup = \slashSeparator
 }
index c469c52e646b35898387fe5941ebf5d6772f6144..40ce83508c0d421efbf501dec448ebc87ab00062 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.5"
+\version "2.18.0"
 
 \header {
   lsrtags = "repeats"
index dea361c49cbfdff667664b826d236bf709277c9f..56430babee7021b6e5e6893f0789a74b1a292b25 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -17,9 +17,9 @@ If hairpins are too short, they can be lengthened by modifying the
   doctitle = "Setting the minimum length of hairpins"
 } % begin verbatim
 
-
 \relative c'' {
   c4\< c\! d\> e\!
+  << f1 { s4 s\< s\> s\! } >>
   \override Hairpin.minimum-length = #5
   << f1 { s4 s\< s\> s\! } >>
 }
index 611057d4cbdf18d0a78a9eb968202074fca44fe4..f1aa919411a09b60ce6a5035a0e5fa6c4eabcc7a 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "repeats"
@@ -19,7 +19,6 @@ lasts one measure, which is a duration of 3/4.
   doctitle = "Shortening volta brackets"
 } % begin verbatim
 
-
 \relative c'' {
   \time 3/4
   c4 c c
index cc3542bd4f6af7cf28107eb87bbfe40c935248e4..e946df6b6d703855df191403b4bffaec40398900 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords"
@@ -17,10 +17,10 @@ chord changes.
   doctitle = "Showing chords at changes"
 } % begin verbatim
 
-
 harmonies = \chordmode {
   c1:m c:m \break c:m c:m d
 }
+
 <<
   \new ChordNames {
     \set chordChanges = ##t
index ec67a11657c1a544fa30016fc2c8411984186ef9..2277eb5f361a5af3c85fdd68b6b59716bea6a034 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides, version-specific"
@@ -28,7 +28,6 @@ The direction will always be above, but one can tweak this via a
   doctitle = "Showing the same articulation above and below a note or chord"
 } % begin verbatim
 
-
 % The same as \flageolet, just a little smaller
 smallFlageolet =
 #(let ((m (make-articulation "flageolet")))
index b6f3b443c8b6b2c1c4c69a25ab38e359b01723ac..5a3c190a9541a5d6032dfb1ae0c9e595cab17377 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords"
@@ -16,7 +16,6 @@ When put together, chord names, a melody, and lyrics form a lead sheet:
   doctitle = "Simple lead sheet"
 } % begin verbatim
 
-
 <<
   \chords { c2 g:sus4 f e }
   \relative c'' {
index 3afcc2a30ffc31804ac24d7dc12b2b21623bf672..b8462ffabaf850ec8072e68fe96d74fa2d3ac2c5 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.2"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
@@ -16,6 +16,9 @@ Simultaneous notes
   doctitle = "Simultaneous headword"
 } % begin verbatim
 
+%% http://lsr.di.unimi.it/LSR/Item?id=825
+%% see also http://lilypond.org/doc/v2.18/Documentation/notation/simultaneous-notes
+
 \include "english.ly"
 
 % NR 1.5 Simultaneous notes
@@ -67,10 +70,10 @@ trillFlat =
       \trillFlat
       af''4.~ \startTrillSpan
       af''8.~ |
-      4.~ 8.~ |
+      af''4.~ af''8.~ |
       \oneVoice
       <af'' d''>8.[ a''8. \p \< bf''8.]~ |
-      8.[ b''8. c'''8.]~
+      bf''8.[ b''8. c'''8.]~
       \bar "||"
       \key ef \major
       c'''8.[ cs'''8.] \f \stopTrillSpan
@@ -83,17 +86,17 @@ trillFlat =
       \override Voice.TrillSpanner.direction = #DOWN
       d''4.~ \f \startTrillSpan
       d''8.~ |
-      4.~ 8.~ |
-      8. \stopTrillSpan
+      d''4.~ d''8.~ |
+      d''8. \stopTrillSpan
       \trillFlat
       d''4.~ \startTrillSpan |
-      d''4.~ 8.~ |
-      4.~ 8.~ |
-      4.~ 8.~ \stopTrillSpan |
+      d''4.~ d''8.~ |
+      d''4.~ d''8.~ |
+      d''4.~ d''8.~ \stopTrillSpan |
       \trillFlat
       d''4.~ \startTrillSpan
       d''8. ~ |
-      4.~ 8.~ |
+      d''4.~ d''8.~ |
       \once \override NoteColumn.ignore-collision = ##t
       \hideNotes
       d''8. \stopTrillSpan
@@ -126,8 +129,8 @@ trillFlat =
         \override Voice.TrillSpanner.direction = #UP
         f'4.~ \startTrillSpan
         f'8.~ |
-        4.~ 8.~ |
-        8. \stopTrillSpan
+        f'4.~ f'8.~ |
+        f'8. \stopTrillSpan
       }
       \new Voice {
         \voiceTwo
index f4b72259b99a628b92099bf281b95e4b81e7ed53..3cdf85b1defd139806831d8bc005d340df469ea6 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, really-simple, template, vocal-music"
@@ -17,7 +17,6 @@ chords.
   doctitle = "Single staff template with notes lyrics and chords"
 } % begin verbatim
 
-
 melody = \relative c' {
   \clef treble
   \key c \major
index 4cd409c667a791859fe2571f4cb7ad8d16d8fa53..64357e06b971d830d03916eda132cb226975c4c4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, template, vocal-music"
@@ -17,7 +17,6 @@ fret diagrams.
   doctitle = "Single staff template with notes lyrics chords and frets"
 } % begin verbatim
 
-
 verseI = \lyricmode {
   \set stanza = #"1."
   This is the first verse
index 4ba723b5160d6da198b40b6157cf5c3f565f8634..d63414442e63b0c077e10f735de97dcda18b28d3 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.2"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, really-simple, template"
@@ -17,14 +17,13 @@ Want to prepare a lead sheet with a melody and chords? Look no further!
   doctitle = "Single staff template with notes and chords"
 } % begin verbatim
 
-
 melody = \relative c' {
   \clef treble
   \key c \major
   \time 4/4
 
   f4 e8[ c] d4 g
-  a2 ~ 2
+  a2 ~ a
 }
 
 harmonies = \chordmode {
index 244baef40143e8ed1f606dd019dca7e2006e527d..8750bbc794fe9fec60f643cab50829fa10d20e76 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, template, vocal-music"
@@ -19,7 +19,6 @@ beaming, change or comment out the relevant line.
   doctitle = "Single staff template with notes and lyrics"
 } % begin verbatim
 
-
 melody = \relative c' {
   \clef treble
   \key c \major
index 40bbd12cb0d54f6844fa808581ced930695530cf..9eed6bf22030fa69447ea599321f8b08e0dc8195 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, template"
@@ -18,7 +18,6 @@ add notes, and you're finished!
   doctitle = "Single staff template with only notes"
 } % begin verbatim
 
-
 melody = \relative c' {
   \clef treble
   \key c \major
index e9e25e9756da85e1d29c5a99819004fc93e01cad..90e03b195c16db157c3270ece4d7287844476cc9 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, rhythms, vocal-music"
@@ -18,7 +18,6 @@ or underscores (@code{_}) are available.So for example:
   doctitle = "Skips in lyric mode (2)"
 } % begin verbatim
 
-
 <<
   \relative c'' { a4 b c d }
   \new Lyrics \lyricmode { a4 "" _ gap }
index 6cea02f2556930bd89c7672b895e40ac2c988dfd..eb74ba39c095e65da6b661d9e78613f9f2b87aec 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, rhythms, vocal-music"
@@ -18,7 +18,6 @@ mode. In other situations, for example, when entering lyrics, using the
   doctitle = "Skips in lyric mode"
 } % begin verbatim
 
-
 <<
   \relative c'' { a1 | a }
   \new Lyrics \lyricmode { \skip 1 bla1 }
index 760135cda9a0180aa34d08e3dbebf7353b8156f8..d1068720a8c3e2e23806a6e9eebd8be98128ee23 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -42,6 +42,9 @@ slides = {
       \override Glissando.springs-and-rods =
                           #ly:spanner::set-spacing-rods
       \override Glissando.thickness = #2
+      \omit StringNumber
+      % or:
+      %\override StringNumber.stencil = ##f
     }
   }
 }
index 9e3e51fd1a763a7221579b1d6c73d5b36dd3adc0..82694c9b536db14a3fe16ac659cd354ce5fd35ff 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, unfretted-strings"
index 218c52f2b9094d5eb5fd35e5a6560f5abe561188..dd4195d73beb843c13df8370c3163c0c07971f0f 100644 (file)
@@ -1,5 +1,5 @@
 accordion-discant-symbols.ly
-accordion-registers.ly
+accordion-register-symbols.ly
 adding-bar-lines-to-chordnames-context.ly
 adding-drum-parts.ly
 adding-fingerings-to-tablatures.ly
@@ -27,4 +27,5 @@ score-for-diatonic-accordion.ly
 time-signature-in-parentheses---method-3.ly
 time-signature-in-parentheses.ly
 transcription-of-ancient-music-with-incipit.ly
+using-an-extra-voice-for-breaks.ly
 woodwind-diagrams-listing.ly
index 0a2df88f19cde82cc0f3955837f284851c95f959..40af5a2ff7dd2d6821833566e96a41fd103aadba 100644 (file)
@@ -12,6 +12,7 @@ creating-blank-staves.ly
 creating-double-digit-fingerings.ly
 cross-staff-stems.ly
 display-bracket-with-only-one-staff-in-a-system.ly
+extending-a-trillspanner.ly
 extending-glissandi-across-repeats.ly
 forcing-measure-width-to-adapt-to-metronomemarks-width.ly
 glissandi-can-skip-grobs.ly
@@ -31,6 +32,7 @@ orchestra,-choir-and-piano-template.ly
 putting-lyrics-inside-the-staff.ly
 quoting-another-voice-with-transposition.ly
 quoting-another-voice.ly
+removing-brace-on-first-line-of-piano-score.ly
 removing-the-first-empty-line.ly
 setting-system-separators.ly
 tick-bar-lines.ly
index dd0005c4326e9cf87e617234d6050c120c3212f0..a5371fab3fbe7adc23912102dcda6533fc2d29bb 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "text"
index b5960df4974eb6434ea8de750ac3d86a0a36c8b1..d8636cf383f169506928a52cb3b516daf31be97f 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -18,7 +18,6 @@ example.
   doctitle = "Stem and beam behavior in tablature"
 } % begin verbatim
 
-
 \new TabStaff {
   \relative c {
     \tabFullNotation
index 0f1ea5e818083f822761679b8294ce1b7139aaec..da3b38203202b07e18fbc40892a7df91758722c8 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "contemporary-notation, rhythms"
@@ -30,7 +30,6 @@ the different notations.
   doctitle = "Stemlets"
 } % begin verbatim
 
-
 \paper { ragged-right = ##f }
 
 {
index af78c3895ddcf242d4cd366c7222b5b129f9b12c..e435da48779125f8785f9fdcb2bb4cdfd6b76035 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, template, unfretted-strings"
@@ -17,7 +17,6 @@ This template demonstrates a simple string quartet. It also uses a
   doctitle = "String quartet template (simple)"
 } % begin verbatim
 
-
 global= {
   \time 4/4
   \key c \major
index 66dc41a86699d1c0939501a7744b277632748d59..7efde9f3a74876fb837946b8c8558646fdb3e4d4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "preparing-parts, template, unfretted-strings"
@@ -28,7 +28,6 @@ Do not forget to remove specified comments when using separate files!
   doctitle = "String quartet template with separate parts"
 } % begin verbatim
 
-
 %%%%% piece.ly
 %%%%% (This is the global definitions file)
 
index e7080e65a5898334dc02a278699e15a53336c13d..9b94dd36191db6432b93f73865cc612c079286cd 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
index 0ecae8edd5560507be14ac459186822006d4886e..726b2978d3be7bd57c6948c9d035b152036b45f4 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "simultaneous-notes, tweaks-and-overrides"
@@ -24,7 +24,6 @@ used with care.
   doctitle = "Suppressing warnings for clashing note columns"
 } % begin verbatim
 
-
 ignore = \override NoteColumn.ignore-collision = ##t
 
 \relative c' {
index 920987ba49c490db54ba9b7d20c992fda21accda..e8b00227c81c1c0db19733b8772c486cd8b29564 100644 (file)
@@ -1,5 +1,5 @@
 accordion-discant-symbols.ly
-accordion-registers.ly
+accordion-register-symbols.ly
 adding-indicators-to-staves-which-get-split-after-a-break.ly
 ancient-fonts.ly
 breathing-signs.ly
@@ -7,6 +7,7 @@ broken-crescendo-hairpin.ly
 caesura-railtracks-with-fermata.ly
 changing--flageolet-mark-size.ly
 custodes.ly
+customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly
 fingering-symbols-for-wind-instruments.ly
 how-to-put-ties-between-syllables-in-lyrics.ly
 positioning-segno-and-coda-with-line-break.ly
index f0e653afb06d025c075792653374de1e4e91de80..6cef9e842f0c91521b5404fe726f664b8c2dc61a 100644 (file)
@@ -1,3 +1,4 @@
 combining-two-parts-on-the-same-staff.ly
 entering-several-tuplets-using-only-one--times-command.ly
+extending-a-trillspanner.ly
 vertical-aligned-staffgroups-without-connecting-systemstartbar.ly
index 51542ae679fa62282d403480beece1ee80f85efb..d96f34540fd7fe53965f45ef064eec35045cf332 100644 (file)
@@ -1,16 +1,16 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "paper-and-layout"
 
   texidoc = "
-A table of contents is included using @code{\\markuplist
+A table of contents is included using @code{\\markuplines
 \\table-of-contents}.  The TOC items are added with the
 @code{\\tocItem} command.
 
@@ -18,7 +18,6 @@ A table of contents is included using @code{\\markuplist
   doctitle = "Table of contents"
 } % begin verbatim
 
-
 #(set-default-paper-size "a6")
 
 \book {
index 0bcd3763efa7bbb4885d5a2031b11a1fc70c536d..29849eb3a3ae66cf76f7c9577c3043049bb9acfa 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.28"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
@@ -16,6 +16,9 @@ Text headword
   doctitle = "Text headword"
 } % begin verbatim
 
+%% http://lsr.di.unimi.it/LSR/Item?id=829
+%% see also http://lilypond.org/doc/v2.18/Documentation/notation/text
+
 \include "english.ly"
 
 % NR 1.8 Text
@@ -96,7 +99,7 @@ Text headword
     c''32
     df''32
     ef''32
-    \acciaccatura { df'' ef''  }
+    \acciaccatura { df''[ ef'' ] }
     f''8
     ef''16
     df''16
index 2bde359a6c951e7b3232a8e71fe864a0c842df36..3e1080dcb73bf4bd0318243f8e98fc7f6890f46d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, scheme-language, text"
@@ -17,7 +17,6 @@ around some text (or other markup).
   doctitle = "Three-sided box"
 } % begin verbatim
 
-
 % New command to add a three sided box, with sides north, west and south
 % Based on the box-stencil command defined in scm/stencil.scm
 % Note that ";;" is used to comment a line in Scheme
index 661ee65ee287d7961943c728d9a8a18f027744fa..decd0f64ad3dbf66dee03c9071f1760b0b89032b 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "staff-notation"
@@ -17,7 +17,6 @@ only for coordination and is not meant to imply any rhythmic stress.
   doctitle = "Tick bar lines"
 } % begin verbatim
 
-
 \relative c' {
   \set Score.defaultBarType = #"'"
   c4 d e f
index 5eebaacc095b7eb687dc1da3a415c1d656040409..32d888be0ea847a5713fc9f0d0016e9cd415de46 100644 (file)
@@ -1,13 +1,13 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
-  lsrtags = "specific-notation, staff-notation, tweaks-and-overrides"
+  lsrtags = "rhythms, specific-notation, staff-notation, tweaks-and-overrides"
 
   texidoc = "
 Another way to put the time signature in parenthesis
@@ -16,7 +16,6 @@ Another way to put the time signature in parenthesis
   doctitle = "Time signature in parentheses - method 3"
 } % begin verbatim
 
-
 \relative c'' {
   \override Staff.TimeSignature.stencil = #(lambda (grob)
     (parenthesize-stencil (ly:time-signature::print grob) 0.1 0.4 0.4 0.1 ))
index 257034d9599675551e7bd4a5d142a1ecda9c392d..3461b568e4471c8c41dec21546313a6269248781 100644 (file)
@@ -1,13 +1,13 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
-  lsrtags = "specific-notation, staff-notation, tweaks-and-overrides"
+  lsrtags = "rhythms, specific-notation, staff-notation, tweaks-and-overrides"
 
   texidoc = "
 The time signature can be enclosed within parentheses.
@@ -16,7 +16,6 @@ The time signature can be enclosed within parentheses.
   doctitle = "Time signature in parentheses"
 } % begin verbatim
 
-
 \relative c'' {
   \override Staff.TimeSignature.stencil = #(lambda (grob)
     (bracketify-stencil (ly:time-signature::print grob) Y 0.1 0.2 0.1))
index bee629dc693d0b3daddfaf3ed1190da66668485b..f7173e35a82300b70bdd520af7159c433a753c20 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -14,15 +14,14 @@ Sometimes, a time signature should not print the whole fraction (e.g.
 7/4), but only the numerator (7 in this case). This can be easily done
 by using @code{\\override Staff.TimeSignature.style = #'single-digit}
 to change the style permanently. By using @code{\\revert
-Staff.TimeSignature.style}, this setting can be reversed. To apply
-the single-digit style to only one time signature, use the
+Staff.TimeSignature.style}, this setting can be reversed. To apply the
+single-digit style to only one time signature, use the
 @code{\\override} command and prefix it with a @code{\\once}.
 
 "
   doctitle = "Time signature printing only the numerator as a number (instead of the fraction)"
 } % begin verbatim
 
-
 \relative c'' {
   \time 3/4
   c4 c c
index cebe3d2876ecbe555998b7ea0f2c97af67a14426..28ae9b4451851c1f7fb53620aed204c127bc603d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "ancient-notation, specific-notation, tweaks-and-overrides, workaround"
@@ -20,29 +20,80 @@ main lyrics.
   doctitle = "Transcription of Ancient music with incipit"
 } % begin verbatim
 
+incipit =
+#(define-music-function (parser location incipit-music) (ly:music?)
+  #{
+    \once \override Staff.InstrumentName.self-alignment-X = #RIGHT
+    \once \override Staff.InstrumentName.self-alignment-Y = ##f
+    \once \override Staff.InstrumentName.padding = #0.3
+    \once \override Staff.InstrumentName.stencil =
+      #(lambda (grob)
+         (let* ((instrument-name (ly:grob-property grob 'long-text)))
+          (set! (ly:grob-property grob 'long-text)
+           #{ \markup
+              \score
+              {
+                { \context MensuralStaff \with {
+                  instrumentName = #instrument-name
+                } $incipit-music
+              }
+              \layout { $(ly:grob-layout grob)
+                line-width = \indent
+                indent =
+                 % primitive-eval is probably easiest for
+                 % escaping lexical closure and evaluating
+                 % everything respective to (current-module).
+                   #(primitive-eval
+                     '(or (false-if-exception (- indent incipit-width))
+                        (* 0.5 indent)))
+                ragged-right = ##f
+                ragged-last = ##f
+                system-count = #1 }
+              }
+          #})
+           (system-start-text::print grob)))
+  #})
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
 
 global = {
   \set Score.skipBars = ##t
   \key g \major
   \time 4/4
-  %make the staff lines invisible on staves
-  \hide Staff.BarLine
-  \skip 1*8 % the actual music
+
+  % the actual music
+  \skip 1*8
+
   % let finis bar go through all staves
   \override Staff.BarLine.transparent = ##f
+
   % finis bar
   \bar "|."
 }
 
+discantusIncipit = <<
+  \new MensuralVoice = "discantusIncipit" <<
+    \repeat unfold 9 { s1 \noBreak }
+    {
+      \clef "neomensural-c1"
+      \key f \major
+      \time 2/2
+      c''1.
+    }
+  >>
+  \new Lyrics \lyricsto discantusIncipit { IV- }
+>>
+
 discantusNotes = {
   \transpose c' c'' {
-    \clef treble
+    \clef "treble"
     d'2. d'4 |
     b e' d'2 |
     c'4 e'4.( d'8 c' b |
     a4) b a2 |
     b4.( c'8 d'4) c'4 |
-    \once \hide NoteHead c'1 |
+    \once \hide NoteHead
+    c'1 |
     b\breve |
   }
 }
@@ -57,53 +108,103 @@ discantusLyrics = \lyricmode {
   -us. |
 }
 
+altusIncipit = <<
+  \new MensuralVoice = "altusIncipit" <<
+    \repeat unfold 9 { s1 \noBreak }
+    {
+      \clef "neomensural-c3"
+      \key f \major
+      \time 2/2
+      r1 f'1.
+    }
+  >>
+  \new Lyrics \lyricsto altusIncipit { IV- }
+>>
+
 altusNotes = {
   \transpose c' c'' {
-    \clef treble
-    r2 g2. e4 fis g | % two bars
+    \clef "treble"
+    % two measures
+    r2 g2. e4 fis g |
     a2 g4 e |
     fis g4.( fis16 e fis4) |
     g1 |
-    \once \hide NoteHead g1 |
+    \once \hide NoteHead
+    g1 |
     g\breve |
   }
 }
 
 altusLyrics = \lyricmode {
-  Ju -- bi -- la -- te | % two bars
+  % two measures
+  Ju -- bi -- la -- te |
   De -- o, om -- |
   nis ter -- ra, |
   "..." |
   -us. |
 }
 
+tenorIncipit = <<
+  \new MensuralVoice = "tenorIncipit" <<
+    \repeat unfold 9 { s1 \noBreak }
+    {
+      \clef "neomensural-c4"
+      \key f \major
+      \time 2/2
+      r\longa
+      r\breve
+      r1 c'1.
+    }
+  >>
+  \new Lyrics \lyricsto tenorIncipit { IV- }
+>>
+
 tenorNotes = {
   \transpose c' c' {
     \clef "treble_8"
     R1 |
     R1 |
     R1 |
-    r2 d'2. d'4 b e' | % two bars
-    \once \hide NoteHead e'1 |
+    % two measures
+    r2 d'2. d'4 b e' |
+    \once \hide NoteHead
+    e'1 |
     d'\breve |
   }
 }
 
 tenorLyrics = \lyricmode {
-  Ju -- bi -- la -- te | % two bars
+  % two measures
+  Ju -- bi -- la -- te |
   "..." |
   -us.
 }
 
+bassusIncipit = <<
+  \new MensuralVoice = "bassusIncipit" <<
+    \repeat unfold 9 { s1 \noBreak }
+    {
+      \clef "bass"
+      \key f \major
+      \time 2/2
+      %% incipit
+      r\maxima
+      f1.
+    }
+  >>
+  \new Lyrics \lyricsto bassusIncipit { IV- }
+>>
+
 bassusNotes = {
   \transpose c' c' {
-    \clef bass
+    \clef "bass"
     R1 |
     R1 |
     R1 |
     R1 |
     g2. e4 |
-    \once \hide NoteHead e1 |
+    \once \hide NoteHead
+    e1 |
     g\breve |
   }
 }
@@ -114,175 +215,64 @@ bassusLyrics = \lyricmode {
   -us.
 }
 
-incipitDiscantus = \markup {
-  \score {
-    {
-      \set Staff.instrumentName = #"Discantus "
-      \override NoteHead.style = #'neomensural
-      \override Rest.style = #'neomensural
-      \override Staff.TimeSignature.style = #'neomensural
-      \cadenzaOn
-      \clef "neomensural-c1"
-      \key f \major
-      \time 2/2
-      c''1._"IV-" s2  %two bars
-      \skip 1*8 % eight bars
-    }
-    \layout {
-      \context {
-        \Voice
-        \remove "Ligature_bracket_engraver"
-        \consists "Mensural_ligature_engraver"
-      }
-      line-width = 4.5\cm
-    }
-  }
-}
-
-incipitAltus = \markup {
-  \score {
-    {
-      \set Staff.instrumentName = #"Altus "
-      \override NoteHead.style = #'neomensural
-      \override Rest.style = #'neomensural
-      \override Staff.TimeSignature.style = #'neomensural
-      \cadenzaOn
-      \clef "neomensural-c3"
-      \key f \major
-      \time 2/2
-      r1        % one bar
-      f'1._"IV-" s2   % two bars
-      \skip 1*7 % seven bars
-    }
-    \layout {
-      \context {
-        \Voice
-        \remove "Ligature_bracket_engraver"
-        \consists "Mensural_ligature_engraver"
-      }
-      line-width = 4.5\cm
-    }
-  }
-}
-
-incipitTenor = \markup {
-  \score {
-    {
-      \set Staff.instrumentName = #"Tenor  "
-      \override NoteHead.style = #'neomensural
-      \override Rest.style = #'neomensural
-      \override Staff.TimeSignature.style = #'neomensural
-      \cadenzaOn
-      \clef "neomensural-c4"
-      \key f \major
-      \time 2/2
-      r\longa   % four bars
-      r\breve   % two bars
-      r1        % one bar
-      c'1._"IV-" s2   % two bars
-      \skip 1   % one bar
-    }
-    \layout {
-      \context {
-        \Voice
-        \remove "Ligature_bracket_engraver"
-        \consists "Mensural_ligature_engraver"
-      }
-      line-width = 4.5\cm
-    }
-  }
-}
-
-incipitBassus = \markup {
-  \score {
-    {
-      \set Staff.instrumentName = #"Bassus  "
-      \override NoteHead.style = #'neomensural
-      \override Rest.style = #'neomensural
-      \override Staff.TimeSignature.style = #'neomensural
-      \cadenzaOn
-      \clef "bass"
-      \key f \major
-      \time 2/2
-      % incipit
-      r\maxima  % eight bars
-      f1._"IV-" s2    % two bars
-    }
-    \layout {
-      \context {
-        \Voice
-        \remove "Ligature_bracket_engraver"
-        \consists "Mensural_ligature_engraver"
-      }
-      line-width = 4.5\cm
-    }
-  }
-}
-
-%StaffGroup is used instead of ChoirStaff to get bar lines between systems
 \score {
   <<
     \new StaffGroup = choirStaff <<
       \new Voice = "discantusNotes" <<
         \global
-        \set Staff.instrumentName = \incipitDiscantus
+        \set Staff.instrumentName = #"Discantus "
+        \incipit \discantusIncipit
         \discantusNotes
       >>
       \new Lyrics = "discantusLyrics" \lyricsto discantusNotes { \discantusLyrics }
-
       \new Voice = "altusNotes" <<
         \global
-        \set Staff.instrumentName = \incipitAltus
+        \set Staff.instrumentName = #"Altus "
+        \incipit \altusIncipit
         \altusNotes
       >>
       \new Lyrics = "altusLyrics" \lyricsto altusNotes { \altusLyrics }
-
       \new Voice = "tenorNotes" <<
         \global
-        \set Staff.instrumentName = \incipitTenor
+        \set Staff.instrumentName = #"Tenor "
+        \incipit \tenorIncipit
         \tenorNotes
       >>
       \new Lyrics = "tenorLyrics" \lyricsto tenorNotes { \tenorLyrics }
-
       \new Voice = "bassusNotes" <<
         \global
-        \set Staff.instrumentName = \incipitBassus
+        \set Staff.instrumentName = #"Bassus "
+        \incipit \bassusIncipit
         \bassusNotes
       >>
+      \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
     >>
-    \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
-    %Keep the bass lyrics outside of the staff group to avoid bar lines
-    %between the lyrics.
   >>
-
   \layout {
     \context {
       \Score
-      % no bars in staves
+      %% no bar lines in staves or lyrics
       \hide BarLine
     }
-    % the next three instructions keep the lyrics between the bar lines
+    %% the next two instructions keep the lyrics between the bar lines
     \context {
       \Lyrics
       \consists "Bar_engraver"
-      \hide BarLine
-    }
-    \context {
-      \StaffGroup
       \consists "Separating_line_group_engraver"
     }
     \context {
       \Voice
-      % no slurs
+      %% no slurs
       \hide Slur
-      % Comment in the below "\remove" command to allow line
-      % breaking also at those barlines where a note overlaps
-      % into the next bar.  The command is commented out in this
-      % short example score, but especially for large scores, you
-      % will typically yield better line breaking and thus improve
-      % overall spacing if you comment in the following command.
-      %\remove "Forbid_line_break_engraver"
+      %% Comment in the below "\remove" command to allow line
+      %% breaking also at those bar lines where a note overlaps
+      %% into the next measure.  The command is commented out in this
+      %% short example score, but especially for large scores, you
+      %% will typically yield better line breaking and thus improve
+      %% overall spacing if you comment in the following command.
+      %%\remove "Forbid_line_break_engraver"
     }
-    indent = 5\cm
+    indent = 6\cm
+    incipit-width = 4\cm
   }
 }
index 2b647d08547461da83c800de38b9523222c3ee7f..ca5b7f24f6ec6f23e7ad9ab3c2083d52e744b4b9 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, scheme-language, workaround"
@@ -35,7 +35,6 @@ In this manner, the most natural enharmonic notes are chosen.
   doctitle = "Transposing pitches with minimum accidentals (\"Smart\" transpose)"
 } % begin verbatim
 
-
 #(define (naturalize-pitch p)
    (let ((o (ly:pitch-octave p))
          (a (* 4 (ly:pitch-alteration p)))
diff --git a/Documentation/snippets/tuplet-bracket-and-change-staff.ly b/Documentation/snippets/tuplet-bracket-and-change-staff.ly
new file mode 100644 (file)
index 0000000..2a1d9cf
--- /dev/null
@@ -0,0 +1,54 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
+
+\header {
+  lsrtags = "tweaks-and-overrides"
+
+  texidoc = "
+This snippet shows how to set a tuplet starting in a lower staff and
+finishing in the upper one.
+
+"
+  doctitle = "Tuplet bracket and change staff"
+} % begin verbatim
+
+%% http://lsr.di.unimi.it/LSR/Item?id=926
+%=> http://lilypond-french-users.1298960.n2.nabble.com/Crochet-de-nolet-tordu-tt7581491.html
+%=> http://lilypond.1069038.n5.nabble.com/Tuplet-bracket-amp-changeStff-td164063.html
+
+aigues = \relative c' {
+  \time 6/8
+  s4.
+  \stemDown
+  c16[ bes' e]
+  \stemUp
+  g c e
+  \stemDown
+  g8
+}
+
+basses = \relative c {
+  \time 3/4
+  \clef F
+  \tweak positions #'(4.5 . 9.5)
+  \tweak edge-height #'(1 . -1)
+  \tuplet 7/6 {
+    c16[ bes' e]
+    \change Staff = md
+    \stemUp
+    g[ c e g]
+  }
+  s4.s8
+}
+
+\new PianoStaff
+\with { \omit TimeSignature }
+<<
+  \new Staff = md \aigues
+  \new Staff = mg \basses
+>>
index a43faaca38bdd9a3d6d57e21e2d41674bdc70033..645530ea2bec1f24bd044a876d69edc2afd59854 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.18"
+\version "2.18.0"
 
 \header {
   lsrtags = "pitches, staff-notation, tweaks-and-overrides"
@@ -13,7 +13,7 @@
 The command @code{\\clef \"treble_8\"} is equivalent to setting
 @code{clefGlyph}, @code{clefPosition} (which controls the vertical
 position of the clef), @code{middleCPosition} and
-@code{clefTransposition}. A clef is printed when any of the properties
+@code{clefOctavation}. A clef is printed when any of the properties
 except @code{middleCPosition} are changed.
 
 
@@ -24,7 +24,7 @@ this. In order to get key signatures on the correct staff lines,
 @code{middleCClefPosition} must also be set.  The positional parameters
 are relative to the staff center line, positive numbers displacing
 upwards, counting one for each line and space. The
-@code{clefTransposition} value would normally be set to 7, -7, 15 or -15,
+@code{clefOctavation} value would normally be set to 7, -7, 15 or -15,
 but other values are valid.
 
 
@@ -45,7 +45,10 @@ line, they do not.
   doctitle = "Tweaking clef properties"
 } % begin verbatim
 
-\layout { ragged-right = ##t }
+\layout {
+  indent = 0
+  ragged-right = ##t
+}
 {
   % The default treble clef
   \key f \major
index b038e101b17e3a1bd989036d8a0d116b04d01997..65c5449fdaadd4d4e6b61e821e0c587655649bf1 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.28"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -20,7 +20,6 @@ up, and changes the default note heads to crosses.
   doctitle = "Tweaking grace layout within music"
 } % begin verbatim
 
-
 \relative c'' {
   \new Staff {
     $(remove-grace-property 'Voice 'Stem 'direction)
index 872f35a91d2b69ff04a1f9817b724e328c4c2cc9..35cacb18c3e016f8b1812ee5b941a029f7bf326d 100644 (file)
@@ -2,6 +2,7 @@ adding-an-ottava-marking-to-a-single-voice.ly
 adding-links-to-objects.ly
 adding-timing-marks-to-long-glissandi.ly
 adjusting-grace-note-spacing.ly
+adjusting-lyrics-vertical-spacing.ly
 altering-the-length-of-beamed-stems.ly
 alternative-bar-numbering.ly
 analysis-brackets-above-the-staff.ly
@@ -10,6 +11,7 @@ avoiding-collisions-with-chord-fingerings.ly
 caesura-railtracks-with-fermata.ly
 centering-markup-on-note-heads-automatically.ly
 changing-a-single-notes-size-in-a-chord.ly
+changing-beam-thickness-and-spacing.ly
 changing-form-of-multi-measure-rests.ly
 changing-properties-for-individual-grobs.ly
 changing-text-and-spanner-styles-for-text-dynamics.ly
@@ -36,6 +38,7 @@ drawing-boxes-around-grobs.ly
 drawing-circles-around-various-objects.ly
 dynamics-custom-text-spanner-postfix.ly
 dynamics-text-spanner-postfix.ly
+extending-a-trillspanner.ly
 extending-glissandi-across-repeats.ly
 fine-tuning-pedal-brackets.ly
 forcing-horizontal-shift-of-notes.ly
@@ -62,10 +65,12 @@ percent-repeat-count-visibility.ly
 positioning-arpeggios.ly
 positioning-multi-measure-rests.ly
 positioning-text-markups-inside-slurs.ly
+printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
 printing-bar-numbers-inside-boxes-or-circles.ly
 printing-metronome-and-rehearsal-marks-below-the-staff.ly
 printing-note-names-with-and-without-an-octave-marker.ly
 proportional-strict-notespacing.ly
+removing-brace-on-first-line-of-piano-score.ly
 removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly
 removing-the-first-empty-line.ly
 rest-styles.ly
@@ -80,6 +85,7 @@ time-signature-in-parentheses---method-3.ly
 time-signature-in-parentheses.ly
 time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly
 transcription-of-ancient-music-with-incipit.ly
+tuplet-bracket-and-change-staff.ly
 tweaking-clef-properties.ly
 tweaking-grace-layout-within-music.ly
 using-alternative-flag-styles.ly
index 10d57393b7dbe69dccfc35591feba2fcdc7894df..e7ebc7a0e4f2c9ae4c92f09ed640cf55813ba36a 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, staff-notation"
@@ -18,7 +18,6 @@ context.
   doctitle = "Use square bracket at the start of a staff group"
 } % begin verbatim
 
-
 \score {
   \new StaffGroup { <<
   \set StaffGroup.systemStartDelimiter = #'SystemStartSquare
diff --git a/Documentation/snippets/using-an-extra-voice-for-breaks.ly b/Documentation/snippets/using-an-extra-voice-for-breaks.ly
new file mode 100644 (file)
index 0000000..b0c952c
--- /dev/null
@@ -0,0 +1,49 @@
+% DO NOT EDIT this file manually; it is automatically
+% generated from Documentation/snippets/new
+% Make any changes in Documentation/snippets/new/
+% and then run scripts/auxiliar/makelsr.py
+%
+% This file is in the public domain.
+%% Note: this file works from version 2.18.0
+\version "2.18.0"
+
+\header {
+  lsrtags = "specific-notation, workaround"
+
+  texidoc = "
+
+Often it is easier to manage line and page-breaking information by
+keeping it separate from the music by introducing an extra voice
+containing only skips along with the @code{\\break},
+@code{pageBreak} and other layout information.
+
+This pattern becomes especially helpful when overriding
+@code{line-break-system-details} and the other useful but long
+properties of @code{NonMusicalPaperColumnGrob}.
+"
+  doctitle = "Using an extra voice for breaks"
+} % begin verbatim
+
+
+music = \relative c'' { c4 c c c }
+
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    \new Staff <<
+      \new Voice {
+        s1 * 2 \break
+        s1 * 3 \break
+        s1 * 6 \break
+        s1 * 5 \break
+      }
+      \new Voice {
+        \repeat unfold 2 { \music }
+        \repeat unfold 3 { \music }
+        \repeat unfold 6 { \music }
+        \repeat unfold 5 { \music }
+      }
+    >>
+  }
+}
index 3eacc6132b32419ab90e50ba9217d35628bc996f..86cf689f3f266cd1af75490f9daa51243b085735 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.2"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks, vocal-music"
@@ -18,7 +18,6 @@ often seen in choral music.
   doctitle = "Using arpeggioBracket to make divisi more visible"
 } % begin verbatim
 
-
 \include "english.ly"
 
 \score {
@@ -39,9 +38,9 @@ often seen in choral music.
       \new Voice = "lower"
       { \voiceTwo
         a1 ~
-        1
+        a
         a ~
-        4 \bar "|."
+        a4 \bar "|."
       }
     >>
   }
index cd7f6850993d6bad559aa9033dd293740738345e..8db1438e7d5d1aa7f7f749dfaacfe56315476579 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "keyboards, pitches, staff-notation"
index 0844c8624eb7414661028476fce914f7fcc646c6..4e1eaf7837124efddfd17e0f66867310560c58da 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -17,7 +17,6 @@ be achieved by setting @code{doubleSlurs}.
   doctitle = "Using double slurs for legato chords"
 } % begin verbatim
 
-
 \relative c' {
   \set doubleSlurs = ##t
   <c e>4( <d f> <c e> <d f>)
index c2e468501521a9c768dd4a8745367e5adfe3dc76..d07271b46a32b603babe466ffef6ab1cae63a7c4 100644 (file)
@@ -1,19 +1,19 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "devel, scheme-language, tweaks-and-overrides"
 
   texidoc = "
-Some grobs can be accessed @qq{laterally} from within another grob's
-callback. These are usually listed as @qq{layout objects} in the
-@qq{Internal properties} section of a grob-interface. The function
-@code{ly:grob-object} is used to access these grobs.
+Some grobs can be accessed “laterally” from within another grob’s
+callback. These are usually listed as “layout objects” in the “Internal
+properties” section of a grob-interface. The function ly:grob-object is
+used to access these grobs.
 
 
 Demonstrated below are some ways of accessing grobs from within a
@@ -30,7 +30,7 @@ accessed.
 Example console output:
 
 
--------------------- #-Grob Accidental - #-Grob Arpeggio - #-Grob Stem -
+@code{ #Grob Accidental () #Grob Stem}
 
 
 
index 976387a0d1c36e334f56bd647e01f1c7c8de355a..cc628a3b4a2d46af22563833707124fe940f75b7 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, really-cool, scheme-language, tweaks-and-overrides"
@@ -18,7 +18,6 @@ This example shows how a parallelogram-shaped note head is generated.
   doctitle = "Using PostScript to generate special note head shapes"
 } % begin verbatim
 
-
 parallelogram =
   #(ly:make-stencil (list 'embedded-ps
     "gsave
index f6bb8ed356c507fc2b44814b08ce8f478e7b0374..8d5349df02e78c373a2b4d6331f21e40d513bce8 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, tweaks-and-overrides"
@@ -17,7 +17,6 @@ Here are some examples of available tweaks.
   doctitle = "Using the \\tweak command to tweak individual grobs"
 } % begin verbatim
 
-
 \relative c' {
   \time 2/4
   \set fingeringOrientations = #'(right)
index 2e9f1a32431d1c8614ea4cb84e9f71f4229702df..c6c07217240f19ce797f353888c7d8dfdc786d92 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks"
index b1e8bea6fee1892687d6d71ee17814cb95895a50..dac63bf04c78caea763c0904f27ff759debe8267 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "rhythms"
@@ -20,7 +20,6 @@ can also be used for ordinary consecutive notes.
   doctitle = "Using ties with arpeggios"
 } % begin verbatim
 
-
 \relative c' {
   \set tieWaitForNote = ##t
   \grace { c16[ ~ e ~ g] ~ } <c, e g>2
index c6e1a0536bbe99514dce9b8677811988c437f482..a1b51d2923085d29566d5d93c403cce497aefbf8 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "text"
index 6610200af5c82c729a38f22bdc840fda31f01f4c..adea0ef56261e2e0e332bd8cee6945ee45f62697 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.30"
+\version "2.18.0"
 
 \header {
   lsrtags = "paper-and-layout, staff-notation, syntax-and-expressions"
index 9dca2487025ad69c024b218cf357fd7fb20203ce..222c20f0a5eb7ebb2564f2e45d2534549e908748 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "ancient-notation, expressive-marks"
@@ -19,7 +19,6 @@ demonstrates how to achieve such a notation.
   doctitle = "Vertical line as a baroque articulation mark"
 } % begin verbatim
 
-
 upline =
 #(let ((m (make-articulation "stopped")))
    (set! (ly:music-property m 'tweaks)
index 0adb0dec41def52b13ff6e762b25842cf82ed534..4c057c099891ab93225a7a844bbbe8059d878541 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -19,7 +19,6 @@ of the @code{DynamicLineSpanner} object.
   doctitle = "Vertically aligning dynamics across multiple notes"
 } % begin verbatim
 
-
 \relative c' {
   \override DynamicLineSpanner.staff-padding = #4
   c2\p f\mf
index 4a85d9d6a4d45f32980e47f88c0b0aa8dab0c6a9..bf138f5f07f38896bd8da09b2a8bcb6e9254958d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.18.0"
 
 \header {
   lsrtags = "spacing, tweaks-and-overrides, vocal-music"
@@ -18,7 +18,6 @@ positioning of lyrics and ossias.
   doctitle = "Vertically aligning ossias and lyrics"
 } % begin verbatim
 
-
 \paper {
   ragged-right = ##t
 }
index 7c59cd3b1620509a15a17fff8bda7de53fcab57e..661b8fe2081dd7005a259fc5515d9e9a4c53797d 100644 (file)
@@ -1,59 +1,67 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "vocal-music"
 
   texidoc = "
-In a vocal piece where there are several (two,four or more) lines of
-lyrics, and common lyrics for all voices at some point, these common
-lyrics may be vertically centered regardingly, as shown in the
+In a vocal piece where there are several (two, four or more) lines of
+lyrics and common lyrics for all voices at some point, the common
+lyrics may be made to appear vertically centered, as shown in the
 following example:
 
 "
   doctitle = "Vertically centered common lyrics"
 } % begin verbatim
 
-\include "english.ly"
-leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup #"brace240" }
-rightbrace = \markup { \rotate #180 \leftbrace }
-
-dropLyrics =
-{
-    \override LyricText.extra-offset = #'(0 . -5)
-    \override LyricHyphen.extra-offset = #'(0 . -5)
-    \override LyricExtender.extra-offset = #'(0 . -5)
+dropLyrics = {
+  \override LyricText.extra-offset = #'(0 . -4.5)
+  \override LyricHyphen.extra-offset = #'(0 . -4.5)
+  \override LyricExtender.extra-offset = #'(0 . -4.5)
+  \override StanzaNumber.extra-offset = #'(0 . -4.5)
 }
 
-raiseLyrics =
-{
-    \revert LyricText.extra-offset
-    \revert LyricHyphen.extra-offset
-    \revert LyricExtender.extra-offset
+raiseLyrics = {
+  \revert LyricText.extra-offset
+  \revert LyricHyphen.extra-offset
+  \revert LyricExtender.extra-offset
+  \revert StanzaNumber.extra-offset
 }
 
 skipFour = \repeat unfold 4 { \skip 8 }
 
-lyricsA = \lyricmode { The first verse has \dropLyrics the com -- mon
-__ words \raiseLyrics used in all four. }
-lyricsB = \lyricmode { In stan -- za two, \skipFour al -- so ap -- pear. }
-lyricsC = \lyricmode { By the third verse, \skipFour are get -- ting dull. }
+lyricsA = \lyricmode {
+  The first verse has
+  \dropLyrics
+  \set stanza = #"   All:"
+  the com -- mon __ words
+  \raiseLyrics
+  used in all four.
+}
+
+lyricsB = \lyricmode { In stan -- za two,   \skipFour al -- so ap -- pear. }
+
+lyricsC = \lyricmode { By the third verse,  \skipFour are get -- ting dull. }
+
 lyricsD = \lyricmode { Last stan -- za, and \skipFour get used once more. }
 
-melody = \relative c' { c4 d e f g f e8( e f) d4 c e d c }
-
-\score
-{
-        <<
-                \new Voice = m \melody
-                \new Lyrics \lyricsto m \lyricsA
-                \new Lyrics \lyricsto m \lyricsB
-                \new Lyrics \lyricsto m \lyricsC
-                \new Lyrics \lyricsto m \lyricsD
-        >>
+melody = \relative c' {
+  c4 d e f |
+  g f e8( e f) d |
+  c4 e d c |
+}
+
+\score {
+  <<
+    \new Voice = m \melody
+    \new Lyrics \lyricsto m \lyricsA
+    \new Lyrics \lyricsto m \lyricsB
+    \new Lyrics \lyricsto m \lyricsC
+    \new Lyrics \lyricsto m \lyricsD
+  >>
 }
index a29298b9d9f44464e83b613f3490aa69026194cc..4816346449d7c2938767e3d8bb3ceb75ab441a5d 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, tweaks-and-overrides"
@@ -19,7 +19,6 @@ extender lines are vertically centered if
   doctitle = "Vertically centering paired figured bass extenders"
 } % begin verbatim
 
-
 <<
   \relative c' {
     c8 c b b a a c16 c b b
index 8e1796fd47d0b11b50aa25464b5ea8765e6d472e..8eba692deb16a55ca20e9a6c5f2f1a4699f2754c 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "automatic-notation, keyboards, template, vocal-music"
@@ -21,7 +21,6 @@ reduction.
   doctitle = "Vocal ensemble template with automatic piano reduction"
 } % begin verbatim
 
-
 \paper {
   top-system-spacing #'basic-distance = #10
   score-system-spacing #'basic-distance = #20
index c4c1f61ccbf74cf90f3bba1513f20570ecfb4cc1..a13de11a6c5b602a0cd574fb134e48bea0cffaa6 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, template, text, vocal-music"
@@ -18,7 +18,6 @@ using @code{alignAboveContext} and @code{alignBelowContext}.
   doctitle = "Vocal ensemble template with lyrics aligned below and above the staves"
 } % begin verbatim
 
-
 global = {
   \key c \major
   \time 4/4
index 51ffe694b2f6b7ee7bcbc4fdf5d186211ddc83cf..fa80dbc0767d8bc72bbcc895f0e55a91bb3a1191 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "contexts-and-engravers, template, vocal-music"
@@ -20,7 +20,6 @@ score.
   doctitle = "Vocal ensemble template with verse and refrain"
 } % begin verbatim
 
-
 global = {
   \key g \major
 
index 100d57e09857f97cee5c6b65ae52256689c94832..e78416a1069e3c03f135afa0893c9e8221668886 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, template, vocal-music"
@@ -20,7 +20,6 @@ regrouped on only two staves.
   doctitle = "Vocal ensemble template"
 } % begin verbatim
 
-
 \paper {
   top-system-spacing #'basic-distance = #10
   score-system-spacing #'basic-distance = #20
index 454daf765d2f6d9b82dc3c4e699bca185a4cdeac..cc21ee8369abca75a63e9b5326d7720b5acd8ba5 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.2"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
@@ -16,13 +16,8 @@ Vocal headword
   doctitle = "Vocal headword"
 } % begin verbatim
 
-\layout {
-  \context {
-    \Score
-    \override PaperColumn.keep-inside-line = ##t
-    \override NonMusicalPaperColumn.keep-inside-line = ##t
-  }
-}
+%% http://lsr.di.unimi.it/LSR/Item?id=832
+%% see also http://lilypond.org/doc/v2.18/Documentation/notation/vocal-music
 
 % L. van Beethoven. Symphony No. 9 in D minor, op.125; Finale
 % mm. 216 -- 236
@@ -39,7 +34,7 @@ Vocal headword
     \autoBeamOff
     r4^\markup { \small Baritono } r a
     \appoggiatura a8 e'2. ~
-    4 d8[ cis d e]
+    e4 d8[ cis d e]
     e4 g, r8 g
     bes2 a8 e
     g4 f r
index 1c43944d607b4e24c77b62cba4978fc4da006071..def56665c5b5027d3838ac7e2eaff5c1a5e47bc2 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "chords, repeats, staff-notation"
@@ -17,7 +17,6 @@ put under chords.
   doctitle = "Volta below chords"
 } % begin verbatim
 
-
 \score {
   <<
     \chords {
index a16d728f33e22f544c97ff154fdcc1dbcacde4e5..db17173d061b4353efb5cb1cae8563b4744898ed 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "really-simple, repeats, staff-notation"
@@ -17,7 +17,6 @@ put over staves other than the topmost one in a score.
   doctitle = "Volta multi staff"
 } % begin verbatim
 
-
 voltaMusic = \relative c'' {
   \repeat volta 2 {
     c1
index 55ef3c14a2bb96d7505cfb50b180b3a5bcb7f54c..73415a718c8c43c074bbced1f00d9c27461468ea 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "repeats, symbols-and-glyphs, text"
@@ -25,7 +25,6 @@ separate list elements:
   doctitle = "Volta text markup using repeatCommands"
 } % begin verbatim
 
-
 voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
 
 \relative c'' {
index 821403d192245f6ace9d14eea0f57c156d1cd10b..4d115afc26561d5e040eb7b579356426ee5ebdd8 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.18.0"
 
 \header {
   lsrtags = "headword"
@@ -16,6 +16,9 @@ Wind headword
   doctitle = "Wind headword"
 } % begin verbatim
 
+%% http://lsr.di.unimi.it/LSR/Item?id=833
+%% see also http://lilypond.org/doc/v2.18/Documentation/notation/wind-instruments
+
 % NR 2.whatever  Wind
 % Tchaikovsky
 % Nutcracker Suite, VII Dance of the Merlitons
index db8661d8432ebbf95cb04a64c867275b064a9d38..034f7098540b5833ad7efe4aa66d98ab3741e1fe 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.18.0"
 
 \header {
   lsrtags = "specific-notation, winds"
@@ -17,6 +17,10 @@ defined in LilyPond.
   doctitle = "Woodwind diagrams listing"
 } % begin verbatim
 
+\layout {
+  indent = 0
+}
+
 \relative c' {
   \textLengthOn
   c1^
index 3d43a698359abee4b212d14b305c4d814fad213f..3167e717372275c0955c5a91af35803aa9326f1a 100644 (file)
@@ -16,4 +16,5 @@ positioning-segno-and-coda-with-line-break.ly
 printing-text-from-right-to-left.ly
 transcription-of-ancient-music-with-incipit.ly
 transposing-pitches-with-minimum-accidentals-smart-transpose.ly
+using-an-extra-voice-for-breaks.ly
 vertically-aligned-dynamics-and-textscripts.ly
index b9d5b22601f8548b698065b87ed10e4a78d3f51c..0bff8f68df9636786d7eed1e0fdf43b83b8e4ea2 100644 (file)
@@ -915,6 +915,13 @@ when something unexpected happens.  If you can't see an error in the
 indicated line of your input file, try checking one or two lines
 above the indicated position.
 
+Please note that diagnostics can be triggered at any point during the
+many stages of processing.  For example if there are parts of the input
+that are processed multiple times (i.e. in midi and layout output), or
+if the same music variable is used in multiple contexts the same message
+may appear several times.  Diagnostics produced at a @q{late} stage (i.e
+bar checks) might also be issued multiple times.
+
 More information about errors is given in @ref{Common errors}.
 
 
@@ -994,30 +1001,6 @@ correct code to color all note heads red is
 }
 @end lilypond
 
-As a second example, if a @code{\relative} command is placed inside
-a @code{\repeat} command, two staves result, the second offset from
-the first, because the @code{\repeat} command generates two
-@code{\relative} blocks, which each implicitly create @code{Staff}
-and @code{Voice} blocks.
-
-@lilypond[quote,verbatim]
-\repeat unfold 2 {
-  \relative c' { c4 d e f }
-}
-@end lilypond
-
-Explicitly instantiating the @code{Voice} context fixes the
-problem:
-
-@lilypond[quote,verbatim]
-\new Voice {
-  \repeat unfold 2 {
-    \relative c' { c4 d e f }
-  }
-}
-@end lilypond
-
-
 @node Error message Unbound variable %
 @unnumberedsubsec Error message Unbound variable %
 
index 54723d77f59f016826fa53d0647ae03b28d5466a..70362a5d276b39fb3c7c516ab8ca355debf3fe0e 100644 (file)
@@ -134,7 +134,7 @@ in your own works.  See what other people have written,
 and add your own!
 
 @example
-@uref{http://lsr.dsi.unimi.it}
+@uref{http://lsr.di.unimi.it}
 @end example
 
 Particularly instructive examples from LSR are included in our
index 4df4c9a313213fb386704a86d6bae0202dad4e2b..e741a960eaa3831bdd43d9fe184ab9ac987537ba 100644 (file)
@@ -129,7 +129,7 @@ previous stable versions and current as a compressed archive.
 translation status for non-English readers.
 
 @item
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}:
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}:
 user-created examples, hints and tips.
 
 @item
@@ -323,7 +323,7 @@ attempting any large projects.
 @subheading Snippets
 
 This shows a selected set of LilyPond snippets from the
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}
 (LSR).  All the snippets are in the public domain.
 
 Please note that this document is not an exact subset of LSR.  LSR
index 54da77f0f59b64422dcdefb16dea849f05dbb357..50c8016a4f28dc2dca217b6f76fc51cb8ec4d26a 100644 (file)
@@ -9,9 +9,9 @@
 @c used for news about the upcoming release; see CG 10.2
 
 @newsItem
-@subsubheading LilyPond 2.19.8 released  @emph{June 15, 2014}
+@subsubheading LilyPond 2.19.10 released  @emph{July 13, 2014}
 
-We are happy to announce the release of LilyPond 2.19.8.  This
+We are happy to announce the release of LilyPond 2.19.10.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
index c01a1ffc9075f9b55959c621ac39c4ac120c3934..0a876101e1867e2acb34efe8c772726a49939826 100644 (file)
@@ -26,6 +26,30 @@ NOTE:
   * don't duplicate entries from news-front.itexi
 @end ignore
 
+@newsItem
+@subsubheading LilyPond 2.19.9 released  @emph{June 29, 2014}
+
+We are happy to announce the release of LilyPond 2.19.9.  This
+release includes a number of enhancements, and contains some work
+in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of Lilypond, we recommend using the 2.18
+version.
+
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.19.8 released  @emph{June 15, 2014}
+
+We are happy to announce the release of LilyPond 2.19.8.  This
+release includes a number of enhancements, and contains some work
+in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of Lilypond, we recommend using the 2.18
+version.
+
+@newsEnd
+
 @newsItem
 @subsubheading LilyPond 2.19.7 released  @emph{May 25, 2014}
 
@@ -4415,7 +4439,7 @@ file and download @ref{Old downloads}!
 
 @newsItem
 @subsubheading February 26, 2005
-The @uref{http://lsr.dsi.unimi.it/,LilyPond Snippet
+The @uref{http://lsr.di.unimi.it/,LilyPond Snippet
 Repository (LSR)} is a searchable database of LilyPond code
 snippets.  You can add snippets too, so join the LSR project, and
 contribute creative ideas for using LilyPond.
index f073b630690ed1eabd52a4d5e884f18f3f35d809..21046727b16aef99c76b5fa745e7d66d355f7c12 100644 (file)
@@ -133,7 +133,7 @@ in your own works.  See what other people have written,
 and add your own!
 
 @example
-@uref{http://lsr.dsi.unimi.it}
+@uref{http://lsr.di.unimi.it}
 @end example
 
 Particularly instructive examples from LSR are included in our
index 63fd22356c50cb3977ff3bbc789b1a06c38e1770..ef23742c995109a5627873633c0de3213f7d1887 100644 (file)
@@ -133,7 +133,7 @@ LilyPond 是 @strong{基于文本} 的音乐雕版印刷程序。请您先阅读
 针对非英语读者的翻译情况。
 
 @item
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}:
+@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}:
 用户创建的例子、窍门和秘诀。
 
 @item
@@ -304,7 +304,7 @@ LilyPond,同时也用简单的术语解释了一些关键的概念。您应该
 @subheading 片断 Snippets
 
 这里显示从
-@uref{http://lsr@/.dsi@/.unimi@/.it,
+@uref{http://lsr@/.di@/.unimi@/.it,
 LilyPond 片断库 (LilyPond Snippet Repository@comma{} LSR)}
 精选出来的一些 LilyPond 片断。所有的片断都属于公有领域。
 
diff --git a/ROADMAP b/ROADMAP
index 2616c11c164380b3fe7f57a8458a69e9ac8fa7e8..2bf571f72d92f725e2bf36ffbab9d3eca1cdd166 100644 (file)
--- a/ROADMAP
+++ b/ROADMAP
@@ -14,17 +14,20 @@ LilyPond's source files.
 |                          build bootstrapping, patches
 |                          for third party programs
 |
-|-- Documentation/       Top sources for manuals
+|-- Documentation/       Top sources for most of the manuals
 |   |
 |   |
 |   |   INDIVIDUAL CHAPTERS FOR EACH MANUAL:
+|   |     Note: "Snippets" and "Internals Reference" are
+|   |     auto-generated during the Documentation Build process.
+|   |
 |   |
 |   |-- contributor/     Contributor's Guide
 |   |-- essay/           Essay on automated music engraving
-|   |-- extending/       Extending
+|   |-- extending/       Extending the functionality of LilyPond
 |   |-- learning/        Learning Manual
 |   |-- notation/        Notation Reference
-|   |-- usage/           Usage
+|   |-- usage/           Runnning the programs that come with LilyPond
 |   |-- web/             The website
 |   |
 |   |
@@ -35,6 +38,7 @@ LilyPond's source files.
 |   |          * individual chapters for each manual
 |   |       2) a texidocs/ directory for snippet translations
 |   |
+|   |-- ca/              Catalan
 |   |-- cs/              Czech
 |   |-- de/              German
 |   |-- es/              Spanish
@@ -56,7 +60,7 @@ LilyPond's source files.
 |   |-- pictures/        Images used (eps/jpg/png/svg)
 |   |   `-- pdf/         (pdf)
 |   |-- po/              Translated build/maintenance scripts
-|   |-- snippets/        Auto-generated .ly snippets (from the LSR)
+|   |-- snippets/        Auto-generated from the LSR and from ./new/
 |   |   `-- new/         Snippets too new for the LSR
 |   `-- topdocs/         AUTHORS, INSTALL, README
 |
diff --git a/VERSION b/VERSION
index 980df5a24241b958ee12015cd1834f9b5409ca1b..8866a61d69eea3ffd2aa33c26c21e4350859f877 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=19
-PATCH_LEVEL=9
+PATCH_LEVEL=11
 MY_PATCH_LEVEL=
 VERSION_STABLE=2.18.2
-VERSION_DEVEL=2.19.8
+VERSION_DEVEL=2.19.10
index 2877cc85b01bbcc0432bbd9be2f0d463d88727f1..36b4795dbd0ff54656943bfd0960d51b4f46f2c3 100644 (file)
@@ -10,4 +10,4 @@
   a b c:7
   \once \override ChordName.text = #"foo"
   d
-}
\ No newline at end of file
+}
index 1189c0b82c982f5c3f8fde771ccc106d5668e0b2..e765d8e5ce5447bd2cb5bc7a1538cbf8b2bdc981 100644 (file)
@@ -1,9 +1,14 @@
-\version "2.17.6"
+\version "2.19.8"
 
 \header {
   texidoc="
 Dots indicating fingerings can be changed in location,
 size, and coloring.
+It is possible to parenthesize a single dot.  The color
+of the paranthesis may be taken from dot or default.
+A possible collision between parathesis and fret-label-
+indication can be resolved by an override for
+@code{fret-label-horizontal-offset} in @code{fret-diagram-details}.
 
 "
 }
@@ -12,6 +17,8 @@ size, and coloring.
 
 <<
   \chords {
+    c1 |
+    c1 |
     c1 |
     c1 |
     c1 |
@@ -65,7 +72,34 @@ size, and coloring.
                                      (place-fret 1 3 1)
                                      (barre 5 1 3))}
 
- }
->>
+     %% C major for guitar,  verbose style
+    \once \override TextScript.size = #1.4
+    c'1 ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1 blue)
+                                     (place-fret 4 5 2 red parenthesized)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4 red)
+                                     (place-fret 1 3 1 blue parenthesized)
+                                     (barre 5 1 3))}
 
+     %% C major for guitar,  verbose style
+     %% larger size and dot-radius
+     %% different dot-colors
+     %% parenthesizing single dots, with different paren-color
+     %% horizontal moving fret-label-indication
+    \once \override TextScript.size = #1.5
+    \once \override TextScript.fret-diagram-details.dot-radius = #0.4
+    \once \override TextScript.fret-diagram-details.fret-label-horizontal-offset = #0.2
+    c'1 ^\markup {
+            \fret-diagram-verbose
+              #'((mute 6)
+                 (place-fret 5 3 1 blue)
+                 (place-fret 4 5 2 red parenthesized default-paren-color)
+                 (place-fret 3 5 3)
+                 (place-fret 2 5 4 red)
+                 (place-fret 1 3 1 blue parenthesized)
+                 (barre 5 1 3))}
 
+ }
+>>
index 786d34110c6aa999ccffc21fd5b1fbe52ff3a24b..81575a50c800989dddb5cfd0899854c5f7423a39 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.17.6"
+\version "2.19.8"
 
 \header {
   texidoc="
@@ -19,6 +19,7 @@ and fingering label font size can be adjusted.
     c1 |
     c1 |
     c1 |
+    c1 |
     c1
   }
 
@@ -78,7 +79,8 @@ and fingering label font size can be adjusted.
                                      (place-fret 2 5 4)
                                      (place-fret 1 3 1)
                                      (barre 5 1 3))}
-    %% dot color inversion, white on black
+     %% C major for guitar, verbose style
+     %% dot color inversion, white on black
     \once \override TextScript.fret-diagram-details.dot-color = #'black
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
@@ -88,7 +90,8 @@ and fingering label font size can be adjusted.
                                      (place-fret 2 5 4)
                                      (place-fret 1 3 1)
                                      (barre 5 1 3))}
-    %% dot color inversion, black on white
+     %% C major for guitar, verbose style
+     %% dot color inversion, black on white
     \once \override TextScript.fret-diagram-details.dot-color = #'white
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
@@ -98,7 +101,17 @@ and fingering label font size can be adjusted.
                                      (place-fret 2 5 4)
                                      (place-fret 1 3 1)
                                      (barre 5 1 3))}
+     %% C major for guitar, verbose style
+     %% dot color inversion, global setting and per-dot
+    \once \override TextScript.fret-diagram-details.dot-color = #'grey
+    \once \override TextScript.size = #1.4
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1 inverted)
+                                     (place-fret 4 5 2 red)
+                                     (place-fret 3 5 3 inverted)
+                                     (place-fret 2 5 4 red inverted)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
  }
 >>
-
-
index 6ae0e392b15353af9a9aa235502bd8430d11e33c..495562dc281ab9b19779ed50c9fd05d60cd22c75 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.17.6"
+\version "2.19.8"
 
 \header {
   texidoc="
@@ -32,8 +32,8 @@ size, and number type.
                                      (barre 5 1 3))}
 
      %% C major for guitar, verbose style
-    \override TextScript.fret-diagram-details.label-dir = #LEFT 
-    \override TextScript.fret-diagram-details.number-type = #'roman-upper 
+    \override TextScript.fret-diagram-details.label-dir = #LEFT
+    \override TextScript.fret-diagram-details.number-type = #'roman-upper
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -45,8 +45,8 @@ size, and number type.
 
      %% C major for guitar, verbose style
     \revert TextScript.fret-diagram-details.label-dir
-    \override TextScript.fret-diagram-details.fret-label-font-mag = #0.4 
-    \override TextScript.fret-diagram-details.number-type = #'arabic 
+    \override TextScript.fret-diagram-details.fret-label-font-mag = #0.4
+    \override TextScript.fret-diagram-details.number-type = #'arabic
     \once \override TextScript.fret-diagram-details.fret-label-vertical-offset = #0.25
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
@@ -60,6 +60,7 @@ size, and number type.
      %% C major for guitar, verbose style
     \revert TextScript.fret-diagram-details.label-dir
     \once \override TextScript.fret-diagram-details.number-type = #'custom
+    \once \override TextScript.fret-diagram-details.fret-label-horizontal-offset = #0.5
     \once \override TextScript.fret-diagram-details.fret-label-custom-format = #"~d°"
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
@@ -72,5 +73,3 @@ size, and number type.
 
  }
 >>
-
-
diff --git a/input/regression/input-order-alignment.ly b/input/regression/input-order-alignment.ly
new file mode 100644 (file)
index 0000000..cabb357
--- /dev/null
@@ -0,0 +1,25 @@
+\version "2.19.9"
+
+\header {
+  texidoc = "Alignment of lyrics, dynamics, textscripts and articulations
+attached to chords with suspended notes doesn't depend on input order.
+All these items are aligned on the \"main\" notehead (the one at the
+end of the stem)."
+}
+
+<<
+  \new Staff {
+    <b' c''>2 s
+    <b' c''>\f s
+    <b' c''>^"Text" s
+    <b' c''>-! s
+  }
+  \addlyrics { blah }
+  \new Staff {
+    <c'' b'>2 s
+    <c'' b'>\f s
+    <c'' b'>^"Text" s
+    <c'' b'>-! s
+  }
+  \addlyrics { blah }
+>>
index 30d2535c59be09e640d3e2379e819a6a930026a4..1262e70c9c964ca5f7eb733f5f7811368da54373 100644 (file)
@@ -1,7 +1,6 @@
 \header {
-  texidoc ="Lyric syllables without note attachment are not
-centered.  Centering may cause unintended effects when the
-paper column is very wide."
+  texidoc ="Lyric syllables without note attachment are
+aligned correctly even if the paper column is very wide."
 }
  
 \layout{ ragged-right = ##t }
@@ -21,7 +20,7 @@ paper column is very wide."
   \new Lyrics \lyricmode {
     \skip 8
     \skip 8
-    x8
+    xx8
     x8
   }
 >>
diff --git a/input/regression/magnifyMusic-dots-beamlets.ly b/input/regression/magnifyMusic-dots-beamlets.ly
new file mode 100644 (file)
index 0000000..8d14060
--- /dev/null
@@ -0,0 +1,30 @@
+\version "2.19.8"
+
+\header {
+  texidoc = "Dot size and beamlet length should be scaled along
+with notation size when using the @code{\magnifyMusic} command."
+}
+
+\score {
+  \new Voice {
+    \omit Staff.TimeSignature
+    \time 7/4
+    <<
+      { \repeat unfold 7 \relative { g'8.[ g16] } }
+      {
+        \magnifyMusic 0.50 s4
+        \magnifyMusic 0.63 s
+        \magnifyMusic 0.80 s
+        \magnifyMusic 1.00 s
+        \magnifyMusic 1.26 s
+        \magnifyMusic 1.59 s
+        \magnifyMusic 2.00 s
+      }
+    >>
+  }
+  \addlyrics {
+    "50%" _ _ _ _ _
+    "100%" _ _ _ _ _
+    "200%" _
+  }
+}
diff --git a/input/regression/magnifyMusic-laissez-vibrer-ties.ly b/input/regression/magnifyMusic-laissez-vibrer-ties.ly
new file mode 100644 (file)
index 0000000..7a231e8
--- /dev/null
@@ -0,0 +1,38 @@
+\version "2.19.8"
+
+\header {
+  texidoc = "Laissez vibrer ties should be scaled along with
+notation size when using the @code{\magnifyMusic} command.  They
+can get thicker than the default, but not thinner."
+}
+
+template = {
+  \omit Staff.TimeSignature
+  \time 7/2
+  \magnifyMusic 0.50 s2
+  \magnifyMusic 0.63 s
+  \magnifyMusic 0.80 s
+  \magnifyMusic 1.00 s
+  \magnifyMusic 1.26 s
+  \magnifyMusic 1.59 s
+  \magnifyMusic 2.00 s
+}
+
+\score {
+  \new StaffGroup <<
+    \new Staff \new Voice = "upper" <<
+      \template
+      \repeat unfold 7 { g'4\laissezVibrer \hide Rest r4 }
+    >>
+    \new Lyrics \with {
+      \override VerticalAxisGroup.staff-affinity = #DOWN
+    } \lyricsto "upper" {
+      " 50%" \skip 1 \skip 1 " 100%" \skip 1 \skip 1 " 200%"
+    }
+    \new Staff \new Voice <<
+      \clef bass
+      \template
+      \repeat unfold 7 { f4\laissezVibrer \hide Rest r4 }
+    >>
+  >>
+}
diff --git a/input/regression/magnifyMusic-phrasing-slurs.ly b/input/regression/magnifyMusic-phrasing-slurs.ly
new file mode 100644 (file)
index 0000000..b691e13
--- /dev/null
@@ -0,0 +1,31 @@
+\version "2.19.8"
+
+\header {
+  texidoc = "Phrasing slurs should be scaled along with notation
+size when using the @code{\magnifyMusic} command.  They can get
+thicker than the default, but not thinner."
+}
+
+\score {
+  \new Voice {
+    \omit Staff.TimeSignature
+    \time 7/8
+    <<
+      { \repeat unfold 7 \relative { g'32[\( a b c\)] } }
+      {
+        \magnifyMusic 0.50 s8
+        \magnifyMusic 0.63 s
+        \magnifyMusic 0.80 s
+        \magnifyMusic 1.00 s
+        \magnifyMusic 1.26 s
+        \magnifyMusic 1.59 s
+        \magnifyMusic 2.00 s
+      }
+    >>
+  }
+  \addlyrics {
+    "50%" _ _ _ _ _ _ _ _ _ _ _
+    "100%" _ _ _ _ _ _ _ _ _ _ _
+    "200%" _ _ _
+  }
+}
diff --git a/input/regression/magnifyMusic-repeat-ties.ly b/input/regression/magnifyMusic-repeat-ties.ly
new file mode 100644 (file)
index 0000000..fd1c374
--- /dev/null
@@ -0,0 +1,38 @@
+\version "2.19.8"
+
+\header {
+  texidoc = "Repeat ties should be scaled along with notation size
+when using the @code{\magnifyMusic} command.  They can get thicker
+than the default, but not thinner."
+}
+
+template = {
+  \omit Staff.TimeSignature
+  \time 7/2
+  \magnifyMusic 0.50 s2
+  \magnifyMusic 0.63 s
+  \magnifyMusic 0.80 s
+  \magnifyMusic 1.00 s
+  \magnifyMusic 1.26 s
+  \magnifyMusic 1.59 s
+  \magnifyMusic 2.00 s
+}
+
+\score {
+  \new StaffGroup <<
+    \new Staff \new Voice = "upper" <<
+      \template
+      \repeat unfold 7 { g'4\repeatTie \hide Rest r4 }
+    >>
+    \new Lyrics \with {
+      \override VerticalAxisGroup.staff-affinity = #DOWN
+    } \lyricsto "upper" {
+      " 50%" \skip 1 \skip 1 " 100%" \skip 1 \skip 1 " 200%"
+    }
+    \new Staff \new Voice <<
+      \clef bass
+      \template
+      \repeat unfold 7 { f4\repeatTie \hide Rest r4 }
+    >>
+  >>
+}
diff --git a/input/regression/magnifyMusic-slurs.ly b/input/regression/magnifyMusic-slurs.ly
new file mode 100644 (file)
index 0000000..31edb57
--- /dev/null
@@ -0,0 +1,27 @@
+\version "2.19.8"
+
+\header {
+  texidoc = "Slurs should be scaled along with notation size when
+using the @code{\magnifyMusic} command.  They can get thicker than
+the default, but not thinner."
+}
+
+\score {
+  \new Voice {
+    \omit Staff.TimeSignature
+    \time 7/8
+    <<
+      { \repeat unfold 7 \relative { g'32[( a b c)] } }
+      {
+        \magnifyMusic 0.50 s8
+        \magnifyMusic 0.63 s
+        \magnifyMusic 0.80 s
+        \magnifyMusic 1.00 s
+        \magnifyMusic 1.26 s
+        \magnifyMusic 1.59 s
+        \magnifyMusic 2.00 s
+      }
+    >>
+  }
+  \addlyrics { "50%" _ _ "100%" _ _ "200%" }
+}
index 2ca15238a00a5db49423a4ef313049963e8a204b..135cfd9e8deb773232a64145d2e3c73ff0f915a9 100644 (file)
@@ -1,22 +1,32 @@
 \version "2.19.8"
 
 \header {
-  texidoc = "Stem lengths, beam spacing/thickness, and horizontal
-spacing should be scaled along with notation size when using the
-@code{\magnifyMusic} command."
+  texidoc = "Stem length/thickness, beam spacing/thickness, and
+horizontal spacing should be scaled along with notation size when
+using the @code{\magnifyMusic} command.  Stems can get thicker
+than the default, but not thinner."
 }
 
-\layout { ragged-right = ##t }
-
-\relative <<
-  { \repeat unfold 7 { g'32[ a b c] } }
-  {
-    \magnifyMusic 0.50 { s8_"50%" }
-    \magnifyMusic 0.63 { s }
-    \magnifyMusic 0.80 { s }
-    \magnifyMusic 1.00 { s_"100%" }
-    \magnifyMusic 1.26 { s }
-    \magnifyMusic 1.59 { s }
-    \magnifyMusic 2.00 { s_"200%" }
+\score {
+  \new Voice {
+    \omit Staff.TimeSignature
+    \time 7/8
+    <<
+      { \repeat unfold 7 \relative { g'32[ a b c] } }
+      {
+        \magnifyMusic 0.50 s8
+        \magnifyMusic 0.63 s
+        \magnifyMusic 0.80 s
+        \magnifyMusic 1.00 s
+        \magnifyMusic 1.26 s
+        \magnifyMusic 1.59 s
+        \magnifyMusic 2.00 s
+      }
+    >>
+  }
+  \addlyrics {
+    "50%" _ _ _ _ _ _ _ _ _ _ _
+    "100%" _ _ _ _ _ _ _ _ _ _ _
+    "200%" _ _ _
   }
->>
+}
diff --git a/input/regression/magnifyMusic-ties.ly b/input/regression/magnifyMusic-ties.ly
new file mode 100644 (file)
index 0000000..76d98fc
--- /dev/null
@@ -0,0 +1,47 @@
+\version "2.19.8"
+
+\header {
+  texidoc = "Ties should be scaled along with notation size when
+using the @code{\magnifyMusic} command.  They can get thicker than
+the default, but not thinner."
+}
+
+template = {
+  \omit Staff.TimeSignature
+  \time 7/8
+  \magnifyMusic 0.50 s8
+  \magnifyMusic 0.63 s
+  \magnifyMusic 0.80 s
+  \magnifyMusic 1.00 s
+  \magnifyMusic 1.26 s
+  \magnifyMusic 1.59 s
+  \magnifyMusic 2.00 s
+}
+
+\score {
+  \new StaffGroup <<
+    \new Staff \new Voice = "upper" <<
+      \template
+      \repeat unfold 7 { g'32[~ g' a'~ a'] }
+    >>
+    \new Staff \new Voice <<
+      \template
+      \repeat unfold 7 { \tieUp g'32[~ g' a'~ a'] }
+    >>
+    \new Lyrics \with {
+      \override VerticalAxisGroup.staff-affinity = #DOWN
+    } \lyricsto "upper" {
+      "50%" _ _ _ _ _ "100%" _ _ _ _ _ " 200%"
+    }
+    \new Staff \new Voice <<
+      \clef bass
+      \template
+      \repeat unfold 7 { f32[~ f e~ e] }
+    >>
+    \new Staff \new Voice <<
+      \clef bass
+      \template
+      \repeat unfold 7 { \tieDown f32[~ f e~ e] }
+    >>
+  >>
+}
diff --git a/input/regression/magnifyStaff-bar-lines.ly b/input/regression/magnifyStaff-bar-lines.ly
new file mode 100644 (file)
index 0000000..4bc357e
--- /dev/null
@@ -0,0 +1,33 @@
+\version "2.19.11"
+
+\header {
+  texidoc = "Bar line thickness and spacing should be scaled along
+with notation size when using the @code{\magnifyStaff} command."
+}
+
+\paper {
+  score-system-spacing = #'((padding . 4))
+}
+
+example =
+#(define-music-function (parser location mag) (positive?)
+   #{
+     \new Staff \with {
+       \magnifyStaff #mag
+       instrumentName = \markup {
+         \fontsize #(+ 3 (- (magnification->font-size mag)))
+         #(format #f "~,2f" mag)
+       }
+     } {
+       \omit Staff.Clef
+       \omit Staff.TimeSignature
+       s4 \bar "|"
+       s4 \bar ":|.|:"
+       s4 \bar ":|.S.|:"
+       s4 \bar "|."
+     }
+   #})
+
+\example 0.50
+\example 1.00
+\example 2.00
diff --git a/input/regression/magnifyStaff-dots-beamlets.ly b/input/regression/magnifyStaff-dots-beamlets.ly
new file mode 100644 (file)
index 0000000..e4dd1f7
--- /dev/null
@@ -0,0 +1,21 @@
+\version "2.19.11"
+
+\header {
+  texidoc = "Dot size and beamlet length should be scaled along
+with notation size when using the @code{\magnifyStaff} command."
+}
+
+music = { a'8.[ a'16] }
+{
+  \magnifyStaff 0.50 \music \music \bar "|"
+  \magnifyStaff 0.71 \music \bar "|"
+  \magnifyStaff 1.00 \music \bar "|"
+  \magnifyStaff 1.41 \music \bar "|"
+  \magnifyStaff 2.00 \music \bar "|"
+} \addlyrics {
+  "0.50  " _ _ _
+  "0.71  " _
+  "1.00  " _
+  "1.41  " _
+  "2.00  " _
+}
diff --git a/input/regression/magnifyStaff-space-alist.ly b/input/regression/magnifyStaff-space-alist.ly
new file mode 100644 (file)
index 0000000..561ac9e
--- /dev/null
@@ -0,0 +1,38 @@
+\version "2.19.11"
+
+\header {
+  texidoc = "@code{space-alist} values should be scaled along
+with notation size when using the @code{\magnifyStaff} command."
+}
+
+\paper {
+  indent = 0
+  ragged-right = ##t
+  system-system-spacing = #'((padding . 3))
+  score-markup-spacing = #'((padding . 6))
+}
+
+example =
+#(define-music-function (parser location mag) (positive?)
+   #{
+     \new Staff \with {
+       \magnifyStaff #mag
+       \consists "Custos_engraver"
+       \override Custos.style = #'mensural
+     } \new Voice \with {
+       \consists "Ambitus_engraver"
+     } {
+       \omit Score.BarNumber
+       \key d \major
+       d''2 \breathe d'' |
+       \break
+       g'1 |
+       \clef treble
+       \key c \major
+       g'1 |
+     }
+   #})
+
+\markup "0.50:" \example 0.50
+\markup "1.00:" \example 1.00
+\markup "2.00:" \example 2.00
diff --git a/input/regression/magnifyStaff-staff-line-thickness.ly b/input/regression/magnifyStaff-staff-line-thickness.ly
new file mode 100644 (file)
index 0000000..4ff9568
--- /dev/null
@@ -0,0 +1,21 @@
+\version "2.19.11"
+
+\header {
+  texidoc = "Staff line thickness should be scaled along with
+staff size when using the @code{\magnifyStaff} command.  Staff
+lines can get thicker than the default, but not thinner."
+}
+
+{
+  \magnifyStaff 0.50 b'1
+  \magnifyStaff 0.71 b'1
+  \magnifyStaff 1.00 b'1
+  \magnifyStaff 1.41 b'1
+  \magnifyStaff 2.00 b'1
+} \addlyrics {
+  " 0.50 "
+  " 0.71 "
+  " 1.00 "
+  " 1.41 "
+  " 2.00 "
+}
index d514a92a09bcf727e3d527143cc6e3590fa9940d..9ff66c157b4c87944671faab8dba95f1b75a9257 100644 (file)
@@ -9,8 +9,8 @@ cOctatonicScale = {
   ges' aes' a' b'
 }
 motif = {
-  c'8. ees'16 ges'8. a'16
-  b'8. aes'16 f'8. d'16
+  c'8. ees'16( ges'8. a'16
+  b'8.) aes'16 f'8. d'16
 }
 
 \score {
index c033498d522a0e26d6a757ab82bb47e480ce9ffa..fe38b07d004589de83be64daa6a6c7dc0f818dff 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
                                 "http://www.musicxml.org/dtds/partwise.dtd">
 <score-partwise>
-  <movement-title>Various piches and interval sizes</movement-title>
+  <movement-title>Various pitches and interval sizes</movement-title>
   <identification>
     <miscellaneous>
       <miscellaneous-field name="description">All pitch intervals in ascending 
@@ -50,6 +50,8 @@
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="2">
       <note>
         <pitch>
           <step>C</step>
@@ -59,6 +61,7 @@
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="3">
       <note>
         <pitch>
           <step>D</step>
@@ -79,6 +85,7 @@
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="4">
       <note>
         <pitch>
           <step>D</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="5">
       <note>
         <pitch>
           <step>D</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="6">
       <note>
         <pitch>
           <step>E</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="7">
       <note>
         <pitch>
           <step>E</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="8">
       <note>
         <pitch>
           <step>E</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="9">
       <note>
         <pitch>
           <step>F</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="10">
       <note>
         <pitch>
           <step>F</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="11">
       <note>
         <pitch>
           <step>F</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="12">
       <note>
         <pitch>
           <step>G</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="13">
       <note>
         <pitch>
           <step>G</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="14">
       <note>
         <pitch>
           <step>G</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="15">
       <note>
         <pitch>
           <step>A</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="16">
       <note>
         <pitch>
           <step>A</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="17">
       <note>
         <pitch>
           <step>A</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="18">
       <note>
         <pitch>
           <step>B</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="19">
       <note>
         <pitch>
           <step>B</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="20">
       <note>
         <pitch>
           <step>B</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="21">
       <note>
         <pitch>
           <step>C</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="22">
       <note>
         <pitch>
           <step>C</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="23">
       <note>
         <pitch>
           <step>C</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="24">
       <note>
         <pitch>
           <step>D</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="25">
       <note>
         <pitch>
           <step>D</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="26">
       <note>
         <pitch>
           <step>D</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="27">
       <note>
         <pitch>
           <step>E</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="28">
       <note>
         <pitch>
           <step>E</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="29">
       <note>
         <pitch>
           <step>E</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="30">
       <note>
         <pitch>
           <step>F</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="31">
       <note>
         <pitch>
           <step>F</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="32">
       <note>
         <pitch>
           <step>F</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="33">
       <note>
         <pitch>
           <step>G</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="34">
       <note>
         <pitch>
           <step>G</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="35">
       <note>
         <pitch>
           <step>G</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="36">
       <note>
         <pitch>
           <step>A</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="37">
       <note>
         <pitch>
           <step>A</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="38">
       <note>
         <pitch>
           <step>A</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
+    </measure>
+    <measure number="39">
       <note>
         <pitch>
           <step>B</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
+    </measure>
+    <measure number="40">
       <note>
         <pitch>
           <step>B</step>
         <voice>1</voice>
         <type>quarter</type>
       </note>
+    </measure>
+    <measure number="41">
       <note>
         <pitch>
           <step>B</step>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>sharp</accidental>
       </note>
       <note>
         <pitch>
         <duration>1</duration>
         <voice>1</voice>
         <type>quarter</type>
+        <accidental>flat</accidental>
       </note>
     </measure>
   </part>
index 139884454859123c62975a1dc5b67de7bdf0354d..8e5bce1184942c60a055b39f70ecf1b836368aa3 100644 (file)
@@ -19,7 +19,7 @@
   <part id="P1">
     <measure number="1">
       <attributes>
-        <divisions>32</divisions>
+        <divisions>64</divisions>
         <key>
           <fifths>0</fifths>
           <mode>major</mode>
       </attributes>
       <note>
         <rest/>
-        <duration>128</duration>
+        <duration>256</duration>
         <voice>1</voice>
+        <type>whole</type>
       </note>
     </measure>
     <!--=======================================================-->
     <measure number="2">
       <note>
         <rest/>
-        <duration>128</duration>
+        <duration>256</duration>
         <voice>1</voice>
+        <type>whole</type>
       </note>
     </measure>
     <!--=======================================================-->
     <measure number="3">
       <note>
         <rest/>
-        <duration>128</duration>
+        <duration>256</duration>
         <voice>1</voice>
         <type>whole</type>
       </note>
     <measure number="4">
       <note>
         <rest/>
-        <duration>64</duration>
+        <duration>128</duration>
         <voice>1</voice>
         <type>half</type>
       </note>
       <note>
         <rest/>
-        <duration>32</duration>
+        <duration>64</duration>
         <voice>1</voice>
         <type>quarter</type>
       </note>
       <note>
         <rest/>
-        <duration>16</duration>
+        <duration>32</duration>
         <voice>1</voice>
         <type>eighth</type>
       </note>
       <note>
         <rest/>
-        <duration>8</duration>
+        <duration>16</duration>
         <voice>1</voice>
         <type>16th</type>
       </note>
       <note>
         <rest/>
-        <duration>4</duration>
+        <duration>8</duration>
         <voice>1</voice>
         <type>32nd</type>
       </note>
       <note>
         <rest/>
-        <duration>2</duration>
+        <duration>4</duration>
         <voice>1</voice>
         <type>64th</type>
       </note>
       <note>
         <rest/>
-        <duration>1</duration>
+        <duration>2</duration>
         <voice>1</voice>
         <type>128th</type>
       </note>
       <note>
         <rest/>
-        <duration>1</duration>
+        <duration>2</duration>
         <voice>1</voice>
         <type>128th</type>
       </note>
     <measure number="5">
       <note>
         <rest/>
-        <duration>96</duration>
+        <duration>192</duration>
         <voice>1</voice>
         <type>half</type>
         <dot/>
       </note>
       <note>
         <rest/>
-        <duration>32</duration>
+        <duration>64</duration>
         <voice>1</voice>
         <type>quarter</type>
       </note>
     <measure number="6">
       <note>
         <rest/>
-        <duration>48</duration>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>96</duration>
         <voice>1</voice>
         <type>quarter</type>
         <dot/>
       </note>
       <note>
         <rest/>
-        <duration>24</duration>
+        <duration>48</duration>
         <voice>1</voice>
         <type>eighth</type>
         <dot/>
       </note>
       <note>
         <rest/>
-        <duration>12</duration>
+        <duration>24</duration>
         <voice>1</voice>
         <type>16th</type>
         <dot/>
       </note>
       <note>
         <rest/>
-        <duration>6</duration>
+        <duration>12</duration>
         <voice>1</voice>
         <type>32nd</type>
         <dot/>
       </note>
       <note>
         <rest/>
-        <duration>3</duration>
+        <duration>6</duration>
         <voice>1</voice>
         <type>64th</type>
         <dot/>
       </note>
       <note>
         <rest/>
-        <duration>2</duration>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>128th</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
         <voice>1</voice>
         <type>128th</type>
         <dot/>
index 26d703613cf6bbc3d4e850f6e493cfb0e8ba3322..177e10a7019f6c73e4827de7abf7e40908eb9e36 100644 (file)
@@ -7,49 +7,46 @@
 
 \version "2.16.0"
 
+#(define (t->m t)
+   "Return the current moment of translator object @var{t}."
+   (ly:context-current-moment (ly:translator-context t)))
+
+engraver_demo =
+#(make-engraver
+   ((initialize translator)
+    (format 1 "\n\n~16a: (initialize)\n" (t->m translator)))
+   ((start-translation-timestep translator)
+    (format 1 "~16a: (start-translation-timestep)\n" (t->m translator)))
+   (listeners
+     ((rest-event engraver event)
+      (let ((grob (ly:engraver-make-grob engraver 'TextScript event)))
+        (ly:grob-set-property! grob 'text "hi")
+        (format 1 "~16a: detected this rest event: ~a\n~16a: created this grob: ~a\n"
+                (t->m engraver) event (t->m engraver) grob))))
+   (acknowledgers
+     ((note-head-interface engraver grob source-engraver)
+      (format 1 "~16a: saw ~a coming from ~a\n"
+              (t->m engraver) grob source-engraver)))
+   (end-acknowledgers
+     ((beam-interface engraver grob source-engraver)
+      (format 1 "~16a: saw end of ~a coming from ~a\n"
+              (t->m engraver) grob source-engraver)))
+   ((process-music translator)
+    (format 1 "~16a: (process-music)\n" (t->m translator)))
+   ((process-acknowledged translator)
+    (format 1 "~16a: (process-acknowledged)\n" (t->m translator)))
+   ((stop-translation-timestep translator)
+    (format 1 "~16a: (stop-translation-timestep)\n" (t->m translator)))
+   ((finalize translator)
+    (format 1 "~16a: (finalize)\n" (t->m translator))))
+
 \layout {
   \context {
     \Voice
     \consists
-    #(make-engraver
-      ((initialize trans)
-       (display (list "initialize"
-                     (ly:context-current-moment
-                      (ly:translator-context trans)) "\n") (current-error-port)))
-      ((start-translation-timestep trans)
-       (display (list "start-trans"
-                     (ly:context-current-moment
-                      (ly:translator-context trans)) "\n") (current-error-port)))
-      (listeners
-       ((rest-event engraver event)
-       (let*
-           ((x (ly:engraver-make-grob engraver 'TextScript event)))
-         (display (list "caught event" event "\ncreate:\n" x "\n") (current-error-port))
-         (ly:grob-set-property! x 'text "hi"))))
-      (acknowledgers
-       ((note-head-interface engraver grob source-engraver)
-       (display (list "saw head: " grob " coming from " source-engraver) (current-error-port))))
-      (end-acknowledgers
-       ((beam-interface engraver grob source-engraver)
-       (display (list "saw end of beam: " grob " coming from " source-engraver) (current-error-port))))
-      ((process-music trans)
-       (display (list "process-music"
-                     (ly:context-current-moment
-                      (ly:translator-context trans)) "\n") (current-error-port)))
-      ((process-acknowledged trans)
-       (display (list "process-acknowledged"
-                     (ly:context-current-moment
-                      (ly:translator-context trans)) "\n") (current-error-port)))
-      ((stop-translation-timestep trans)
-       (display (list "stop-trans"
-                     (ly:context-current-moment
-                      (ly:translator-context trans)) "\n") (current-error-port)))
-      ((finalize trans)
-       (display (list "finalize"
-                     (ly:context-current-moment
-                      (ly:translator-context trans)) "\n") (current-error-port))))
-               }}
-
+    \engraver_demo
+  }
+}
 
 \relative c' {
   c8[ r c]
index 098ef131dbe4c417abd352bf69677aa0dc366e64..02f97ff82971b70c61d8f3425f1fe5d428e5c51c 100644 (file)
@@ -1,23 +1,21 @@
 \header {
-
   texidoc = "Text and trill spanners are attached to note columns, so
   attachments in other staves have no effect on them."
-  
-  }
+}
 
 \layout {
   ragged-right = ##t
-  }
+}
 
 \version "2.17.6"
 <<
-   \new Staff {
+  \new Staff {
     \override TextSpanner.bound-details.left.text = "*"
-      c'16 \startTrillSpan c' c' c' \stopTrillSpan 
-      c'16 \startTextSpan c' c' c' \stopTextSpan 
-   }
-   \new Staff {
-     \override TextScript.self-alignment-X = #RIGHT 
-     \repeat unfold 2 {c'4 _ \markup { "FAT" } } 
-   }
+    c'16 \startTrillSpan c' c' c' \stopTrillSpan
+    c'16 \startTextSpan c' c' c' \stopTextSpan
+  }
+  \new Staff {
+    \override TextScript.self-alignment-X = #RIGHT
+    \repeat unfold 2 {c'4 _ \markup { "LONG" } }
+  }
 >>
diff --git a/input/regression/unassociated-lyrics-alignment.ly b/input/regression/unassociated-lyrics-alignment.ly
new file mode 100644 (file)
index 0000000..b9db9a6
--- /dev/null
@@ -0,0 +1,44 @@
+\version "2.19.9"
+#(set-global-staff-size 30)
+
+\header {
+  texidoc = "Lyrics without an @code{associatedVoice} should align properly.
+If there are notes in the @code{PaperColumn}, they should align to them,
+and when there are no notes, they should align relative to the
+@code{PaperColumn} itself (represented with blue @code{GridLines} here)"
+}
+
+\paper {
+  ragged-right = ##f
+}
+
+\layout {
+  \context {
+    \Voice
+    \consists "Grid_point_engraver"
+    gridInterval = #(ly:make-moment 1/4)
+    \override GridPoint.Y-extent = #'(-1 . 3)
+  }
+  \context {
+    \Staff
+    \consists "Grid_line_span_engraver"
+    \override GridLine.color = #blue
+  }
+}
+
+music = <<
+  \new Staff <<
+    \new Voice { s1*3 } % needed for gridLines
+    \new Voice { d'2 d' <f' g'>1 s1 }
+  >>
+  \new Lyrics { \lyricmode { foo2 bar mmmm1 a2 bom } }
+>>
+
+\markup "default (centered):"
+\music
+
+\markup "right-aligned:"
+{
+  \override Score.LyricText.self-alignment-X = #RIGHT
+  \music
+}
index f9e0e06345187c2534cc69528d130e5bd40359fb..36bfec72a4854cfe7be89f50ceae08fde4b76bdb 100644 (file)
@@ -367,7 +367,7 @@ Align_interface::set_ordered (Grob *me)
 ADD_INTERFACE (Align_interface,
                "Order grobs from top to bottom, left to right, right to left"
                " or bottom to top.  For vertical alignments of staves, the"
-               " @code{break-system-details} of the left"
+               " @code{line-break-system-details} of the left"
                " @rinternals{NonMusicalPaperColumn} may be set to tune"
                " vertical spacing.",
 
index 0057176a9f761c5f6bce9bc17ff419d2a3459c46..b4f1dd33be1384acb258619032f2a8bc80483544 100644 (file)
@@ -42,7 +42,6 @@ protected:
   DECLARE_TRANSLATOR_LISTENER (note);
   DECLARE_TRANSLATOR_LISTENER (rest);
 private:
-  Item *chord_name_;
   vector<Stream_event *> notes_;
 
   Stream_event *rest_event_;
@@ -55,94 +54,91 @@ Chord_name_engraver::finalize ()
 
 Chord_name_engraver::Chord_name_engraver ()
 {
-  chord_name_ = 0;
   rest_event_ = 0;
 }
 
 void
 Chord_name_engraver::process_music ()
 {
-  if (!rest_event_ && !notes_.size ())
-   return;
-
-  chord_name_ = make_item ("ChordName",
-                           rest_event_ ? rest_event_->self_scm () : notes_[0]->self_scm ());
-
-  SCM maybe_markup = chord_name_->get_property_data ("text");
-
-  bool make_markup = !(Text_interface::is_markup (maybe_markup)
-                       || ly_is_procedure (maybe_markup));
+  if (!rest_event_ && notes_.empty ())
+    return;
 
   SCM markup;
-
-  if (rest_event_ && !make_markup) { }
-  else if (rest_event_)
+  SCM bass = SCM_EOL;
+  SCM inversion = SCM_EOL;
+  SCM pitches = SCM_EOL;
+  Item *chord_name = 0;
+
+  // rest events present a hen-and-egg problem with regard to
+  // overriding the text property of the ChordName grob since we
+  // cannot create a ChordName grob, look at its text property and, if
+  // not set, use noChordSymbol to decide whether we should not have
+  // created the grob in the first place.
+  if (rest_event_)
     {
       SCM no_chord_markup = get_property ("noChordSymbol");
       if (!Text_interface::is_markup (no_chord_markup))
         return;
       markup = no_chord_markup;
+      chord_name = make_item ("ChordName", rest_event_->self_scm ());
+      chord_name->set_property ("text", markup);
     }
   else
     {
-      SCM bass = SCM_EOL;
-      SCM inversion = SCM_EOL;
-      SCM pitches = SCM_EOL;
-
-      Stream_event *inversion_event = 0;
-      for (vsize i = 0; i < notes_.size (); i++)
+      chord_name = make_item ("ChordName", notes_[0]->self_scm ());
+      // We cannot actually delay fetching the text property in case
+      // it is a callback since we need to compare the generated
+      // markups for the sake of chordChanges
+      markup = chord_name->get_property ("text");
+      if (!Text_interface::is_markup (markup))
         {
-          Stream_event *n = notes_[i];
-          SCM p = n->get_property ("pitch");
-          if (!unsmob_pitch (p))
-            continue;
-
-          if (n->get_property ("inversion") == SCM_BOOL_T)
+          for (vsize i = 0; i < notes_.size (); i++)
             {
-              inversion_event = n;
-              inversion = p;
+              Stream_event *n = notes_[i];
+              SCM p = n->get_property ("pitch");
+              if (!unsmob_pitch (p))
+                continue;
+
+              if (n->get_property ("bass") == SCM_BOOL_T)
+                bass = p;
+              else
+                {
+                  SCM oct = n->get_property ("octavation");
+                  if (scm_is_number (oct))
+                    {
+                      Pitch orig = unsmob_pitch (p)->transposed (Pitch (-scm_to_int (oct), 0));
+                      pitches = scm_cons (orig.smobbed_copy (), pitches);
+                    }
+                  else
+                    pitches = scm_cons (p, pitches);
+                  if (n->get_property ("inversion") == SCM_BOOL_T)
+                    {
+                      inversion = p;
+                      if (!scm_is_number (oct))
+                        programming_error ("inversion does not have original pitch");
+                    }
+                }
             }
-          else if (n->get_property ("bass") == SCM_BOOL_T)
-            bass = p;
-          else
-            pitches = scm_cons (p, pitches);
-        }
 
-      if (inversion_event)
-        {
-          SCM oct = inversion_event->get_property ("octavation");
-          if (scm_is_number (oct))
-            {
-              Pitch *p = unsmob_pitch (inversion_event->get_property ("pitch"));
-              int octavation = scm_to_int (oct);
-              Pitch orig = p->transposed (Pitch (-octavation, 0, 0));
+          pitches = scm_sort_list (pitches, Pitch::less_p_proc);
 
-              pitches = scm_cons (orig.smobbed_copy (), pitches);
+          SCM name_proc = get_property ("chordNameFunction");
+          markup = scm_call_4 (name_proc, pitches, bass, inversion,
+                               context ()->self_scm ());
+          if (!Text_interface::is_markup (markup))
+            {
+              // Ugh, we created a grob, now we better populate it.
+              // Use an empty string.
+              markup = scm_string (SCM_EOL);
             }
-          else
-            programming_error ("inversion does not have original pitch");
+          chord_name->set_property ("text", markup);
         }
-
-      pitches = scm_sort_list (pitches, Pitch::less_p_proc);
-
-      SCM name_proc = get_property ("chordNameFunction");
-      if (make_markup)
-        markup = scm_call_4 (name_proc, pitches, bass, inversion,
-                             context ()->self_scm ());
     }
-  /*
-    Ugh.
-  */
-  if (make_markup)
-    chord_name_->set_property ("text", markup);
-  else if (Text_interface::is_markup (maybe_markup))
-    markup = maybe_markup;
 
   SCM chord_changes = get_property ("chordChanges");
   SCM last_chord = get_property ("lastChord");
-  if (to_boolean (chord_changes) && scm_is_pair (last_chord)
-      && ly_is_equal (markup, last_chord))
-    chord_name_->set_property ("begin-of-line-visible", SCM_BOOL_T);
+  if (to_boolean (chord_changes) && ly_is_equal (markup, last_chord))
+    chord_name->set_property ("begin-of-line-visible", SCM_BOOL_T);
 
   context ()->set_property ("lastChord", markup);
 }
@@ -164,7 +160,6 @@ Chord_name_engraver::listen_rest (Stream_event *ev)
 void
 Chord_name_engraver::stop_translation_timestep ()
 {
-  chord_name_ = 0;
   notes_.clear ();
   rest_event_ = 0;
 }
index e3371a51c0e0c0fe69469b16988fba46c1a7a5c3..531c3dde3264a017beb05184df008940cdf0f52c 100644 (file)
@@ -81,7 +81,7 @@ Drum_note_performer::process_music ()
             }
 
           Audio_note *p = new Audio_note (*pit, len,
-                                          tie_event, Pitch (0, 0, 0), velocity);
+                                          tie_event, Pitch (0, 0), velocity);
           Audio_element_info info (p, n);
           announce_element (info);
         }
index d1b8cf00b52d931605eacb16c9a179d898d74597..fdf682f7733cd993bd3d0331b67cb859276cc817 100644 (file)
@@ -261,17 +261,14 @@ Dynamic_engraver::acknowledge_note_column (Grob_info info)
     {
       extract_grob_set (info.grob (), "note-heads", heads);
       /*
-        Spacing constraints may require dynamics to be aligned on rests,
+        Spacing constraints may require dynamics to be attached to rests,
         so check for a rest if this note column has no note heads.
       */
       Grob *x_parent = (heads.size ()
-                        ? heads[0]
+                        ? info.grob ()
                         : unsmob_grob (info.grob ()->get_object ("rest")));
       if (x_parent)
-        {
-          script_->set_parent (x_parent, X_AXIS);
-          Self_alignment_interface::set_center_parent (script_, X_AXIS);
-        }
+        script_->set_parent (x_parent, X_AXIS);
     }
 
   if (current_spanner_ && !current_spanner_->get_bound (LEFT))
index d23a5e35f81852ab7088c2f451ea2458a91b6140..b8e7d94df12bc4065e623d8b3c15b4af11306ce8 100644 (file)
@@ -109,8 +109,7 @@ Fingering_engraver::make_script (Direction d, Stream_event *r, int i)
     fingerings for chords need different settings.
   */
   Side_position_interface::set_axis (fingering, Y_AXIS);
-  Self_alignment_interface::set_align_self (fingering, X_AXIS);
-  Self_alignment_interface::set_center_parent (fingering, X_AXIS);
+  Self_alignment_interface::set_aligned_on_parent (fingering, X_AXIS);
 
   // Hmm
   int priority = 200;
index 19d0af73caf6a338f7169991d36b32a6bae452be..95d4081f3938863d160fa5d07d61aca5d3488ee3 100644 (file)
@@ -271,7 +271,12 @@ LY_DEFINE (ly_protects, "ly:protects",
            0, 0, 0, (),
            "Return hash of protected objects.")
 {
+  //scm_protects is available only in Guile versions before 2.1.
+#if SCM_MAJOR_VERSION < 2 || SCM_MAJOR_VERSION == 2 && SCM_MINOR_VERSION < 1
   return scm_protects;
+#else
+  return programming_error ("ly:protects is not supported in Guile 2.1");
+#endif
 }
 
 LY_DEFINE (ly_gettext, "ly:gettext",
index 63e114a3fedf520d08c9df2cd2ecdff7067d70cb..d678ec848a6250fee0b8ca18aa0fae4143d201d5 100644 (file)
@@ -121,15 +121,15 @@ inline SCM ly_bool2scm (bool x) { return scm_from_bool (x); }
 
 inline SCM ly_append2 (SCM x1, SCM x2)
 {
-  return scm_append (scm_listify (x1, x2, SCM_UNDEFINED));
+  return scm_append (scm_list_2 (x1, x2));
 }
 inline SCM ly_append3 (SCM x1, SCM x2, SCM x3)
 {
-  return scm_append (scm_listify (x1, x2, x3, SCM_UNDEFINED));
+  return scm_append (scm_list_3 (x1, x2, x3));
 }
 inline SCM ly_append4 (SCM x1, SCM x2, SCM x3, SCM x4)
 {
-  return scm_append (scm_listify (x1, x2, x3, x4, SCM_UNDEFINED));
+  return scm_append (scm_list_4 (x1, x2, x3, x4));
 }
 
 /*
index 151d9208adc20b66a4b9957845902edd725c38e4..9fdabd296247388778aa3588783f7d8ea5883bb1 100644 (file)
@@ -36,6 +36,7 @@ public:
   static Grob *accidentals (Grob *me);
   static Slice head_positions_interval (Grob *me);
   static Grob *first_head (Grob *me);
+  static Interval calc_main_heads_extent (Grob *me);
   static Grob *get_rest (Grob *me);
   static void set_stem (Grob *me, Grob *);
   static void add_head (Grob *me, Grob *);
index c1638a2539f45bf47121886f31c7b2a2f6cf294c..c0c33b268df023fc549cd93fed1643ceeb322c0a 100644 (file)
@@ -59,6 +59,7 @@ public:
   static bool is_extraneous_column_from_ligature (Grob *);
   static Real minimum_distance (Grob *l, Grob *r);
   static Interval break_align_width (Grob *me, SCM align_sym);
+  static Interval get_interface_extent (Grob *column, SCM iface, Axis a);
 };
 
 #endif // PAPER_COLUMN_HH
index cab0c5092202a2b46f4b2b9cc2c96a89c66039c7..eff3f66d79856ce0ea82faec6b15b441c91fb9b3 100644 (file)
@@ -52,8 +52,7 @@ public:
   int get_notename () const;
   Rational get_alteration () const;
 
-  Pitch (int octave, int notename, Rational accidental);
-  Pitch (int octave, int notename);
+  Pitch (int octave, int notename, Rational accidental = 0);
   Pitch ();
 
   Pitch transposed (Pitch) const;
index 2b34b39eff78b1dd47b09d10b66c54c8555e86bc..867f97bf86da98f90ed792aade88489b9a679750 100644 (file)
@@ -30,18 +30,15 @@ struct Self_alignment_interface
   static SCM aligned_on_self (Grob *me, Axis a, bool pure, int start, int end);
   static SCM centered_on_object (Grob *me, Axis a);
   static SCM aligned_on_parent (Grob *me, Axis a);
-  static void set_center_parent (Grob *me, Axis a);
-  static void set_align_self (Grob *me, Axis a);
+  static void set_aligned_on_parent (Grob *me, Axis a);
 
   DECLARE_SCHEME_CALLBACK (x_aligned_on_self, (SCM element));
   DECLARE_SCHEME_CALLBACK (y_aligned_on_self, (SCM element));
 
   DECLARE_SCHEME_CALLBACK (pure_y_aligned_on_self, (SCM element, SCM start, SCM end));
 
-  DECLARE_SCHEME_CALLBACK (centered_on_note_columns, (SCM element));
   DECLARE_SCHEME_CALLBACK (centered_on_x_parent, (SCM element));
   DECLARE_SCHEME_CALLBACK (centered_on_y_parent, (SCM element));
-  DECLARE_SCHEME_CALLBACK (x_centered_on_y_parent, (SCM element));
   DECLARE_SCHEME_CALLBACK (aligned_on_x_parent, (SCM element));
   DECLARE_SCHEME_CALLBACK (aligned_on_y_parent, (SCM element));
 };
index 5b48b1d78afbdda9303407c2ee136b2ae11d7a2c..07324d230b58d2b0dbd36cc5d233be7d4d63f93f 100644 (file)
@@ -209,7 +209,7 @@ Key_engraver::initialize ()
   context ()->set_property ("keyAlterations", SCM_EOL);
   context ()->set_property ("lastKeyAlterations", SCM_EOL);
 
-  Pitch p (0, 0, 0);
+  Pitch p;
   context ()->set_property ("tonic", p.smobbed_copy ());
 }
 
index 9a3675fe3ad7c06cb3b46aaf0df9e1ea56c5068e..4fcd3f6fa69cd024e4acdc26120905e3041b99fa 100644 (file)
@@ -65,7 +65,7 @@ Key_performer::process_music ()
                     scm_to_int (scm_caar (pitchlist)),
                     ly_scm2rational (scm_cdar (pitchlist)));
 
-      Pitch c_do (0, 0, 0);
+      Pitch c_do;
 
       SCM c_pitchlist
         = ly_transpose_key_alist (pitchlist,
index 6dce40a464ba7b385f0149dd254debd7de9b6ecd..bbe15845a61a77379c070b6839637d69c4c1a507 100644 (file)
@@ -175,18 +175,12 @@ Lyric_engraver::stop_translation_timestep ()
 
           if (head)
             {
-              text_->set_parent (head, X_AXIS);
+              text_->set_parent (head->get_parent(X_AXIS), X_AXIS);
               if (melisma_busy (voice)
                   && !to_boolean (get_property ("ignoreMelismata")))
                 text_->set_property ("self-alignment-X",
                                      get_property ("lyricMelismaAlignment"));
             }
-          else
-            {
-              text_->warning (_ ("Lyric syllable does not have note."
-                                 "  Use \\lyricsto or associatedVoice."));
-              text_->set_property ("X-offset", scm_from_int (0));
-            }
         }
 
       last_text_ = text_;
index 9f460dd981871ea7ab640838d49b5dc71aaf1dd1..3b968e654f87a2c5f3276d4426929e4140df9a9e 100644 (file)
@@ -146,6 +146,7 @@ Multi_measure_rest_engraver::process_music ()
         {
           Side_position_interface::add_support (numbers_[i], mmrest_);
           numbers_[i]->set_parent (mmrest_, Y_AXIS);
+          numbers_[i]->set_parent (mmrest_, X_AXIS);
         }
 
       start_measure_
index 51eb26c6d29a1f89aa20836950cba09dc1f36e22..7f504ae4521115214e411399547634e3aac7b32b 100644 (file)
@@ -288,8 +288,7 @@ New_fingering_engraver::position_scripts (SCM orientations,
         Side_position_interface::add_support (f,
                                               unsmob_grob (ft.head_->get_object ("dot")));
 
-      Self_alignment_interface::set_align_self (f, Y_AXIS);
-      Self_alignment_interface::set_center_parent (f, Y_AXIS);
+      Self_alignment_interface::set_aligned_on_parent (f, Y_AXIS);
       Side_position_interface::set_axis (f, X_AXIS);
 
       f->set_property ("direction", scm_from_int (hordir));
@@ -307,8 +306,7 @@ New_fingering_engraver::position_scripts (SCM orientations,
           f->set_property ("script-priority",
                            scm_from_int (finger_prio + d * ft.position_));
 
-          Self_alignment_interface::set_align_self (f, X_AXIS);
-          Self_alignment_interface::set_center_parent (f, X_AXIS);
+          Self_alignment_interface::set_aligned_on_parent (f, X_AXIS);
           Side_position_interface::set_axis (f, Y_AXIS);
 
           f->set_property ("direction", scm_from_int (d));
index 867542bdbd39fe497b6da103e66572e5840ddf4c..625bed1b2f4cbc27fc507c2be414a2066cae7be9 100644 (file)
@@ -156,6 +156,26 @@ Note_column::first_head (Grob *me)
   return st ? Stem::first_head (st) : 0;
 }
 
+/*
+  Return extent of the noteheads in the "main column",
+  i.e. excluding any suspended noteheads.
+*/
+Interval
+Note_column::calc_main_heads_extent (Grob *me)
+{
+  if (get_stem (me))
+    return first_head (me)->extent (me, X_AXIS);
+  else
+    {
+      // no stems => no suspended noteheads.
+      extract_grob_set (me, "note-heads", heads);
+      if (heads.size())
+        return heads[0]->extent (me, X_AXIS);
+      else
+        return Interval (0, 0);
+    }
+}
+
 /*
   Return the first AccidentalPlacement grob that we find in a note-head.
 */
index 5caf42f221838eebbcd28fd7c5bd4d3c957f5a3a..2aec7501b57e5073d7dbb7277925d71d526ad48d 100644 (file)
@@ -99,7 +99,7 @@ Note_heads_engraver::process_music ()
       if (scm_is_vector (shape_vector))
         {
           SCM scm_tonic = get_property ("tonic");
-          Pitch tonic (0, 0, 0);
+          Pitch tonic;
           if (unsmob_pitch (scm_tonic))
             tonic = *unsmob_pitch (scm_tonic);
 
index 52720d54490738c1579e09d218b0a6cf688f786b..3a1a84cfc5add27da5165e2f8bcffe7399040bbf 100644 (file)
@@ -35,7 +35,7 @@
 #include "text-interface.hh"
 
 /*
- Returns the number of footntoes associated with a given line.
+ Returns the number of footnotes associated with a given line.
 */
 
 vector<Grob *>
index d5ac33b55a4e679c80d341258c296a45029c2b40..1cb1452c852dba5eef1ad055387bbab354df5aa4 100644 (file)
@@ -218,6 +218,23 @@ Paper_column::break_align_width (Grob *me, SCM align_sym)
   return align->extent (p, X_AXIS);
 }
 
+/*
+  Loop through elements of a PaperColumn, find all grobs implementing specified
+  interface and return their combined extent.
+*/
+Interval
+Paper_column::get_interface_extent (Grob *column, SCM iface, Axis a)
+{
+  Interval extent = Interval (0, 0);
+  extract_grob_set (column, "elements", elts);
+
+  for (vsize i = 0; i < elts.size (); i++)
+    if (elts[i]->internal_has_interface (iface))
+      extent.unite (robust_relative_extent (elts[i], elts[i], a));
+
+  return extent;
+}
+
 /*
   Print a:
   - vertical line,
index 0c814a13dd7dae08751f28a32efb403c3c853dd5..d47fa7ce10f9ede0263f7818df3b955a5083371b 100644 (file)
@@ -1744,7 +1744,7 @@ function_arglist_backup:
                        $$ = scm_cons ($4, $3);
                else {
                        $$ = scm_cons (loc_on_music (@3, $1), $3);
-                       MYBACKUP (LYRIC_ELEMENT, $4, @4);
+                       MYBACKUP (SCM_IDENTIFIER, $4, @4);
                }
        }
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_backup UNSIGNED
@@ -2886,7 +2886,7 @@ steno_pitch:
                 if (!scm_is_eq (SCM_INUM0, $2))
                 {
                         Pitch p = *unsmob_pitch ($1);
-                        p = p.transposed (Pitch (scm_to_int ($2),0,0));
+                        p = p.transposed (Pitch (scm_to_int ($2), 0));
                         $$ = p.smobbed_copy ();
                 }
        }
@@ -2901,7 +2901,7 @@ steno_tonic_pitch:
                 if (!scm_is_eq (SCM_INUM0, $2))
                 {
                         Pitch p = *unsmob_pitch ($1);
-                        p = p.transposed (Pitch (scm_to_int ($2),0,0));
+                        p = p.transposed (Pitch (scm_to_int ($2), 0));
                         $$ = p.smobbed_copy ();
                 }
        }
@@ -2913,7 +2913,7 @@ pitch:
                 if (!scm_is_eq (SCM_INUM0, $2))
                 {
                         Pitch p = *unsmob_pitch ($1);
-                        p = p.transposed (Pitch (scm_to_int ($2),0,0));
+                        p = p.transposed (Pitch (scm_to_int ($2), 0));
                         $$ = p.smobbed_copy ();
                 }
        }
index 008081f138f4ee897e2814cf062d04d9292801ac..98d840e0c72c2a13dd104975fef39f836e16f2f3 100644 (file)
@@ -133,6 +133,7 @@ Percent_repeat_engraver::process_music ()
           percent_counter_->set_bound (LEFT, col);
           Side_position_interface::add_support (percent_counter_, percent_);
           percent_counter_->set_parent (percent_, Y_AXIS);
+          percent_counter_->set_parent (percent_, X_AXIS);
         }
       else
         percent_counter_ = 0;
index 110390441899b56a49f84c280af47990fb2fdd60..db5bae653b77b1049370247e30e22362f667a3eb 100644 (file)
@@ -29,8 +29,8 @@ Pitch_interval::Pitch_interval (Pitch p1, Pitch p2)
 
 Pitch_interval::Pitch_interval ()
 {
-  at (LEFT) = Pitch (100, 0, 0);
-  at (RIGHT) = Pitch (-100, 0, 0);
+  at (LEFT) = Pitch (100, 0);
+  at (RIGHT) = Pitch (-100, 0);
 }
 
 bool
@@ -64,8 +64,8 @@ Pitch_lexicographic_interval::Pitch_lexicographic_interval (Pitch p1, Pitch p2)
 
 Pitch_lexicographic_interval::Pitch_lexicographic_interval ()
 {
-  at (LEFT) = Pitch (100, 0, 0);
-  at (RIGHT) = Pitch (-100, 0, 0);
+  at (LEFT) = Pitch (100, 0);
+  at (RIGHT) = Pitch (-100, 0);
 }
 
 bool
index 07a9a096b3051fe4dfec6ff9117ad3a9e2c2bf1c..377c4d0ff3b51cf3375805f5b646068943213750 100644 (file)
@@ -153,8 +153,8 @@ LY_DEFINE (ly_pitch_less_p, "ly:pitch<?",
 
 LY_DEFINE (ly_pitch_diff, "ly:pitch-diff",
            2, 0, 0, (SCM pitch, SCM root),
-           "Return pitch @var{delta} such that @var{pitch} transposed by"
-           " @var{delta} equals @var{root}.")
+           "Return pitch @var{delta} such that @var{root} transposed by"
+           " @var{delta} equals @var{pitch}.")
 {
 
   LY_ASSERT_SMOB (Pitch, pitch, 1);
index e0b7f00cb2887fc6e1c1e9afd194aa0045f86e5d..664a111642362ba1174d1715ded14a1a134d65db 100644 (file)
@@ -79,27 +79,6 @@ Self_alignment_interface::centered_on_x_parent (SCM smob)
   return centered_on_object (unsmob_grob (smob)->get_parent (X_AXIS), X_AXIS);
 }
 
-MAKE_SCHEME_CALLBACK (Self_alignment_interface, centered_on_note_columns, 1);
-SCM
-Self_alignment_interface::centered_on_note_columns (SCM smob)
-{
-  Item *it = unsmob_item (smob)->get_column ();
-  if (!it)
-    return scm_from_double (0.0);
-
-  extract_grob_set (it, "elements", elts);
-  vector<Grob *> ncs;
-  Interval centers;
-  for (vsize i = 0; i < elts.size (); i++)
-    if (Note_column::has_interface (elts[i]))
-      centers.add_point (scm_to_double (centered_on_object (elts[i], X_AXIS)));
-
-  if (centers.is_empty ())
-    return scm_from_double (0.0);
-
-  return scm_from_double (centers.center ());
-}
-
 MAKE_SCHEME_CALLBACK (Self_alignment_interface, centered_on_y_parent, 1);
 SCM
 Self_alignment_interface::centered_on_y_parent (SCM smob)
@@ -107,13 +86,6 @@ Self_alignment_interface::centered_on_y_parent (SCM smob)
   return centered_on_object (unsmob_grob (smob)->get_parent (Y_AXIS), Y_AXIS);
 }
 
-MAKE_SCHEME_CALLBACK (Self_alignment_interface, x_centered_on_y_parent, 1);
-SCM
-Self_alignment_interface::x_centered_on_y_parent (SCM smob)
-{
-  return centered_on_object (unsmob_grob (smob)->get_parent (Y_AXIS), X_AXIS);
-}
-
 MAKE_SCHEME_CALLBACK (Self_alignment_interface, aligned_on_x_parent, 1);
 SCM
 Self_alignment_interface::aligned_on_x_parent (SCM smob)
@@ -132,10 +104,23 @@ SCM
 Self_alignment_interface::aligned_on_parent (Grob *me, Axis a)
 {
   Grob *him = me->get_parent (a);
+  Interval he;
   if (Paper_column::has_interface (him))
-    return scm_from_double (0.0);
-
-  Interval he = him->extent (him, a);
+      /*
+        PaperColumn extents aren't reliable (they depend on size and alignment
+        of PaperColumn's children), so we align on NoteColumn instead.
+        This happens e.g. for lyrics without associatedVoice.
+      */
+    he = Paper_column::get_interface_extent
+              (him, ly_symbol2scm ("note-column-interface"), a);
+  else
+    {
+      if (ly_scm2bool(me->internal_get_property (ly_symbol2scm ("X-align-on-main-noteheads")))
+          && Note_column::has_interface (him))
+        he = Note_column::calc_main_heads_extent(him);
+      else
+        he = him->extent (him, a);
+    }
 
   SCM sym = (a == X_AXIS) ? ly_symbol2scm ("self-alignment-X")
             : ly_symbol2scm ("self-alignment-Y");
@@ -166,18 +151,10 @@ Self_alignment_interface::aligned_on_parent (Grob *me, Axis a)
 }
 
 void
-Self_alignment_interface::set_center_parent (Grob *me, Axis a)
-{
-  add_offset_callback (me,
-                       (a == X_AXIS) ? centered_on_x_parent_proc : centered_on_y_parent_proc,
-                       a);
-}
-
-void
-Self_alignment_interface::set_align_self (Grob *me, Axis a)
+Self_alignment_interface::set_aligned_on_parent (Grob *me, Axis a)
 {
   add_offset_callback (me,
-                       (a == X_AXIS) ? x_aligned_on_self_proc : y_aligned_on_self_proc,
+                       (a == X_AXIS) ? aligned_on_x_parent_proc : aligned_on_y_parent_proc,
                        a);
 }
 
@@ -198,4 +175,5 @@ ADD_INTERFACE (Self_alignment_interface,
                /* properties */
                "self-alignment-X "
                "self-alignment-Y "
+               "X-align-on-main-noteheads "
               );
index 5d0485f46e4007bc519a242415957a90fc02e92e..7c36f1755b5701a45d2ea42aea9b7b0bf7a60963 100644 (file)
@@ -183,6 +183,10 @@ Spanner::get_bound (Direction d) const
 /*
   Set the items that this spanner spans. If D == LEFT, we also set the
   X-axis parent of THIS to S.
+
+  For example, when a slur crosses a line break, it's broken into two
+  pieces.  The second piece shouldn't be positioned relative to the
+  original NoteColumn, but rather to the PaperColumn after the break.
 */
 void
 Spanner::set_bound (Direction d, Grob *s)
@@ -200,7 +204,14 @@ Spanner::set_bound (Direction d, Grob *s)
      We check for System to prevent the column -> line_of_score
      -> column -> line_of_score -> etc situation */
   if (d == LEFT && !dynamic_cast<System *> (this))
-    set_parent (i, X_AXIS);
+    /*
+      If the X-parent is a spanner, it will be split across linebreaks, too,
+      so we shouldn't have to overwrite it with the bound. Also, we need
+      original parent for alignment.
+      This happens e.g. for MultiMeasureRestNumbers and PercentRepeatCounters.
+    */
+    if (!dynamic_cast <Spanner *> (this->get_parent (X_AXIS)))
+      set_parent (i, X_AXIS);
 
   /*
     Signal that this column needs to be kept alive. They need to be
index f4123b9891527abc9c8633c7abe3f48a1c77fd6f..3963ee44529a5c9cc1565372825bb52ad63d41c6 100644 (file)
@@ -189,7 +189,6 @@ Spring::set_blocking_force (Real f)
 
   blocking_force_ = -infinity_f;
   min_distance_ = length (f);
-  distance_ = max (distance_, min_distance_);
   update_blocking_force ();
 }
 
index f8028e424a2cec1f0f95e8deb9355d9471787c29..f72605fc26496c6d69cd7919e6bbf5099df20c52 100644 (file)
@@ -52,8 +52,9 @@ LY_DEFINE (ly_position_on_line_p, "ly:position-on-line?",
 
 LY_DEFINE (ly_staff_symbol_line_thickness, "ly:staff-symbol-line-thickness",
            1, 0, 0, (SCM grob),
-           "Returns the @code{line-thickness} of the staff associated"
-           " with @var{grob}.")
+           "Returns the current staff-line thickness in the staff"
+           " associated with @var{grob}, expressed as a multiple of the"
+           " current staff-space height.")
 {
   LY_ASSERT_SMOB (Grob, grob, 1);
   Grob *g = unsmob_grob (grob);
@@ -63,8 +64,10 @@ LY_DEFINE (ly_staff_symbol_line_thickness, "ly:staff-symbol-line-thickness",
 
 LY_DEFINE (ly_staff_symbol_staff_space, "ly:staff-symbol-staff-space",
            1, 0, 0, (SCM grob),
-           "Returns the @code{staff-space} of the staff associated"
-           " with @var{grob}.")
+           "Returns the current staff-space height in the staff"
+           " associated with @var{grob}, expressed as a multiple of the"
+           " default height of a staff-space in the traditional"
+           " five-line staff.")
 {
   LY_ASSERT_SMOB (Grob, grob, 1);
   Grob *g = unsmob_grob (grob);
index 39a77a3858fea8ab3d6a7da92df1f26182830439..cc488e312570ede4a4cc6270ab46b110c0431dee 100644 (file)
@@ -1152,6 +1152,7 @@ ADD_INTERFACE (Stem,
                "default-direction "
                "details "
                "direction "
+               "double-stem-separation "
                "duration-log "
                "flag "
                "french-beaming "
index 27f6b811e6157dd1514b883d03ca90edbd0710c6..2a3dfa3cd10ee70bcc340a8c673ee463c033cd5a 100644 (file)
@@ -31,7 +31,7 @@ LY_DEFINE (ly_make_stream_event, "ly:make-stream-event",
            "Create a stream event of class @var{cl} with the given"
            " mutable property list.")
 {
-  LY_ASSERT_TYPE (ly_is_symbol, cl, 1);
+  LY_ASSERT_TYPE (ly_is_pair, cl, 1);
 
   /* should be scm_list_p, but scm_list_p is expensive. */
   LY_ASSERT_TYPE (scm_is_pair, proplist, 2);
index ffd669ef80575f192ffc23e5be7ff091bfc401e8..373cbf7ac7ad9119b25029019fa685ff4551b9c3 100644 (file)
@@ -20,6 +20,8 @@
 #include "directional-element-interface.hh"
 #include "engraver.hh"
 #include "item.hh"
+#include "note-column.hh"
+#include "pointer-group-interface.hh"
 #include "side-position-interface.hh"
 #include "stream-event.hh"
 #include "text-interface.hh"
 /**
    typeset directions that are  plain text.
 */
+
 class Text_engraver : public Engraver
 {
   vector<Stream_event *> evs_;
+  vector<Grob *> scripts_;
 public:
   TRANSLATOR_DECLARATIONS (Text_engraver);
 protected:
   void stop_translation_timestep ();
   void process_music ();
 
+  DECLARE_ACKNOWLEDGER (note_column);
   DECLARE_TRANSLATOR_LISTENER (text_script);
 };
 
@@ -53,26 +58,44 @@ Text_engraver::process_music ()
 {
   for (vsize i = 0; i < evs_.size (); i++)
     {
-      Stream_event *r = evs_[i];
+      Stream_event *ev = evs_[i];
 
-      // URG: Text vs TextScript
-      Item *text = make_item ("TextScript", r->self_scm ());
+      Item *script = make_item ("TextScript", ev->self_scm ());
+      scripts_.push_back (script);
 
-      int priority = robust_scm2int (text->get_property ("script-priority"),
+      int priority = robust_scm2int (script->get_property ("script-priority"),
                                      200);
 
       /* see script-engraver.cc */
       priority += i;
 
-      text->set_property ("script-priority", scm_from_int (priority));
+      script->set_property ("script-priority", scm_from_int (priority));
 
-      Direction dir = to_dir (r->get_property ("direction"));
+      Direction dir = to_dir (ev->get_property ("direction"));
       if (dir)
-        set_grob_direction (text, dir);
+        set_grob_direction (script, dir);
+
+      SCM mark = ev->get_property ("text");
+
+      script->set_property ("text", mark);
+    }
+}
 
-      SCM mark = r->get_property ("text");
+void
+Text_engraver::acknowledge_note_column (Grob_info info)
+{
+  // Make note column (or rest, if there are no heads) the parent of the script.
+  extract_grob_set (info.grob (), "note-heads", heads);
+  Grob *x_parent = (heads.size ()
+                    ? info.grob ()
+                    : unsmob_grob (info.grob ()->get_object ("rest")));
 
-      text->set_property ("text", mark);
+  for (vsize i = 0; i < scripts_.size (); i++)
+    {
+      Grob *el = scripts_[i];
+
+      if (el && !el->get_parent (X_AXIS) && x_parent)
+        el->set_parent (x_parent, X_AXIS);
     }
 }
 
@@ -80,12 +103,15 @@ void
 Text_engraver::stop_translation_timestep ()
 {
   evs_.clear ();
+  scripts_.clear ();
 }
 
 Text_engraver::Text_engraver ()
 {
 }
 
+ADD_ACKNOWLEDGER (Text_engraver, note_column);
+
 ADD_TRANSLATOR (Text_engraver,
                 /* doc */
                 "Create text scripts.",
index b09c00757a51145d6d493e9ad2016e173dc175f5..5c341cf02896430e9e4b208e6d4ccaa607cdfb76 100644 (file)
@@ -23,7 +23,7 @@ That's it.  For more information, visit http://lilypond.org .
 
 %}
 
-\version "2.19.8"  % necessary for upgrading to future LilyPond versions.
+\version "2.19.10"  % necessary for upgrading to future LilyPond versions.
 
 \header{
   title = "A scale in LilyPond"
index 5655a7334c18a67617813afee76b1aba7c1b521e..94949cb20c2e943fbe7717b3a9fe528bb6657705 100644 (file)
@@ -32,7 +32,7 @@ Good luck with LilyPond!  Happy engraving.
 
 %}
 
-\version "2.19.8"  % necessary for upgrading to future LilyPond versions.
+\version "2.19.10"  % necessary for upgrading to future LilyPond versions.
 
 \header{
   title = "A scale in LilyPond"
index ebfff6a2fcd2889c14b287db84a28d6bc7d2a10e..ec34cd64c33fa1187504bfc9ebd02f5a14ec4768 100644 (file)
@@ -420,13 +420,6 @@ a collection of staves, with a bracket in front and spanning bar lines."
   \override DynamicLineSpanner.outside-staff-priority = ##f
   \override DynamicText.outside-staff-priority = ##f
   \override Hairpin.outside-staff-priority = ##f
-  \override DynamicText.X-offset =
-  #(ly:make-simple-closure
-    `(,+
-      ,(ly:make-simple-closure
-         (list ly:self-alignment-interface::centered-on-note-columns))
-      ,(ly:make-simple-closure
-        (list ly:self-alignment-interface::x-aligned-on-self))))
 
   \description "Holds a single line of dynamics, which will be
 centered between the staves surrounding this context."
index 9e5d3c223b8c32db59a70585bd2bdf7f8478c278..65b4a6db7aff6330e5c55d4d37469c5cafdfb8d8 100644 (file)
@@ -633,26 +633,119 @@ languageRestore =
 
 
 magnifyMusic =
-#(define-music-function (parser location mag mus) (number? ly:music?)
-   (_i "Magnify the notation of @var{mus} without changing the
-staff-size, using @var{mag} as a size factor.  Stems, beams, and
-horizontal spacing are adjusted automatically.")
+#(define-music-function (parser location mag music) (positive? ly:music?)
+   (_i "Magnify the notation of @var{music} without changing the
+staff-size, using @var{mag} as a size factor.  Stems, beams,
+slurs, ties, and horizontal spacing are adjusted automatically.")
+
+   ;; these props are NOT allowed to shrink below default size
+   (define unshrinkable-props
+     '(
+       ;; stems
+       (Stem thickness)
+
+       ;; slurs
+       (Slur line-thickness)
+       (Slur thickness)
+       (PhrasingSlur line-thickness)
+       (PhrasingSlur thickness)
+
+       ;; ties
+       (Tie line-thickness)
+       (Tie thickness)
+       (LaissezVibrerTie line-thickness)
+       (LaissezVibrerTie thickness)
+       (RepeatTie line-thickness)
+       (RepeatTie thickness)
+       ))
+
+   ;; these props ARE allowed to shrink below default size
+   (define shrinkable-props
+     '(
+       ;; TODO: uncomment spacing-increment here once Issue 3987 is fixed
+       ;; override at the 'Score level
+       ;(SpacingSpanner spacing-increment)
+
+       ;; lengths and heights
+       (Beam length-fraction)
+       (Stem length-fraction)
+       (Stem beamlet-default-length)
+       (Slur height-limit)
+       (Slur minimum-length)
+       (PhrasingSlur height-limit)
+       (PhrasingSlur minimum-length)
+
+       ;; Beam.beam-thickness is dealt with separately below
+       ))
    #{
-     \set fontSize = #(magnification->font-size mag)
-     % gives beam-thickness=0.48 when mag=1 (like default),
-     % gives beam-thickness=0.35 when mag=0.63 (like CueVoice)
-     \temporary \override Beam.beam-thickness = #(+ 119/925 (* mag 13/37))
-     \temporary \override Beam.length-fraction = #mag
-     \temporary \override Stem.length-fraction = #mag
-     \temporary \override Stem.thickness = #(* 1.3 (max 1 mag))
-     \temporary \override Score.SpacingSpanner.spacing-increment = #(* 1.2 mag)
-     #mus
-     \set fontSize = 0
-     \revert Beam.beam-thickness
-     \revert Beam.length-fraction
-     \revert Stem.length-fraction
-     \revert Stem.thickness
-     \revert Score.SpacingSpanner.spacing-increment
+     \context Bottom {
+       %% TODO: uncomment \newSpacingSection once Issue 3990 is fixed
+       %\newSpacingSection
+       #(scale-fontSize 'magnifyMusic mag)
+       #(scale-props    'magnifyMusic mag #f unshrinkable-props)
+       #(scale-props    'magnifyMusic mag #t shrinkable-props)
+       #(scale-beam-thickness mag)
+
+       #music
+
+       %% TODO: uncomment \newSpacingSection once Issue 3990 is fixed
+       %\newSpacingSection
+       %% reverse engineer the former fontSize value instead of using \unset
+       #(revert-fontSize 'magnifyMusic mag)
+       #(revert-props    'magnifyMusic mag (append unshrinkable-props
+                                                   shrinkable-props
+                                                   '((Beam beam-thickness))))
+     }
+   #})
+
+magnifyStaff =
+#(define-music-function (parser location mag) (positive?)
+   (_i "Change the size of the staff, adjusting notation size and
+horizontal spacing automatically, using @var{mag} as a size factor.")
+
+   ;; these props are NOT allowed to shrink below default size
+   (define unshrinkable-props
+     '((StaffSymbol thickness)))
+
+   ;; these props ARE allowed to shrink below default size
+   (define shrinkable-props
+     (let ((space-alist-props
+            (find-all-space-alist-props all-grob-descriptions)))
+       (append
+         space-alist-props
+         '(
+           ;; override at the 'Score level
+           (SpacingSpanner spacing-increment)
+
+           (StaffSymbol staff-space)
+           (BarLine kern)
+           (BarLine segno-kern)
+           (BarLine hair-thickness)
+           (BarLine thick-thickness)
+           (Stem beamlet-default-length)
+           ))))
+
+   #{
+     \stopStaff
+
+     %% revert settings from last time
+     %% (but only if \magnifyStaff has already been used
+     %% and the staff magnification is changing)
+     #(revert-fontSize 'magnifyStaff mag)
+     #(revert-props    'magnifyStaff mag (append unshrinkable-props
+                                                 shrinkable-props))
+
+     %% scale settings
+     %% (but only if staff magnification is changing)
+     #(scale-fontSize 'magnifyStaff mag)
+     #(scale-props    'magnifyStaff mag #f unshrinkable-props)
+     #(scale-props    'magnifyStaff mag #t shrinkable-props)
+
+     %% this might cause problems until Issue 3990 is fixed
+     \newSpacingSection
+
+     \startStaff
+     \set Staff.magnifyStaffValue = #mag
    #})
 
 makeClusters =
@@ -910,100 +1003,101 @@ Example:
   C = { e e | f f | }
 @end verbatim
 ")
+   (define voice-count (length voice-ids))
    (define (bar-check? m)
      "Checks whether m is a bar check."
      (eq? (ly:music-property m 'name) 'BarCheck))
+   (define (recurse-and-split-list lst)
+     "Return either a list of music lists split along barchecks, or @code{#f}."
+     (if (any bar-check? lst)
+         (let* ((voices (apply circular-list (make-list voice-count '())))
+                (current-voices voices)
+                (current-sequence '()))
+           ;;
+           ;; utilities
+           (define (push-music m)
+             "Push the music expression into the current sequence"
+             (set! current-sequence (cons m current-sequence)))
+           (define (change-voice)
+             "Store the previously built sequence into the current voice and
+change to the following voice."
+             (set-car! current-voices
+                       (cons (reverse! current-sequence)
+                             (car current-voices)))
+             (set! current-sequence '())
+             (set! current-voices (cdr current-voices)))
+           (for-each (lambda (m)
+                       (let ((split? (recurse-and-split m)))
+                         (if split?
+                             (for-each
+                              (lambda (m)
+                                (push-music m)
+                                (change-voice))
+                              split?)
+                             (begin
+                               (push-music m)
+                               (if (bar-check? m) (change-voice))))))
+                     lst)
+           (if (pair? current-sequence) (change-voice))
+           ;; un-circularize `voices' and reorder the voices
+           (set! voices (map reverse!
+                             (list-head voices voice-count)))
+           ;; check sequence length
+           (apply for-each (lambda seqs
+                             (define (seq-len seq)
+                               (reduce ly:moment-add
+                                       (ly:make-moment 0)
+                                       (map ly:music-length seq)))
+                             (let ((moment-reference (seq-len (car seqs))))
+                               (for-each (lambda (seq)
+                                           (if (not (equal? (seq-len seq)
+                                                            moment-reference))
+                                               (ly:music-warning
+                                                (if (pair? seq)
+                                                    (last seq)
+                                                    (caar seqs))
+                                                (_ "Bars in parallel music don't have the same length"))))
+                                         seqs)))
+                  voices)
+           (map concatenate! voices))
+         (let ((deeper (map recurse-and-split lst)))
+           (and (any pair? deeper)
+                (apply zip (map
+                            (lambda (m split)
+                              (or split
+                                  (ly:music-deep-copy (make-list voice-count m))))
+                            lst deeper))))))
    (define (recurse-and-split music)
      "This returns either a list of music split along barchecks, or
 @code{#f}."
-     (let ((elt (ly:music-property music 'element))
-           (elts (ly:music-property music 'elements)))
-       (cond ((ly:music? elt)
-              (let ((lst (recurse-and-split elt)))
-                (and lst
-                     (map
-                      (lambda (x)
-                        (let ((res (music-clone music 'element x)))
-                          (if (ly:input-location?
-                               (ly:music-property x 'origin))
-                              (set! (ly:music-property res 'origin)
-                                    (ly:music-property x 'origin)))
-                          res))
-                      lst))))
-             ((any bar-check? elts)
-              (let* ((voices (apply circular-list
-                                    (make-list (length voice-ids)
-                                               '())))
-                     (current-voices voices)
-                     (current-sequence '()))
-                ;;
-                ;; utilities
-                (define (push-music m)
-                  "Push the music expression into the current sequence"
-                  (set! current-sequence (cons m current-sequence)))
-                (define (change-voice)
-                  "Stores the previously built sequence into the current voice and
-       change to the following voice."
-                  (set-car! current-voices
-                            (cons (reverse! current-sequence)
-                                  (car current-voices)))
-                  (set! current-sequence '())
-                  (set! current-voices (cdr current-voices)))
-                (for-each (lambda (m)
-                            (let ((split? (recurse-and-split m)))
-                              (if split?
-                                  (for-each
-                                   (lambda (m)
-                                     (push-music m)
-                                     (change-voice))
-                                   split?)
-                                  (begin
-                                    (push-music m)
-                                    (if (bar-check? m) (change-voice))))))
-                          elts)
-                (if (pair? current-sequence) (change-voice))
-                ;; un-circularize `voices' and reorder the voices
-
-                (set! voices (map reverse!
-                                  (list-head voices (length voice-ids))))
-
-                ;; check sequence length
-                (apply for-each (lambda seqs
-                                  (define (seq-len seq)
-                                    (reduce ly:moment-add
-                                            (ly:make-moment 0)
-                                            (map ly:music-length seq)))
-                                  (let ((moment-reference (seq-len (car seqs))))
-                                    (for-each (lambda (seq)
-                                                (if (not (equal? (seq-len seq)
-                                                                 moment-reference))
-                                                    (ly:music-warning
-                                                     (if (pair? seq)
-                                                         (last seq)
-                                                         (caar seqs))
-                                                     (_ "Bars in parallel music don't have the same length"))))
-                                              seqs)))
-                       voices)
-                (map
-                 (lambda (lst)
-                   (set! lst (concatenate! lst))
-                   (let ((res (music-clone music 'elements lst)))
-                     (if (and (pair? lst)
-                              (ly:input-location? (ly:music-property
-                                                   (car lst)
-                                                   'origin)))
-                         (set! (ly:music-property res 'origin)
-                               (ly:music-property (car lst) 'origin)))
-                     res))
-                 voices)))
-             (else #f))))
+     (let* ((elt (ly:music-property music 'element))
+            (elts (ly:music-property music 'elements))
+            (split-elt (and (ly:music? elt) (recurse-and-split elt)))
+            (split-elts (and (pair? elts) (recurse-and-split-list elts))))
+       (and (or split-elt split-elts)
+            (map
+             (lambda (e es)
+               (apply music-clone music
+                      (append
+                       ;; reassigning the origin of the parent only
+                       ;; makes sense if the first expression in the
+                       ;; result is from a distributed origin
+                       (let ((origin
+                              (if (ly:music? elt)
+                                  (and (ly:music? e) (ly:music-property e 'origin #f))
+                                  (and (pair? es) (ly:music-property (car es) 'origin #f)))))
+                         (if origin (list 'origin origin) '()))
+                       (if (ly:music? e) (list 'element e) '())
+                       (if (pair? es) (list 'elements es) '()))))
+             (or split-elt (circular-list #f))
+             (or split-elts (circular-list #f))))))
    (let ((voices (recurse-and-split music)))
      (if voices
          ;;
          ;; bind voice identifiers to the voices
          (for-each (lambda (voice-id voice)
                      (ly:parser-define! parser voice-id voice))
-         voice-ids voices)
+                   voice-ids voices)
          (ly:music-warning music
                            (_ "ignoring parallel music without barchecks")))))
 
index c7cdb60f2ac33ca4f30fc661f55076ecaf1cf0a5..4de6ae201c5cb345a140cfb313eeb9071ee52916 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -620,8 +620,8 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr "\\bar \".\" produeix ara una línia divisòria gruixuda.\n"
 
 #: convertrules.py:2849
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
-msgstr "Els paràmetres de discontinuïtat per a lligadures d'expressió i d'unió estan ara a 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
+msgstr "Els paràmetres de discontinuïtat per a lligadures d'expressió i d'unió estan ara a 'dash-definition.\n"
 
 #: convertrules.py:2854
 msgid ""
index 23a8e371dcac525a20ce4b232e0fe6ac44683dd5..2fe5cf6ffd7ffc447e3063e5bdb395c62511a7a8 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -583,8 +583,8 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr "\\bar \".\" nyní vytváří silnou taktovou čáru.\n"
 
 #: convertrules.py:2848
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
-msgstr "Parametry čárky pro legatové obloučky a ligatury jsou nyní v 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
+msgstr "Parametry čárky pro legatové obloučky a ligatury jsou nyní v 'dash-definition.\n"
 
 #: convertrules.py:2853
 msgid ""
index b1298eb5405ae64f50ae7596361f4980095e8268..465e9e5e32f1e745510eee9f22224c173235f1e8 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -622,8 +622,8 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr "\\bar  \".\" erstellt jetzt einen dicken Taktstrich.\n"
 
 #: convertrules.py:2849
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
-msgstr "Strichelunsparameter für Binde- und Legatobögen sind jetzt in 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
+msgstr "Strichelunsparameter für Binde- und Legatobögen sind jetzt in 'dash-definition.\n"
 
 #: convertrules.py:2854
 msgid ""
index 9ef44c3a130135aa1ecc8822bccdb93fbc6f443c..f578a7b762fe84bbc8db3cf0da6c42687050b380 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -547,8 +547,8 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr "Το \\bar \".\" τώρα παράγει χοντρή γραμμή μέτρου.\n"
 
 #: convertrules.py:2912
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
-msgstr "Οι παράμετροι παύλας για ενωτικά και δεσμούς βρίσκονται τώρα στο 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
+msgstr "Οι παράμετροι παύλας για ενωτικά και δεσμούς βρίσκονται τώρα στο 'dash-definition.\n"
 
 #: convertrules.py:2917
 msgid ""
index fb3de779cfe8d19ba28e5e94961d311997a70b9f..df69d720e852cae3e115f0563256b200520c4bea 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -619,8 +619,8 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr "\\bar \".\" nun produktas dikan taktostrekon.\n"
 
 #: convertrules.py:2849
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
-msgstr "Strekaj parametroj por ligarkoj kaj ligaturoj estas nun en 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
+msgstr "Strekaj parametroj por ligarkoj kaj ligaturoj estas nun en 'dash-definition.\n"
 
 #: convertrules.py:2854
 msgid ""
index b426376fec2f310ee2f684bf902b489bcfdd188d..c92cf7e332dc5a03f05812f7a9cfa71b6ebfb78b 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -627,10 +627,10 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr "\\bar \".\" ahora produce una línea divisoria gruesa.\n"
 
 #: convertrules.py:2849
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
 msgstr ""
 "Los parámetros de discontinuidad para las ligaduras\n"
-"de expresión y de unión ahora están en 'dash-details.\n"
+"de expresión y de unión ahora están en 'dash-definition.\n"
 
 #: convertrules.py:2854
 msgid ""
index f6196309224f550c17b8f520219dd66e7c63971b..fd58545747b77d88ba31b63b8d990354dfbb566f 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -629,8 +629,8 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr "\\bar \".\" produit désormais une barre épaisse.\n"
 
 #: convertrules.py:2849
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
-msgstr "Les paramètres du pointillé des liaisons sont gérés par `dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
+msgstr "Les paramètres du pointillé des liaisons sont gérés par `dash-definition.\n"
 
 #: convertrules.py:2854
 msgid ""
index 7992882887aa362dfbe1c71408f62b9826a388eb..a7872d9b79bb3daeff98ed3c1634583835f53fa3 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -622,8 +622,8 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr "\\bar \".\" ora crea una stanghetta spessa.\n"
 
 #: convertrules.py:2849
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
-msgstr "I parametri del tratteggiato per le legature di portamento e di valore si trovano ora in 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
+msgstr "I parametri del tratteggiato per le legature di portamento e di valore si trovano ora in 'dash-definition.\n"
 
 #: convertrules.py:2854
 msgid ""
index e8c4849776dab17ba0fd0c687257ca26c8a3f0e7..bef615d17832975b2fcea602f2dc5a07c1926aa7 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -550,7 +550,7 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr ""
 
 #: convertrules.py:2848
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
 msgstr ""
 
 #: convertrules.py:2853
index 558ca2b134fc16443c29e55e823a61917f99b580..ce445c6c9ced39dfa6e296dfad6ff392642a9b11 100644 (file)
@@ -6,10 +6,10 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.19.8\n"
+"Project-Id-Version: lilypond 2.19.10\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu."
 "lilypond.bugs\n"
-"POT-Creation-Date: 2014-06-15 16:22+0100\n"
+"POT-Creation-Date: 2014-07-13 15:39+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -570,7 +570,7 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr ""
 
 #: convertrules.py:2849
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
 msgstr ""
 
 #: convertrules.py:2854
@@ -2171,8 +2171,10 @@ msgstr ""
 msgid "cannot find Voice `%s'"
 msgstr ""
 
-#: lyric-engraver.cc:186
-msgid "Lyric syllable does not have note.  Use \\lyricsto or associatedVoice."
+#: lyric-engraver.cc:185
+msgid ""
+"Aligning lyric syllables to notes was requested, but there are no notes in "
+"the specified context. Syllable will be attached to a PaperColumn instead."
 msgstr ""
 
 #: main.cc:104
@@ -2720,7 +2722,7 @@ msgstr ""
 msgid "Conversion of string `%s' to UTF-16be failed: %s"
 msgstr ""
 
-#: percent-repeat-engraver.cc:147
+#: percent-repeat-engraver.cc:148
 msgid "unterminated percent repeat"
 msgstr ""
 
@@ -3650,12 +3652,12 @@ msgstr ""
 msgid "~a function cannot return ~a"
 msgstr ""
 
-#: ly-syntax-constructors.scm:75
+#: ly-syntax-constructors.scm:76
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr ""
 
-#: ly-syntax-constructors.scm:199
+#: ly-syntax-constructors.scm:200
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr ""
@@ -3727,30 +3729,30 @@ msgstr ""
 msgid "music expected: ~S"
 msgstr ""
 
-#: music-functions.scm:1244
+#: music-functions.scm:1246
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
 msgstr ""
 
-#: music-functions.scm:1383
+#: music-functions.scm:1386
 msgid "Add @var{octave-shift} to the octave of @var{pitch}."
 msgstr ""
 
-#: music-functions.scm:1446
+#: music-functions.scm:1449
 #, scheme-format
 msgid "Unknown octaveness type: ~S "
 msgstr ""
 
-#: music-functions.scm:1447
+#: music-functions.scm:1450
 msgid "Defaulting to 'any-octave."
 msgstr ""
 
-#: music-functions.scm:1833
+#: music-functions.scm:1838
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr ""
 
-#: music-functions.scm:2051
+#: music-functions.scm:2056
 msgid "Missing duration"
 msgstr ""
 
@@ -3827,40 +3829,40 @@ msgstr ""
 msgid "assertion failed: ~S"
 msgstr ""
 
-#: translation-functions.scm:388
+#: translation-functions.scm:389
 #, scheme-format
 msgid "Negative fret for pitch ~a on string ~a"
 msgstr ""
 
-#: translation-functions.scm:391
+#: translation-functions.scm:392
 #, scheme-format
 msgid "Missing fret for pitch ~a on string ~a"
 msgstr ""
 
-#: translation-functions.scm:434
+#: translation-functions.scm:435
 #, scheme-format
 msgid "No open string for pitch ~a"
 msgstr ""
 
-#: translation-functions.scm:449 translation-functions.scm:461
+#: translation-functions.scm:450 translation-functions.scm:462
 #, scheme-format
 msgid "Requested string for pitch requires negative fret: string ~a pitch ~a"
 msgstr ""
 
-#: translation-functions.scm:452
+#: translation-functions.scm:453
 msgid "Ignoring string request and recalculating."
 msgstr ""
 
-#: translation-functions.scm:464
+#: translation-functions.scm:465
 msgid "Ignoring note in tablature."
 msgstr ""
 
-#: translation-functions.scm:489
+#: translation-functions.scm:490
 #, scheme-format
 msgid "No string for pitch ~a (given frets ~a)"
 msgstr ""
 
-#: translation-functions.scm:594
+#: translation-functions.scm:595
 #, scheme-format
 msgid ""
 "No label for fret ~a (on string ~a);\n"
index 596fa9fcf3fab956c753dc08146f5a56aca1a6e5..ceec43aa8e7a323c815cda02be8f0d042d37fc1d 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -576,7 +576,7 @@ msgid "\\bar \".\" now produces a thick barline.\n"
 msgstr ""
 
 #: convertrules.py:2849
-msgid "Dash parameters for slurs and ties are now in 'dash-details.\n"
+msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
 msgstr ""
 
 #: convertrules.py:2854
index 5eb2a75bfc4f17bbcea91068518c2e928b502d99..c506bc15428d37e88832358748d50e7600d72797 100644 (file)
@@ -2846,7 +2846,7 @@ def conv(str):
     if re.search("(Slur|Tie)\w+#\'dash-fraction", str) \
         or re.search("(Slur|Tie)\w+#\'dash-period", str):
         stderr_write (NOT_SMART % "dash-fraction, dash-period")
-        stderr_write (_ ("Dash parameters for slurs and ties are now in \'dash-details.\n"))
+        stderr_write (_ ("Dash parameters for slurs and ties are now in \'dash-definition.\n"))
         stderr_write (UPDATE_MANUALLY)
     return str
 
@@ -3450,7 +3450,7 @@ def conv (str):
         if m.group (1):
             return m.group (0)
         x = m.group (2) + m.group (4)
-        
+
         if m.group (3):
             x = x + re.sub (r"(\s*)(" + symbol_list + ")", fn_path_replace,
                             m.group (3))
@@ -3718,6 +3718,11 @@ def conv(str):
     str = re.sub (r'\blocalKeySignature\b', 'localAlterations', str)
     return str
 
+@rule ((2, 19, 11), "thin-kern -> segno-kern")
+def conv(str):
+    str = re.sub (r'\bthin-kern\b', 'segno-kern', str)
+    return str
+
 # Guidelines to write rules (please keep this at the end of this file)
 #
 # - keep at most one rule per version; if several conversions should be done,
index ff2d3f29b4a35d30cee581fa8f31ac096b06acb5..e3e295075de7d7cdf909acd39b66b210eaaf7da3 100644 (file)
@@ -440,14 +440,14 @@ is not used within the routine."
 the segno sign is drawn over the double bar line; otherwise, it
 draws the span bar variant, i.e. without the segno sign."
   (let* ((line-thickness (layout-line-thickness grob))
-         (thinkern (* (ly:grob-property grob 'thin-kern 1) line-thickness))
+         (segno-kern (* (ly:grob-property grob 'segno-kern 1) line-thickness))
          (thin-stil (make-simple-bar-line grob extent))
          (double-line-stil (ly:stencil-combine-at-edge
                             thin-stil
                             X
                             LEFT
                             thin-stil
-                            thinkern))
+                            segno-kern))
          (segno (ly:font-get-glyph (ly:grob-default-font grob)
                                    "scripts.varsegno"))
          (stencil (ly:stencil-add
@@ -459,7 +459,7 @@ draws the span bar variant, i.e. without the segno sign."
                         (cons 0 0)))
                    (ly:stencil-translate-axis
                     double-line-stil
-                    (* 1/2 thinkern)
+                    (* 1/2 segno-kern)
                     X))))
 
     stencil))
index 0ea8e032a0e774bb95265e15df406739979e40db..ae649700aee3e810caa4882ac49246aeb1a75dd6 100644 (file)
@@ -16,7 +16,7 @@
 ;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; for define-safe-public when byte-compiling using Guile V2
-(use-modules (scm safe-utility-defs))
+(use-modules (scm safe-utility-defs) (ice-9 receive))
 
 (define-public (construct-chord-elements root duration modifications)
   "Build a chord on root using modifiers in @var{modifications}.
@@ -174,26 +174,42 @@ the bass specified.
 
 (define (make-chord-elements pitches bass duration inversion original-inv-pitch)
   "Make EventChord with notes corresponding to PITCHES, BASS and
-DURATION, and INVERSION."
-  (define (make-note-ev pitch)
-    (make-music 'NoteEvent
-                'duration duration
-                'pitch pitch))
-  (let ((nots (map make-note-ev pitches))
-        (bass-note (if bass (make-note-ev bass) #f))
-        (inv-note (if inversion (make-note-ev inversion) #f)))
-    (if bass-note
-        (begin
-          (set! (ly:music-property bass-note 'bass) #t)
-          (set! nots (cons bass-note nots))))
-    (if inv-note
-        (begin
-          (set! (ly:music-property inv-note 'inversion) #t)
-          (set! (ly:music-property inv-note 'octavation)
-                (- (ly:pitch-octave inversion)
-                   (ly:pitch-octave original-inv-pitch)))
-          (set! nots (cons inv-note nots))))
-    nots))
+DURATION, and INVERSION.  Notes above INVERSION are transposed downward
+along with the inversion as long as they end up below at least one
+non-inverted note."
+  (define (make-note-ev pitch . rest)
+    (apply make-music 'NoteEvent
+           'duration duration
+           'pitch pitch
+           rest))
+  (cond (inversion
+         (let* ((octavation (- (ly:pitch-octave inversion)
+                               (ly:pitch-octave original-inv-pitch)))
+                (down (ly:make-pitch octavation 0 0)))
+           (define (invert p) (ly:pitch-transpose down p))
+           (define (make-inverted p . rest)
+             (apply make-note-ev (invert p) 'octavation octavation rest))
+           (receive (uninverted high)
+                    (span (lambda (p) (ly:pitch<? p original-inv-pitch))
+                          pitches)
+                    (receive (invertible rest)
+                             (if (null? uninverted)
+                                 ;; The following line caters for
+                                 ;; inversions "on the root", turning
+                                 ;; f/f into <f a' c''> rather than <f a c'>
+                                 ;; or <f' a' c''>
+                                 (values '() high)
+                                 (span (lambda (p)
+                                         (ly:pitch<? (invert p) (car uninverted)))
+                                       high))
+                             (cons (make-inverted original-inv-pitch 'inversion #t)
+                                   (append (if bass (list (make-note-ev bass 'bass #t)) '())
+                                           (map make-inverted invertible)
+                                           (map make-note-ev uninverted)
+                                           (map make-note-ev rest)))))))
+        (bass (cons (make-note-ev bass 'bass #t)
+                    (map make-note-ev pitches)))
+        (else (map make-note-ev pitches))))
 
 ;;;;;;;;;;;;;;;;
 ;; chord modifiers change the pitch list.
index 54faaa5ba7b2e157d118cfb14c2ec43727f90b4d..4dd959bb5b47163e4b2c49bc85fe8bc3708343a5 100644 (file)
            (list-ref '( "ses" "s" "" "is" "isis") (+ 2 (cdr n-a)))
            (list-ref '("eses" "es" "" "is" "isis") (+ 2 (cdr n-a)))))))))
 
-(define-public ((chord-name->italian-markup re-with-eacute) pitch lowercase?)
+(define ((chord-name->italian-markup re-with-eacute) pitch lowercase?)
   "Return pitch markup for @var{pitch}, using Italian/@/French note names.
 If @var{re-with-eacute} is set to @code{#t}, french `ré' is returned for
 pitch@tie{}D instead of `re'."
@@ -125,6 +125,7 @@ pitch@tie{}D instead of `re'."
         lowercase?))
       (accidental->markup-italian alt)
       ))))
+(export chord-name->italian-markup)
 
 ;; fixme we should standardize on omit-root (or the other one.)
 ;; perhaps the default should also be reversed --hwn
index 2d38188d29273c4ec114e94380f60e41e41b7af0..b88c8f59f891ce93809c67ba60e081b367afe1c9 100644 (file)
@@ -562,6 +562,8 @@ part-combining.")
 @rinternals{Pitch_squash_engraver}.")
      (staffLineLayoutFunction ,procedure? "Layout of staff lines,
 @code{traditional}, or @code{semitone}.")
+     (magnifyStaffValue ,positive? "The most recent value set with
+@code{\\magnifyStaff}.")
      (stanza ,markup? "Stanza @q{number} to print before the start of a
 verse.  Use in @code{Lyrics} context.")
      (startRepeatSegnoType ,string? "Set the default bar line for the
index 40b1b7de40d41d0c3914dcc53ccb79c184347997..ac6f215ae2280c16a7b92a4be90ff0fc42a37c39 100644 (file)
@@ -158,7 +158,7 @@ previously defined event class."
 ;;(pretty-print (cons (car music-event-tree) (sort-tree (cdr music-event-tree))))
 
 (defmacro-public make-stream-event (expr)
-  (Stream_event::undump (primitive-eval (list 'quasiquote expr))))
+  (ly:stream-event::undump (primitive-eval (list 'quasiquote expr))))
 
 (define* (simplify e)
   (cond
@@ -167,7 +167,7 @@ previously defined event class."
    ((pair? e) (cons (simplify (car e))
                     (simplify (cdr e))))
    ((ly:stream-event? e)
-    (list 'unquote (list 'make-stream-event (simplify (Stream_event::dump e)))))
+    (list 'unquote (list 'make-stream-event (simplify (ly:stream-event::dump e)))))
    ((ly:music? e)
     (list 'unquote (music->make-music e)))
    ((ly:moment? e)
@@ -182,7 +182,7 @@ previously defined event class."
     (list 'unquote `(ly:make-duration
                      ,(ly:duration-log e)
                      ,(ly:duration-dot-count e)
-                     ,(ly:duration-scale))))
+                     ,(ly:duration-scale e))))
    ((ly:pitch? e)
     (list 'unquote `(ly:make-pitch
                      ,(ly:pitch-octave e)
index 4ffd761607c788feef67edba4b1b1e5522bf78fb..2c3290a4c88573a25a90b2c6cd688105b1430e0f 100644 (file)
@@ -59,7 +59,7 @@ found in @file{scm/bar-line.scm}.
    has-span-bar
    kern
    rounded
-   thin-kern
+   segno-kern
    thick-thickness))
 
 (ly:add-interface
index 6f080aeb2d5626c7fc3058a8463831055e728ff1..cd5b663f3bd1a687aa5fd7b8ae2f538a87582ca7 100644 (file)
@@ -239,6 +239,11 @@ elements closer together.")
      (dot-placement-list ,list? "List consisting of
 @code{(@var{description} @var{string-number} @var{fret-number}
 @var{finger-number})} entries used to define fret diagrams.")
+     (double-stem-separation ,number? "The distance between the two
+stems of a half note in tablature when using @code{\\tabFullNotation},
+not counting the width of the stems themselves, expressed as a multiple
+of the default height of a staff-space in the traditional five-line
+staff.")
      (duration-log ,integer? "The 2-log of the note head duration,
 i.e., @code{0} = whole note, @code{1} = half note, etc.")
 
@@ -371,6 +376,13 @@ label the lowest fret number.  Default@tie{}0.5.
 the center of the fret in direction parallel to strings.
 Default@tie{}0.
 @item
+@code{fret-label-horizontal-offset} -- The offset of the fret label from
+the center of the fret in direction orthogonal to strings.
+Default@tie{}0.
+@item
+@code{paren-padding} -- The padding for the parenthesis.
+Default@tie{}0.05.
+@item
 @code{label-dir} -- Side to which the fret label is attached.
 @w{@code{-1}}, @code{LEFT}, or @code{DOWN} for left or down; @code{1},
 @code{RIGHT}, or @code{UP} for right or up.  Default @code{RIGHT}.
@@ -451,7 +463,9 @@ etc. are already taken.")
 ;;; h
 ;;;
      (hair-thickness ,number? "Thickness of the thin line in a bar
-line.")
+line, expressed as a multiple of the default staff-line thickness
+(i.e. the visual output is @emph{not} influenced by changes to
+@code{@var{Staff}.StaffSymbol.thickness}).")
      (harp-pedal-details ,list? "An alist of detailed grob properties
 for harp pedal diagrams.  Each alist entry consists of a
 @code{(@var{property} . @var{value})} pair.  The properties which can
@@ -524,8 +538,11 @@ slur quants to this position, and print the respective scores.")
 ;;;
      (keep-inside-line ,boolean? "If set, this column cannot have
 objects sticking into the margin.")
-     (kern ,ly:dimension? "Amount of extra white space to add.  For
-bar lines, this is the amount of space after a thick line.")
+     (kern ,ly:dimension? "The space between individual elements
+in any compound bar line, expressed as a multiple of the default
+staff-line thickness (i.e. the visual output is @emph{not}
+influenced by changes to
+@code{@var{Staff}.StaffSymbol.thickness}).")
      (knee ,boolean? "Is this beam kneed?")
      (knee-spacing-correction ,number? "Factor for the optical
 correction amount for kneed beams.  Set between @code{0} for no
@@ -570,8 +587,12 @@ whether to put a line break at this column.  Can be @code{force} or
 if this column is the start of a system.")
      (line-count ,integer? "The number of staff lines.")
      (line-positions ,list? "Vertical positions of staff lines.")
-     (line-thickness ,number? "The thickness of the tie or slur
-contour.")
+     (line-thickness ,number? "For slurs and ties, this is the
+diameter of the virtual @qq{pen} that draws the two arcs of the
+curve's outline, which intersect at the endpoints.  This property
+is expressed as a multiple of the current staff-line thickness
+(i.e. the visual output is influenced by changes to
+@code{@var{Staff}.StaffSymbol.thickness}).")
      (long-text ,markup? "Text markup.  See @ruser{Formatting text}.")
 
 
@@ -784,6 +805,11 @@ stem distance.")
 scripts in a stack, by being added to the position of the script in
 the user input, the sum being the overall priority.  Smaller means
 closer to the head.")
+     (segno-kern ,number? "The space between the two thin lines
+of the segno bar line symbol, expressed as a multiple of the
+default staff-line thickness (i.e. the visual output is @emph{not}
+influenced by changes to
+@code{@var{Staff}.StaffSymbol.thickness}).")
      (self-alignment-X ,number? "Specify alignment of an object.  The
 value @w{@code{-1}} means left aligned, @code{0}@tie{}centered, and
 @code{1}@tie{}right-aligned in X@tie{}direction.  Other numerical
@@ -958,11 +984,17 @@ this property.")
      (text-direction ,ly:dir? "This controls the ordering of the
 words.  The default @code{RIGHT} is for roman text.  Arabic or Hebrew
 should use @code{LEFT}.")
-     (thick-thickness ,number? "Bar line thickness, measured in
-@code{line-thickness}.")
-     (thickness ,number? "Line thickness, generally measured in
-@code{line-thickness}.")
-     (thin-kern ,number? "The space after a hair-line in a bar line.")
+     (thick-thickness ,number? "Thickness of the thick line in a
+bar line, expressed as a multiple of the default staff-line
+thickness (i.e. the visual output is @emph{not} influenced by
+changes to @code{@var{Staff}.StaffSymbol.thickness}).")
+     (thickness ,number? "For grobs made up of lines, this is the
+thickness of the line.  For slurs and ties, this is the distance
+between the two arcs of the curve's outline at its thickest point,
+not counting the diameter of the virtual @qq{pen} that draws the
+arcs.  This property is expressed as a multiple of the current
+staff-line thickness (i.e. the visual output is influenced by
+changes to @code{@var{Staff}.StaffSymbol.thickness}).")
      (tie-configuration ,list? "List of @code{(@var{position} .
 @var{dir})} pairs, indicating the desired tie configuration, where
 @var{position} is the offset from the center of the staff in staff
@@ -1016,6 +1048,8 @@ texts.")
 ;;;
 ;;; x
 ;;;
+     (X-align-on-main-noteheads ,boolean? "If true, this grob will
+ignore suspended noteheads when aligning itself on NoteColumn.")
      (X-extent ,number-pair? "Extent (size) in the X@tie{}direction,
 measured in staff-space units, relative to object's reference point.")
      (X-offset ,number? "The horizontal amount that this object is
index 62473075ded4b03a25a147420bd720e27fd34a0a..ea606ece065b3b0edf7a2b41636b79f08eadab80 100644 (file)
         (staff-padding . 0.25)
         (stencil . ,ly:accidental-interface::print)
         (X-extent . ,ly:accidental-interface::width)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::centered-on-x-parent))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self)))))
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,accidental-interface::height)
         (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Item)
         ;; TODO:
         ;; kern should scale with line-thickness too.
         (kern . 3.0)
-        (thin-kern . 3.0)
+        (segno-kern . 3.0)
         (hair-thickness . 1.9)
         (thick-thickness . 6.0)
 
      . (
         (break-visibility . ,(grob::inherit-parent-property
                               X 'break-visibility))
-        (font-shape . italic)
-        (font-size . -4)
-        (transparent . ,(grob::inherit-parent-property
-                         X 'transparent))
         (color . ,(grob::inherit-parent-property
                    X 'color))
+        (font-shape . italic)
+        (font-size . -4)
         (self-alignment-X . ,CENTER)
         (staff-padding . 0.7)
         (stencil . ,ly:text-interface::print)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::centered-on-x-parent)))))
-        (Y-offset . ,side-position-interface::y-aligned-side)
+        (transparent . ,(grob::inherit-parent-property
+                         X 'transparent))
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
+        (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Item)
                  (interfaces . (clef-modifier-interface
                                 font-interface
         (outside-staff-priority . 450)
         (padding . 0.5)
         (script-priority . 200)
+        (self-alignment-X . #f)
         (side-axis . ,Y)
         (staff-padding . 0.5)
-        ;; todo: add X self alignment?
         (stencil . ,ly:text-interface::print)
-        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-offset . ,side-position-interface::y-aligned-side)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta . ((class . Item)
                  (interfaces . (font-interface
                                 outside-staff-interface
+                                self-alignment-interface
                                 side-position-interface
                                 text-interface
                                 text-script-interface))))))
         (side-axis . ,Y)
         (staff-padding . 0.25)
         (stencil . ,ly:text-interface::print)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::centered-on-y-parent))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self)))))
-        (Y-offset . ,side-position-interface::y-aligned-side)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
+        (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Item)
                  (interfaces . (font-interface
                                 outside-staff-interface
         (stencil . ,ly:text-interface::print)
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
-        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+        (X-align-on-main-noteheads . #t)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-offset . ,(scale-by-font-size -0.6)) ; center on an 'm'
         (meta . ((class . Item)
                  (interfaces . (dynamic-interface
         (layer . 0)
         (self-alignment-X . ,CENTER)
         (stencil . ,ly:grid-line-interface::print)
-        (X-extent  . ,ly:grid-line-interface::width)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::centered-on-x-parent))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self)))))
+        (X-extent . ,ly:grid-line-interface::width)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (meta . ((class . Item)
                  (interfaces . (grid-line-interface
                                 self-alignment-interface))))))
                         (key-signature . (extra-space . 0.5))
                         (cue-clef . (extra-space . 0.5))
                         (right-edge . (extra-space . 0.5))
-                        (first-note . (fixed-space . 2.5))))
+                        (first-note . (fixed-space . 2.5))
+                        (custos . (extra-space . 1.0))))
         (stencil . ,ly:key-signature-interface::print)
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (word-space . 0.6)
         (skyline-horizontal-padding . 0.1)
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+        (X-align-on-main-noteheads . #t)
         (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta . ((class . Item)
         (springs-and-rods . ,ly:multi-measure-rest::set-text-rods)
         (staff-padding . 0.4)
         (stencil . ,ly:text-interface::print)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-centered-on-y-parent)))))
-        (Y-offset . ,side-position-interface::y-aligned-side)
         (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
+        (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Spanner)
                  (interfaces . (font-interface
                                 multi-measure-interface
         (skyline-horizontal-padding . 0.2)
         (staff-padding . 0.25)
         (stencil . ,ly:text-interface::print)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-centered-on-y-parent))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self)))))
-        (Y-offset . ,side-position-interface::y-aligned-side)
         (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
+        (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Spanner)
                  (interfaces . (font-interface
                                 multi-measure-interface
         (self-alignment-X . ,CENTER)
         (staff-padding . 0.25)
         (stencil . ,ly:text-interface::print)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-centered-on-y-parent))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self)))))
-        (Y-offset . ,side-position-interface::y-aligned-side)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
+        (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Spanner)
                  (interfaces . (font-interface
                                 percent-repeat-interface
         ;; and the extreme minima as abolute minimum length.
 
         (direction . ,ly:stem::calc-direction)
+        (double-stem-separation . 0.5)
         (duration-log . ,stem::calc-duration-log)
         (length . ,(ly:make-unpure-pure-container ly:stem::calc-length ly:stem::pure-calc-length))
         (neutral-direction . ,DOWN)
         (stencil . ,ly:stem-tremolo::print)
         (style . ,ly:stem-tremolo::calc-style)
         (X-extent . ,ly:stem-tremolo::width)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,(grob::unpure-Y-extent-from-stencil ly:stem-tremolo::pure-height))
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::centered-on-x-parent))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self)))))
         (Y-offset . ,(ly:make-unpure-pure-container ly:stem-tremolo::calc-y-offset ly:stem-tremolo::pure-calc-y-offset))
         (meta . ((class . Item)
                  (interfaces . (self-alignment-interface
     (TextScript
      . (
         (avoid-slur . around)
-        (cross-staff . ,script-or-side-position-cross-staff)
+        (cross-staff . #f)
         (direction . ,DOWN)
         (extra-spacing-width . (+inf.0 . -inf.0))
         (outside-staff-horizontal-padding . 0.2)
         (padding . 0.3)
 
         (script-priority . 200)
+        ;; self-alignment cannot be LEFT because of fingering diagrams.
+        (self-alignment-X . #f)
         (side-axis . ,Y)
         (slur-padding . 0.5)
         (staff-padding . 0.5)
         (stencil . ,ly:text-interface::print)
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
-        ;; todo: add X self alignment?
         (Y-extent . ,grob::always-Y-extent-from-stencil)
-        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+        (X-align-on-main-noteheads . #t)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Item)
                  (interfaces . (font-interface
index d9ec2b00b50afe1e7c674dcb1197dde97dc36c1a..406f09aacbbd6820b05686e072ce2806b142c81f 100644 (file)
@@ -176,6 +176,16 @@ node."
      (cons (cons key val)  prior))
    '() (ly:all-grob-interfaces)))
 
+;; sort user-settable and internal props within each grob-interface
+(set! interface-description-alist
+  (map! (lambda (iface-desc)
+          (let* ((key-name-docstr (list-head iface-desc 3))
+                 (props           (list-tail iface-desc 3))
+                 (sorted-props    (list (sort (car props) ly:symbol-ci<?))))
+            (append key-name-docstr sorted-props)))
+        interface-description-alist))
+
+;; sort list of grob interfaces
 (set! interface-description-alist
       (sort interface-description-alist ly:alist-ci<?))
 
index 98ec0e4d80b1a742e9b4e96844152e0c321b2e05..502cb7738cab06b2e206a6e462570cab01642a75 100644 (file)
@@ -214,11 +214,12 @@ a flag always touches a staff line."
 
 
 
-(define-public ((glyph-flag flag-style) grob)
+(define ((glyph-flag flag-style) grob)
   "Simulatesthe default way of generating flags: Look up glyphs
 @code{flags.style[ud][1234]} from the feta font and use it for the flag
 stencil."
   (create-glyph-flag flag-style "" grob))
+(export glyph-flag)
 
 
 
index 69a8ba7821be29483093e9bec85edb8d2ef95fab..e60c0dca359cf782697afa6ca5ffc1524a255e4e 100644 (file)
@@ -64,6 +64,41 @@ to end-point."
   "Calculate the fret count for the diagram given the range of frets in the diagram."
   (1+ (- (cdr fret-range) (car fret-range))))
 
+(define (dot-has-color dot-settings)
+  "Return a color-name as symbol, if found in @var{dot-settings} otherwise @code{#f}"
+  (cond ((null? dot-settings)
+         #f)
+        ;; Don't bother the user with quote/unquote.
+        ;; We use the name-symbol for the color, looking up in 'x11-color-list'
+        ((member (car dot-settings) (map car x11-color-list))
+         (car dot-settings))
+        (else (dot-has-color (cdr dot-settings)))))
+
+(define (dot-is-inverted dot-settings)
+  "Return @code{'inverted}, if found in @var{dot-settings} otherwise @code{'()}"
+  (let ((inverted (member 'inverted dot-settings)))
+    (if inverted
+        (car inverted)
+        '())))
+
+(define (dot-is-parenthesized dot-settings)
+  "Return @code{'parenthesized}, if found in @var{dot-settings} otherwise @code{'()}"
+  (let ((parenthesized (member 'parenthesized dot-settings)))
+    (if parenthesized
+        (car parenthesized)
+        '())))
+
+;; If @code{'default-paren-color} is not set, the parenthesis will take their
+;; color from the dot.
+;; Setting @code{'default-paren-color} will result in taking the color from
+;; `what-color', see below.
+(define (default-paren-color dot-settings)
+  "Return @code{'default-paren-color}, if found in @var{dot-settings} otherwise @code{'()}"
+  (let ((default-color (member 'default-paren-color dot-settings)))
+    (if default-color
+        (car default-color)
+        '())))
+
 (define (subtract-base-fret base-fret dot-list)
   "Subtract @var{base-fret} from every fret in @var{dot-list}"
   (if (null? dot-list)
@@ -71,18 +106,26 @@ to end-point."
       (let ((this-list (car dot-list)))
         (cons* (list
                 ;; string
-                (car this-list)
+                  (car this-list)
                 ;; fret
-                (- (second this-list) base-fret)
+                  (- (second this-list) base-fret)
                 ;; finger
-                (if (null? (cddr this-list))
-                    '()
-                    (third this-list))
-                ;; color modifier
-                (if (or (null? (cddr this-list))
-                        (null? (cdddr this-list)))
-                    '()
-                    (fourth this-list)))
+                  (if (or (null? (cddr this-list))
+                        (not (number? (caddr this-list))))
+                      '()
+                      (third this-list))
+                ;; inverted
+                  (dot-is-inverted this-list)
+                ;; parenthesis
+                  (dot-is-parenthesized this-list)
+                ;; color modifiers
+                  ;; parenthesis
+                  (default-paren-color this-list)
+                  ;; dots
+                  (let ((colored (dot-has-color this-list)))
+                    (if colored
+                        colored
+                        '())))
                (subtract-base-fret base-fret (cdr dot-list))))))
 
 (define (drop-paren item-list)
@@ -271,6 +314,7 @@ with magnification @var{mag} of the string @var{text}."
          ;; needed for draw-frets and draw-strings
          (sth (* size th))
          (thickness-factor (assoc-get 'string-thickness-factor details 0))
+         (paren-padding (assoc-get 'paren-padding details 0.05))
          (alignment
           (chain-assoc-get 'align-dir props -0.4)) ;; needed only here
          (xo-padding (assoc-get 'xo-padding details 0.2)) ;; needed only here
@@ -370,7 +414,7 @@ Line thickness is given by @var{th}, fret & string spacing by
              (string-stencil (car x))
              (helper (cdr x)))))
 
-      (let* ( (string-list (map 1+ (iota string-count))))
+      (let* ((string-list (map 1+ (iota string-count))))
         (helper string-list)))
 
     (define (string-stencil string)
@@ -528,7 +572,7 @@ fret-diagram overall parameters."
 
       (let* ( (scale-dot-radius (* size dot-radius))
               (scale-dot-thick (* size th))
-              (default-dot-color (assoc-get 'dot-color details 'black))
+              (default-dot-color (assoc-get 'dot-color details))
               (finger-label-padding 0.3)
               (dot-label-font-mag
                (* scale-dot-radius
@@ -552,24 +596,73 @@ fret-diagram overall parameters."
               (extent (cons (- scale-dot-radius) scale-dot-radius))
               (finger (caddr mypair))
               (finger (if (number? finger) (number->string finger) finger))
-              (inverted-color (eq? 'inverted (cadddr mypair)))
-              (dot-color (if (or (and (eq? default-dot-color 'black) inverted-color)
-                                 (and (eq? default-dot-color 'white) (not inverted-color)))
-                             'white
-                             'black))
-              (dot-stencil (if (eq? dot-color 'white)
-                               (ly:stencil-add
-                                (make-circle-stencil
-                                 scale-dot-radius scale-dot-thick #t)
-                                (ly:stencil-in-color
-                                 (make-circle-stencil
-                                  (- scale-dot-radius (* 0.5 scale-dot-thick))
-                                  0  #t)
-                                 1 1 1))
-                               (make-circle-stencil
-                                scale-dot-radius scale-dot-thick #t)))
+              (parenthesized
+                (if (not (null? (dot-is-parenthesized mypair)))
+                    (dot-is-parenthesized mypair)
+                    #f))
+              (parenthesis-color
+                (if (not (null? (default-paren-color mypair)))
+                    (default-paren-color mypair)
+                    #f))
+              (inverted
+                (if (not (null? (dot-is-inverted mypair)))
+                    (dot-is-inverted mypair)
+                    #f))
+              (dot-color-is-white?
+                (or inverted
+                    (and (eq? default-dot-color 'white) (not inverted))))
+              (what-color
+                (x11-color
+                  (cond ((and inverted
+                              (not (dot-has-color mypair))
+                              (not (eq? default-dot-color 'white)))
+                          (or default-dot-color 'black))
+                        (dot-color-is-white?
+                          (or (dot-has-color mypair) 'black))
+                        (else
+                          (or (dot-has-color mypair)
+                              default-dot-color
+                              'black)))))
+              (inverted-stil
+                (lambda (color)
+                  (ly:stencil-add
+                    (stencil-with-color
+                      (make-circle-stencil
+                        scale-dot-radius scale-dot-thick #t)
+                      color)
+                    (stencil-with-color
+                      (make-circle-stencil
+                        (- scale-dot-radius (* 0.5 scale-dot-thick))
+                        0  #t)
+                      (x11-color 'white)))))
+              (dot-stencil
+                (if dot-color-is-white?
+                    (inverted-stil what-color)
+                    (stencil-with-color
+                      (make-circle-stencil
+                         scale-dot-radius scale-dot-thick #t)
+                      what-color)))
+              (par-dot-stencil
+                (let ((paren-color
+                        (if (and parenthesis-color
+                                 (not (eq? default-dot-color 'white)))
+                            (x11-color (or default-dot-color 'black))
+                            what-color)))
+                 (stencil-with-color
+                   (parenthesize-stencil
+                     dot-stencil      ;; stencil
+                     (* size th 0.75) ;; half-thickness
+                     (* 0.15 size)    ;;width
+                     0                ;; angularity
+                     paren-padding    ;; padding
+                     )
+                   paren-color)))
+              (final-dot-stencil
+                  (if parenthesized
+                      par-dot-stencil
+                      dot-stencil))
               (positioned-dot
-               (ly:stencil-translate dot-stencil dot-coordinates))
+               (ly:stencil-translate final-dot-stencil dot-coordinates))
               (labeled-dot-stencil
                (cond
                 ((or (eq? finger '())(eq? finger-code 'none))
@@ -581,10 +674,12 @@ fret-diagram overall parameters."
                           layout props dot-label-font-mag finger))))
                    (ly:stencil-translate
                     (ly:stencil-add
-                     dot-stencil
-                     (if (eq? dot-color 'white)
-                         finger-label
-                         (ly:stencil-in-color finger-label 1 1 1)))
+                     final-dot-stencil
+                     (if dot-color-is-white?
+                         (stencil-with-color
+                            finger-label
+                            what-color)
+                         (stencil-with-color finger-label white)))
                     dot-coordinates)))
                 ((eq? finger-code 'below-string)
                  (let* ((label-stencil
@@ -701,6 +796,8 @@ at @var{fret}."
              (label-dir (assoc-get 'label-dir details RIGHT))
              (label-vertical-offset
               (assoc-get 'fret-label-vertical-offset details 0))
+             (label-horizontal-offset
+              (assoc-get 'fret-label-horizontal-offset details 0))
              (number-type
               (assoc-get 'number-type details 'roman-lower))
              (label-text
@@ -726,7 +823,10 @@ at @var{fret}."
                label-stencil
                'string
                orientation))
-             (label-outside-diagram (+ label-space label-half-width)))
+             (label-outside-diagram
+               (+ label-space
+                  (* size label-horizontal-offset)
+                  label-half-width)))
         (ly:stencil-translate
          label-stencil
          (stencil-coordinates
@@ -972,15 +1072,30 @@ to string @var{end-string} at fret @var{fret-number}.
 Place a capo indicator (a large solid bar) across the entire fretboard
 at fret location @var{fret-number}.  Also, set fret @var{fret-number}
 to be the lowest fret on the fret diagram.
-
-@item (place-fret @var{string-number} @var{fret-number} [@var{finger-value} [@var{color-modifier}]])
+@item
+(place-fret @var{string-number}
+            @var{fret-number}
+            [@var{finger-value}]
+            [@var{color-modifier}]
+            [@var{color}]
+            [@code{'parenthesized} [@code{'default-paren-color}]])
 Place a fret playing indication on string @var{string-number} at fret
 @var{fret-number} with an optional fingering label @var{finger-value},
-and an optional color modifier @var{color-modifier}.
+an optional color modifier @var{color-modifier}, an optional color
+@var{color}, an optional parenthesis @code{'parenthesized} and an
+optional paranthesis color @code{'default-paren-color}.
 By default, the fret playing indicator is a solid dot.  This can be
-globally changed by setting the value of the variable @var{dot-color}.
+globally changed by setting the value of the variable @var{dot-color}
+or for a single dot by setting the value of @var{color}.  The dot can
+be parenthesized by adding @code{'parenthesized}.  By default the
+color for the parenthesis is taken from the dot.  Adding
+@code{'default-paren-color} will take the parenthesis-color from the
+global @var{dot-color}, as a fall-back black will be used.
 Setting @var{color-modifier} to @code{inverted} inverts the dot color
 for a specific fingering.
+The values for @var{string-number}, @var{fret-number}, and the optional
+@var{finger} should be entered first in that order.
+The order of the other optional arguments does not matter.
 If the @var{finger} part of the @code{place-fret} element is present,
 @var{finger-value} will be displayed according to the setting of the
 variable @var{finger-code}.  There is no limit to the number of fret
index 2712fc21f3c331228192f563285b8b34fc246777..73e871686e3ee079f488ec646b0d550d870206ba 100644 (file)
@@ -64,7 +64,8 @@
           (if good
               (ly:parser-error parser
                                (format #f (_ "~a function cannot return ~a")
-                                       (type-name pred) m)
+                                       (type-name pred)
+                                       (value->lily-string m parser))
                                loc))
           (and (pair? (car sig)) (cdar sig))))))
 
index 3e31f660e4e7e10fdd3a6a40cf14f3dce7d0b3a8..4200a1f17690518c1b330afa2e43f4cbdd81c941 100644 (file)
@@ -130,9 +130,8 @@ LilyPond scheme pitches, e.g. @code{(ly:make-pitch 0 2 0)}
   "Recurse through @var{music}, extracting pitches.
 Returns a list of pitch objects, e.g
 @code{'((ly:make-pitch 0 2 0) (ly:make-pitch 0 4 0) ... )}
-Typically used to construct a scale for input to transposer-factory
-(see).
-"
+Typically used to construct a scale for input to
+@code{transposer-factory}."
 
   (let ((elements (ly:music-property music 'elements))
         (element (ly:music-property music 'element))
@@ -192,12 +191,15 @@ Typically used to construct a scale for input to transposer-factory
   ;; inversion and retrograding.
 
   (let* ((elements (ly:music-property music 'elements))
+         (arts (ly:music-property music 'articulations))
          (reversed (reverse elements))
          (element (ly:music-property music 'element))
          (span-dir (ly:music-property music 'span-direction)))
 
     (ly:music-set-property! music 'elements reversed)
 
+    (for-each retrograde-music arts)
+
     (if (ly:music? element)
         (ly:music-set-property!
          music 'element
index ba567229e794f8c4a82ef9079a0981d04d3fc20a..2638e9997952bb75899a7148f9bc752e30553d63 100644 (file)
@@ -906,17 +906,19 @@ NUMBER is 0-base, i.e., Voice=1 (upstems) has number 0.
   (lambda (elt)
     (grob::has-interface elt symbol)))
 
-(define-public ((outputproperty-compatibility func sym val) grob g-context ao-context)
+(define ((outputproperty-compatibility func sym val) grob g-context ao-context)
   (if (func grob)
       (set! (ly:grob-property grob sym) val)))
+(export outputproperty-compatibility)
 
 
-(define-public ((set-output-property grob-name symbol val)  grob grob-c context)
+(define ((set-output-property grob-name symbol val)  grob grob-c context)
   "Usage example:
 @code{\\applyoutput #(set-output-property 'Clef 'extra-offset '(0 . 1))}"
   (let ((meta (ly:grob-property grob 'meta)))
     (if (equal? (assoc-get 'name meta) grob-name)
         (set! (ly:grob-property grob symbol) val))))
+(export set-output-property)
 
 
 (define-public (skip->rest mus)
@@ -1065,10 +1067,6 @@ value (evaluated at definition time).  An optional parameter can be
 omitted in a call only when it can't get confused with a following
 parameter of different type.
 
-Predicates with syntactical significance are @code{ly:pitch?},
-@code{ly:duration?}, @code{ly:music?}, @code{markup?}.  Other
-predicates require the parameter to be entered as Scheme expression.
-
 @code{result-type?} can specify a default in the same manner as
 predicates, to be used in case of a type error in arguments or
 result."
@@ -1119,10 +1117,6 @@ value (evaluated at definition time).  An optional parameter can be
 omitted in a call only when it can't get confused with a following
 parameter of different type.
 
-Predicates with syntactical significance are @code{ly:pitch?},
-@code{ly:duration?}, @code{ly:music?}, @code{markup?}.  Other
-predicates require the parameter to be entered as Scheme expression.
-
 Must return a music expression.  The @code{origin} is automatically
 set to the @code{location} parameter."
 
@@ -1143,10 +1137,6 @@ value (evaluated at definition time).  An optional parameter can be
 omitted in a call only when it can't get confused with a following
 parameter of different type.
 
-Predicates with syntactical significance are @code{ly:pitch?},
-@code{ly:duration?}, @code{ly:music?}, @code{markup?}.  Other
-predicates require the parameter to be entered as Scheme expression.
-
 Can return arbitrary expressions.  If a music expression is returned,
 its @code{origin} is automatically set to the @code{location}
 parameter."
@@ -1175,10 +1165,6 @@ value (evaluated at definition time).  An optional parameter can be
 omitted in a call only when it can't get confused with a following
 parameter of different type.
 
-Predicates with syntactical significance are @code{ly:pitch?},
-@code{ly:duration?}, @code{ly:music?}, @code{markup?}.  Other
-predicates require the parameter to be entered as Scheme expression.
-
 Must return an event expression.  The @code{origin} is automatically
 set to the @code{location} parameter."
 
@@ -1229,7 +1215,7 @@ set to the @code{location} parameter."
                  (and clef (make-cue-clef-unset))))))
       quote-music))
 
-(define-public ((quote-substitute quote-tab) music)
+(define ((quote-substitute quote-tab) music)
   (let* ((quoted-name (ly:music-property music 'quoted-music-name))
          (quoted-vector (and (string? quoted-name)
                              (hash-ref quote-tab quoted-name #f))))
@@ -1243,6 +1229,7 @@ set to the @code{location} parameter."
                     ly:quote-iterator::constructor))
             (ly:music-warning music (ly:format (_ "cannot find quoted music: `~S'") quoted-name))))
     music))
+(export quote-substitute)
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1507,7 +1494,7 @@ also get an accidental."
 
     (cons need-restore need-accidental)))
 
-(define-public ((make-accidental-rule octaveness laziness) context pitch barnum measurepos)
+(define ((make-accidental-rule octaveness laziness) context pitch barnum measurepos)
   "Create an accidental rule that makes its decision based on the octave of
 the note and a laziness value.
 
@@ -1525,12 +1512,14 @@ accidental lasts over that many bar lines.  @w{@code{-1}} is `forget
 immediately', that is, only look at key signature.  @code{#t} is `forever'."
 
   (check-pitch-against-signature context pitch barnum laziness octaveness #f))
+(export make-accidental-rule)
 
-(define-public ((make-accidental-dodecaphonic-rule octaveness laziness) context pitch barnum measurepos)
+(define ((make-accidental-dodecaphonic-rule octaveness laziness) context pitch barnum measurepos)
   "Variation on function make-accidental-rule that creates an dodecaphonic
 accidental rule."
 
   (check-pitch-against-signature context pitch barnum laziness octaveness #t))
+(export make-accidental-dodecaphonic-rule)
 
 (define (key-entry-notename entry)
   "Return the pitch of an @var{entry} in @code{localAlterations}.
@@ -1575,7 +1564,8 @@ For convenience, returns @code{0} if entry is @code{#f}."
       0))
 
 (define-public (find-pitch-entry keysig pitch accept-global accept-local)
-  "Return the first entry in @var{keysig} that matches @var{pitch}.
+  "Return the first entry in @var{keysig} that matches @var{pitch}
+by notename and octave.  Alteration is not considered.
 @var{accept-global} states whether key signature entries should be included.
 @var{accept-local} states whether local accidentals should be included.
 If no matching entry is found, @var{#f} is returned."
@@ -1615,15 +1605,19 @@ look at bar lines nor different accidentals at the same note name."
 note (just as in the dodecaphonic accidental style) @emph{except} if
 the note is immediately preceded by a note with the same pitch. This
 is a common accidental style in contemporary notation."
-   (let* ((keysig (ly:context-property context 'localKeySignature))
-          (entry (find-pitch-entry keysig pitch #t #t)))
+   (let* ((keysig (ly:context-property context 'localAlterations))
+          (entry (find-pitch-entry keysig pitch #f #t)))
      (if (not entry)
-          (cons #f #t)
-         (let* ((entrymp (key-entry-measure-position entry))
-                (entrybn (key-entry-bar-number entry)))
-           (cons #f
-             (not
-              (and (equal? entrybn barnum) (equal? entrymp measurepos))))))))
+         (cons #f #t)
+         (let ((entrymp (key-entry-measure-position entry))
+               (entrybn (key-entry-bar-number entry))
+               (entryalt (key-entry-alteration entry))
+               (alt (ly:pitch-alteration pitch)))
+           (cons #t
+                 (not (and (equal? entrybn barnum)
+                           (or (equal? measurepos entrymp)
+                               (ly:moment<? measurepos entrymp))
+                           (equal? entryalt alt))))))))
 
 (define-public (teaching-accidental-rule context pitch barnum measurepos)
   "An accidental rule that typesets a cautionary accidental if it is
@@ -1743,10 +1737,9 @@ as a context."
      ;; repeated notes (in the same voice) don't get an accidental
      ((equal? style 'dodecaphonic-no-repeat)
       (set-accidentals-properties #f
-                                  `(Staff ,(make-accidental-rule 'same-octave 0)
-                                          ,dodecaphonic-no-repeat-rule)
-                                          '()
-                                          context))
+                                  `(Staff ,dodecaphonic-no-repeat-rule)
+                                  '()
+                                  context))
      ;; Variety of the dodecaphonic style. Each note gets an accidental,
      ;; except notes that were already handled in the same measure.
      ((equal? style 'dodecaphonic-first)
@@ -2223,7 +2216,7 @@ other stems just because of that."
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; The following is used by the alterBroken function.
 
-(define-public ((value-for-spanner-piece arg) grob)
+(define ((value-for-spanner-piece arg) grob)
   "Associate a piece of broken spanner @var{grob} with an element
 of list @var{arg}."
   (let* ((orig (ly:grob-original grob))
@@ -2239,6 +2232,7 @@ of list @var{arg}."
     (if (>= (length siblings) 2)
         (helper siblings arg)
         (car arg))))
+(export value-for-spanner-piece)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; measure counter
@@ -2392,3 +2386,193 @@ Offsets are restricted to immutable properties and values of type @code{number},
                 vals))))
     ; return the closure named `self'
     self)
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; \magnifyMusic and \magnifyStaff
+
+;; defined as a function instead of a list because the
+;; all-grob-descriptions alist is not available yet
+(define-public (find-all-space-alist-props grob-descriptions)
+  "Used by @code{\\magnifyStaff}.  When @var{grob-descriptions} is equal
+to the @code{all-grob-descriptions} alist (defined in
+@file{scm/define-grobs.scm}), this will find all grobs that have an
+initialized value for the @code{space-alist} property, and return them
+as a list in the following format:
+@example
+'((Ambitus space-alist)
+  (BarLine space-alist)
+  ...)
+@end example"
+  (define (has-space-alist? grob-desc)
+    (ly:assoc-get 'space-alist (cdr grob-desc)))
+  (let* ((grob-descriptions-with-space-alist
+           (filter has-space-alist? grob-descriptions))
+         (grob-names-with-space-alist
+           (map car grob-descriptions-with-space-alist)))
+    (map (lambda (grob-name) (list grob-name 'space-alist))
+         grob-names-with-space-alist)))
+
+(define (magnifyStaff-is-set? context mag)
+  (let* ((Staff (ly:context-find context 'Staff))
+         (old-mag (ly:context-property Staff 'magnifyStaffValue)))
+    (not (null? old-mag))))
+
+(define (staff-magnification-is-changing? context mag)
+  (let* ((Staff (ly:context-find context 'Staff))
+         (old-mag (ly:context-property Staff 'magnifyStaffValue 1)))
+    (not (= old-mag mag))))
+
+(define-public (scale-fontSize func-name mag)
+  "Used by @code{\\magnifyMusic} and @code{\\magnifyStaff}.  Look up the
+current @code{fontSize} in the appropriate context and scale it by the
+magnification factor @var{mag}.  @var{func-name} is either
+@code{'magnifyMusic} or @code{'magnifyStaff}."
+  (make-apply-context
+    (lambda (context)
+      (if (or (eq? func-name 'magnifyMusic)
+              ;; for \magnifyStaff, only scale the fontSize
+              ;; if staff magnification is changing
+              (staff-magnification-is-changing? context mag))
+        (let* ((where (case func-name
+                        ((magnifyMusic) context)
+                        ((magnifyStaff) (ly:context-find context 'Staff))))
+               (fontSize (ly:context-property where 'fontSize 0))
+               (new-fontSize (+ fontSize (magnification->font-size mag))))
+          (ly:context-set-property! where 'fontSize new-fontSize))))))
+
+(define-public (revert-fontSize func-name mag)
+  "Used by @code{\\magnifyMusic} and @code{\\magnifyStaff}.  Calculate
+the previous @code{fontSize} value (before scaling) by factoring out the
+magnification factor @var{mag} (if @var{func-name} is
+@code{'magnifyMusic}), or by factoring out the context property
+@code{magnifyStaffValue} (if @var{func-name} is @code{'magnifyStaff}).
+Revert the @code{fontSize} in the appropriate context accordingly.
+
+With @code{\\magnifyMusic}, the scaling is reverted after the music
+block it operates on.  @code{\\magnifyStaff} does not operate on a music
+block, so the scaling from a previous call (if there is one) is reverted
+before the new scaling takes effect."
+  (make-apply-context
+    (lambda (context)
+      (if (or (eq? func-name 'magnifyMusic)
+              ;; for \magnifyStaff...
+              (and
+                ;; don't revert the user's fontSize choice
+                ;; the first time \magnifyStaff is called
+                (magnifyStaff-is-set? context mag)
+                ;; only revert the previous fontSize
+                ;; if staff magnification is changing
+                (staff-magnification-is-changing? context mag)))
+        (let* ((where
+                 (case func-name
+                   ((magnifyMusic) context)
+                   ((magnifyStaff) (ly:context-find context 'Staff))))
+               (old-mag
+                 (case func-name
+                   ((magnifyMusic) mag)
+                   ((magnifyStaff)
+                    (ly:context-property where 'magnifyStaffValue 1))))
+               (fontSize (ly:context-property where 'fontSize 0))
+               (old-fontSize (- fontSize (magnification->font-size old-mag))))
+          (ly:context-set-property! where 'fontSize old-fontSize))))))
+
+(define-public (scale-props func-name mag allowed-to-shrink? props)
+  "Used by @code{\\magnifyMusic} and @code{\\magnifyStaff}.  For each
+prop in @var{props}, find the current value of the requested prop, scale
+it by the magnification factor @var{mag}, and do the equivalent of a
+@code{\\temporary@tie{}\\override} with the new value in the appropriate
+context.  If @var{allowed-to-shrink?} is @code{#f}, don't let the new
+value be less than the current value.  @var{func-name} is either
+@code{'magnifyMusic} or @code{'magnifyStaff}.  The @var{props} list is
+formatted like:
+@example
+'((Stem thickness)
+  (Slur line-thickness)
+  ...)
+@end example"
+  (make-apply-context
+    (lambda (context)
+      (define (scale-prop grob-prop-list)
+        (let* ((grob (car grob-prop-list))
+               (prop (cadr grob-prop-list))
+               (where (if (eq? grob 'SpacingSpanner)
+                        (ly:context-find context 'Score)
+                        (case func-name
+                          ((magnifyMusic) context)
+                          ((magnifyStaff) (ly:context-find context 'Staff)))))
+               (grob-def (ly:context-grob-definition where grob)))
+          (if (eq? prop 'space-alist)
+            (let* ((space-alist (ly:assoc-get prop grob-def))
+                   (scale-spacing-tuple (lambda (x)
+                                          (cons (car x)
+                                                (cons (cadr x)
+                                                      (* mag (cddr x))))))
+                   (scaled-tuples (map scale-spacing-tuple space-alist))
+                   (new-alist (append scaled-tuples space-alist)))
+              (ly:context-pushpop-property where grob prop new-alist))
+            (let* ((val (ly:assoc-get prop grob-def 1))
+                   (proc (lambda (x)
+                           (if allowed-to-shrink?
+                             (* x mag)
+                             (* x (max 1 mag)))))
+                   (new-val (if (number-pair? val)
+                              (cons (proc (car val))
+                                    (proc (cdr val)))
+                              (proc val))))
+              (ly:context-pushpop-property where grob prop new-val)))))
+      (if (or (eq? func-name 'magnifyMusic)
+              ;; for \magnifyStaff, only scale the properties
+              ;; if staff magnification is changing
+              (staff-magnification-is-changing? context mag))
+        (for-each scale-prop props)))))
+
+(define-public (revert-props func-name mag props)
+  "Used by @code{\\magnifyMusic} and @code{\\magnifyStaff}.  Revert each
+prop in @var{props} in the appropriate context.  @var{func-name} is
+either @code{'magnifyMusic} or @code{'magnifyStaff}.  The @var{props}
+list is formatted like:
+@example
+'((Stem thickness)
+  (Slur line-thickness)
+  ...)
+@end example"
+  (make-apply-context
+    (lambda (context)
+      (define (revert-prop grob-prop-list)
+        (let* ((grob (car grob-prop-list))
+               (prop (cadr grob-prop-list))
+               (where (if (eq? grob 'SpacingSpanner)
+                        (ly:context-find context 'Score)
+                        (case func-name
+                          ((magnifyMusic) context)
+                          ((magnifyStaff) (ly:context-find context 'Staff))))))
+          (ly:context-pushpop-property where grob prop)))
+      (if (or (eq? func-name 'magnifyMusic)
+              ;; for \magnifyStaff...
+              (and
+                ;; don't revert the user's property overrides
+                ;; the first time \magnifyStaff is called
+                (magnifyStaff-is-set? context mag)
+                ;; revert the overrides from the previous \magnifyStaff,
+                ;; but only if staff magnification is changing
+                (staff-magnification-is-changing? context mag)))
+        (for-each revert-prop props)))))
+
+;; \magnifyMusic only
+(define-public (scale-beam-thickness mag)
+  "Used by @code{\\magnifyMusic}.  Scaling @code{Beam.beam-thickness}
+exactly to the @var{mag} value will not work.  This uses two reference
+values for @code{beam-thickness} to determine an acceptable value when
+scaling, then does the equivalent of a
+@code{\\temporary@tie{}\\override} with the new value."
+  (make-apply-context
+    (lambda (context)
+      (let* ((grob-def (ly:context-grob-definition context 'Beam))
+             (val (ly:assoc-get 'beam-thickness grob-def 0.48))
+             (ratio-to-default (/ val 0.48))
+             ;; gives beam-thickness=0.48 when mag=1 (like default),
+             ;; gives beam-thickness=0.35 when mag=0.63 (like CueVoice)
+             (scaled-default (+ 119/925 (* mag 13/37)))
+             (new-val (* scaled-default ratio-to-default)))
+        (ly:context-pushpop-property context 'Beam 'beam-thickness new-val)))))
index 776e618e37f1b6823c2f5524cef24fa86d817ebb..c607fe4122805ab0e3baa92539fc26c8f1ea3ac0 100644 (file)
@@ -562,34 +562,37 @@ and duration-log @var{log}."
 ;; a formatter function, which is simply a wrapper around an existing
 ;; tuplet formatter function. It takes the value returned by the given
 ;; function and appends a note of given length.
-(define-public ((tuplet-number::append-note-wrapper function note) grob)
+(define ((tuplet-number::append-note-wrapper function note) grob)
   (let ((txt (if function (function grob) #f)))
 
     (if txt
         (markup txt #:fontsize -5 #:note note UP)
         (markup #:fontsize -5 #:note note UP))))
+(export tuplet-number::append-note-wrapper)
 
 ;; Print a tuplet denominator with a different number than the one derived from
 ;; the actual tuplet fraction
-(define-public ((tuplet-number::non-default-tuplet-denominator-text denominator)
+(define ((tuplet-number::non-default-tuplet-denominator-text denominator)
                 grob)
   (number->string (if denominator
                       denominator
                       (ly:event-property (event-cause grob) 'denominator))))
+(export tuplet-number::non-default-tuplet-denominator-text)
 
 ;; Print a tuplet fraction with different numbers than the ones derived from
 ;; the actual tuplet fraction
-(define-public ((tuplet-number::non-default-tuplet-fraction-text
+(define ((tuplet-number::non-default-tuplet-fraction-text
                  denominator numerator) grob)
   (let* ((ev (event-cause grob))
          (den (if denominator denominator (ly:event-property ev 'denominator)))
          (num (if numerator numerator (ly:event-property ev 'numerator))))
 
     (format #f "~a:~a" den num)))
+(export tuplet-number::non-default-tuplet-fraction-text)
 
 ;; Print a tuplet fraction with note durations appended to the numerator and the
 ;; denominator
-(define-public ((tuplet-number::fraction-with-notes
+(define ((tuplet-number::fraction-with-notes
                  denominatornote numeratornote) grob)
   (let* ((ev (event-cause grob))
          (denominator (ly:event-property ev 'denominator))
@@ -597,10 +600,11 @@ and duration-log @var{log}."
 
     ((tuplet-number::non-default-fraction-with-notes
       denominator denominatornote numerator numeratornote) grob)))
+(export tuplet-number::fraction-with-notes)
 
 ;; Print a tuplet fraction with note durations appended to the numerator and the
 ;; denominator
-(define-public ((tuplet-number::non-default-fraction-with-notes
+(define ((tuplet-number::non-default-fraction-with-notes
                  denominator denominatornote numerator numeratornote) grob)
   (let* ((ev (event-cause grob))
          (den (if denominator denominator (ly:event-property ev 'denominator)))
@@ -612,6 +616,7 @@ and duration-log @var{log}."
                          (make-simple-markup " : ")
                          (make-simple-markup (format #f "~a" num))
                          (markup #:fontsize -5 #:note numeratornote UP)))))
+(export tuplet-number::non-default-fraction-with-notes)
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1021,7 +1026,7 @@ between the two text elements."
                                              '(bound-details left padding)
                                              (+ my-padding script-padding)))))))
 
-(define-public ((elbowed-hairpin coords mirrored?) grob)
+(define ((elbowed-hairpin coords mirrored?) grob)
   "Create hairpin based on a list of @var{coords} in @code{(cons x y)}
 form.  @code{x} is the portion of the width consumed for a given line
 and @code{y} is the portion of the height.  For example,
@@ -1080,6 +1085,7 @@ and draws the stencil based on its coordinates.
             (if mirrored? (my-c-p-s downlist thick decresc?) empty-stencil))
            (cons xtrans ytrans)))
         '())))
+(export elbowed-hairpin)
 
 (define-public flared-hairpin
   (elbowed-hairpin '((0.95 . 0.4) (1.0 . 1.0)) #t))
@@ -1099,13 +1105,14 @@ and draws the stencil based on its coordinates.
                                     (make-tied-lyric-markup text)
                                     text))))
 
-(define-public ((grob::calc-property-by-copy prop) grob)
+(define ((grob::calc-property-by-copy prop) grob)
   (ly:event-property (event-cause grob) prop))
+(export grob::calc-property-by-copy)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; general inheritance
 
-(define-public ((grob::inherit-parent-property axis property . default) grob)
+(define ((grob::inherit-parent-property axis property . default) grob)
   "@var{grob} callback generator for inheriting a @var{property} from
 an @var{axis} parent, defaulting to @var{default} if there is no
 parent or the parent has no setting."
@@ -1115,6 +1122,7 @@ parent or the parent has no setting."
       (apply ly:grob-property parent property default))
      ((pair? default) (car default))
      (else '()))))
+(export grob::inherit-parent-property)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; fret boards
index 8f6839ab35dbf92c64598061c801811ec3374fb3..d0adef3033a48df7b39a0db5505f73a13c9057c6 100644 (file)
@@ -20,7 +20,8 @@
 
 (define-public (set-paper-dimension-variables mod)
   (module-define! mod 'dimension-variables
-                  '(blot-diameter
+                  '(binding-offset
+                    blot-diameter
                     bottom-margin
                     cm
                     footnote-footer-padding
index 668bf2faa3a1b390bc13f2552859fac18cbf1b9b..615a6dcdf0dd616fac330360c53b7897e485ac01 100644 (file)
 ;; (dotted) half notes to distinguish them from quarter notes:
 (define-public (tabvoice::make-double-stem-width-for-half-notes grob)
   (let ((X-extent (ly:stem::width grob)))
-
-    ;; is the note a (dotted) half note?
-    (if (= 1 (ly:grob-property grob 'duration-log))
-        ;; yes -> return double stem width
-        (cons (car X-extent) (+ 0.5 (* 2 (cdr X-extent))))
-        ;; no -> return simple stem width
-        X-extent)))
+    ;; does the stem exist and is it on a (dotted) half note?
+    (if (and (not (equal? X-extent empty-interval))
+             (= 1 (ly:grob-property grob 'duration-log)))
+
+      ;; yes -> return double stem X-extent
+      (let* ((single-stem-width (- (cdr X-extent) (car X-extent)))
+             (separation (ly:grob-property grob 'double-stem-separation 0.5))
+             (total-width (+ single-stem-width separation))
+             (half-width (/ total-width 2)))
+        (cons (- half-width) half-width))
+      ;; no -> return simple stem X-extent
+      X-extent)))
 
 (define-public (tabvoice::draw-double-stem-for-half-notes grob)
-  (let ((stem (ly:stem::print grob)))
-
-    ;; is the note a (dotted) half note?
-    (if (= 1 (ly:grob-property grob 'duration-log))
-        ;; yes -> draw double stem
-        (ly:stencil-combine-at-edge stem X RIGHT stem 0.5)
-        ;; no -> draw simple stem
-        stem)))
+  (let ((stem-stencil (ly:stem::print grob)))
+    ;; does the stem exist and is it on a (dotted) half note?
+    (if (and (ly:stencil? stem-stencil)
+             (= 1 (ly:grob-property grob 'duration-log)))
+
+      ;; yes -> draw double stem
+      (let* ((separation (ly:grob-property grob 'double-stem-separation 0.5))
+             (half-separation (/ separation 2)))
+        (ly:stencil-add
+          (ly:stencil-translate-axis stem-stencil (- half-separation) X)
+          (ly:stencil-translate-axis stem-stencil half-separation X)))
+      ;; no -> draw simple stem (or none at all)
+      stem-stencil)))
 
 ;; as default, the glissando line between fret numbers goes
 ;; upwards, here we have a function to correct this behavior:
 
 
 ;; a callback for custom fret labels
-(define-public ((tab-note-head::print-custom-fret-label fret) grob)
+(define ((tab-note-head::print-custom-fret-label fret) grob)
   (ly:grob-set-property! grob 'text fret)
   (tab-note-head::print grob))
+(export tab-note-head::print-custom-fret-label)
 
 (define-public (tab-note-head::print grob)
   (define (is-harmonic? grob)
index 8e6ae7b7bb703b98533df4b6796eee23c56a9ce4..41a32dd4672b19c0658119de1b4c3b7ee42b1637 100644 (file)
@@ -23,7 +23,7 @@
 
 ;;;;;;;;;;;;;;;;;;
 
-(define-public ((marked-up-headfoot what-odd what-even)
+(define ((marked-up-headfoot what-odd what-even)
                 layout scopes page-number is-last-bookpart is-bookpart-last-page)
   "Read variables @var{what-odd}, @var{what-even} from @var{layout},
 and interpret them as markup.  The @var{props} argument will include
@@ -71,8 +71,9 @@ variables set in @var{scopes} and @code{page:is-bookpart-last-page},
             (markup? (get what-even)))
        (get what-even)
        (get what-odd))))
+(export marked-up-headfoot)
 
-(define-public ((marked-up-title what) layout scopes)
+(define ((marked-up-title what) layout scopes)
   "Read variables @var{what} from @var{scopes}, and interpret it as markup.
 The @var{props} argument will include variables set in @var{scopes} (prefixed
 with `header:'."
@@ -101,3 +102,4 @@ with `header:'."
     (if (markup? markup)
         (interpret-markup layout props markup)
         empty-stencil)))
+(export marked-up-title)
index 4479d3ae1b24f51e87671fccdc99cf100f889715..3e65016edb9b391225afe2536b97f4ad61e66c88 100644 (file)
@@ -42,7 +42,7 @@ way the transposition number is displayed."
 ;; prepare using other fonts than 'fetaMusic.
 ;; Currently it ensures that the default-fonts are used by the
 ;; markup-command 'note-by-number' in 'metronome-markup' (see below).
-(define*-public
+(define*
   ((styled-metronome-markup #:optional (glyph-font 'default))
                             event context)
    (let ((hide-note (ly:context-property context 'tempoHideNote #f))
@@ -51,6 +51,7 @@ way the transposition number is displayed."
          (count (ly:event-property event 'metronome-count)))
 
    (metronome-markup glyph-font text dur count hide-note)))
+(export styled-metronome-markup)
 
 (define-public format-metronome-markup
   (styled-metronome-markup))
@@ -634,16 +635,19 @@ only ~a fret labels provided")
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; bar numbers
 
-(define-public ((every-nth-bar-number-visible n) barnum mp)
+(define ((every-nth-bar-number-visible n) barnum mp)
   (= 0 (modulo barnum n)))
+(export every-nth-bar-number-visible)
 
-(define-public ((modulo-bar-number-visible n m) barnum mp)
+(define ((modulo-bar-number-visible n m) barnum mp)
   (and (> barnum 1) (= m (modulo barnum n))))
+(export modulo-bar-number-visible)
 
-(define-public ((set-bar-number-visibility n) tr)
+(define ((set-bar-number-visibility n) tr)
   (let ((bn (ly:context-property tr 'currentBarNumber)))
     (ly:context-set-property! tr 'barNumberVisibility
                               (modulo-bar-number-visible n (modulo bn n)))))
+(export set-bar-number-visibility)
 
 (define-public (first-bar-number-invisible barnum mp)
   (> barnum 1))
@@ -688,8 +692,9 @@ only ~a fret labels provided")
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; percent repeat counters
 
-(define-public ((every-nth-repeat-count-visible n) count context)
+(define ((every-nth-repeat-count-visible n) count context)
   (= 0 (modulo count n)))
+(export every-nth-repeat-count-visible)
 
 (define-public (all-repeat-counts-visible count context) #t)
 
diff --git a/scripts/auxiliar/make-countdown-announcement.sh b/scripts/auxiliar/make-countdown-announcement.sh
new file mode 100755 (executable)
index 0000000..fe1747f
--- /dev/null
@@ -0,0 +1,259 @@
+#!/bin/bash
+
+# convert a Google code CSV file into a countdown announcement
+#
+# USAGE:
+#   make-countdown-announcement.sh NEXT_DEADLINE_DATE [PATCH-MEISTER]
+#     OR
+#   make-countdown-announcement.sh NEXT_DEADLINE_DATE [PATCH-MEISTER] > OUTPUT-FILE
+#
+# EXAMPLES:
+#   make-countdown-announcement.sh "Jan 1, 2001" "John Doe"
+#   make-countdown-announcement.sh "Jan 1, 2001" John
+#   make-countdown-announcement.sh "Jan 1, 2001" > countdown.txt
+
+
+CSV_FILE=lilypond-issues.csv # comma-separated values
+TSV_FILE=lilypond-issues.tsv # tab-separated values
+URL_BASE="http://code.google.com/p/lilypond/issues"
+QUERY_STR="q=Patch%3Apush%2Ccountdown%2Creview%2Cnew%2Cwaiting&colspec=Patch%20Owner%20ID%20Summary&sort=patch"
+DEADLINE=$1
+PATCH_MEISTER=${2:-"The Patch Mister"}
+MAILMAP='
+"adam.spiers","Adam Spiers"
+"aleksandr.andreev","Aleksandr Andreev"
+"benko.pal","Benkő Pál"
+"bordage.bertrand","Bertrand Bordage"
+"brownian.box","Dmytro O. Redchuk"
+"Carl.D.Sorensen","Carl Sorensen"
+"carlopeterson","Carl Peterson"
+"colinghall","Colin Hall"
+"ColinPKCampbell","Colin Campbell"
+"d8valily","Mark Mathias"
+"dak@gnu.org","David Kastrup"
+"david.nalesnik","David Nalesnik"
+"dschudy","Devon Schudy"
+"Eluzew","Eluze W"
+"erlenda","Erlend Aasland"
+"fedelogy","Federico Bruni"
+"frederic.bron.1995@polytechnique.org","Frédéric Bron"
+"graham@percival-music.ca","Graham Percival"
+"hanwenn","Han-Wen Nienhuys"
+"hjunes","Heikki Junes"
+"ianhulin44","Ian Hulin"
+"idragosani","Brett McCoy"
+"jameselihubailey","James E. Bailey"
+"janek.lilypond","Janek Warchoł"
+"jan.nieuwenhuizen","Jan Nieuwenhuizen"
+"joeneeman","Joe Neeman"
+"john.mandereau","John Mandereau"
+"joseph.wakeling","Joseph Wakeling"
+"julien.rioux","Julien Rioux"
+"kieren@alumni.rice.edu","Kieren MacMillan"
+"k-ohara5a5a@oco.net","Keith OHara"
+"lemzwerg","Werner Lemberg"
+"lilyliska","Urs Liska"
+"lilypond.patchy.graham","Graham Percival"
+"mandolaerik","Erik Sandberg"
+"marc@hohlart.de","Marc Hohl"
+"marek@gregoriana.sk","Marek Klein"
+"markpolesky","Mark Polesky"
+"milimetr88","Łukasz Czerwiński"
+"mtsolo","Mike Solomon"
+"neziap","Janek Warchoł"
+"nicolas.sceaux","Nicolas Sceaux"
+"n.puttock","Neil Puttock"
+"paconet.org","Francisco Vila"
+"PhilEHolmes","Phil Holmes"
+"pkx166h","James Lowe"
+"plroskin","Pavel Roskin"
+"pnorcks","Patrick McCarty"
+"RalphBugList","Ralph Palmer"
+"reinhold.kainhofer","Reinhold Kainhofer"
+"rzedeler","Rune Zedeler"
+"schilke.60","Derek Klinge"
+"shingarov","Boris Shingarov"
+"tdanielsmusic","Trevor Daniels"
+"thomasmorley65","Thomas Morley"
+"v.villenave","Valentin Villenave"
+'
+
+
+usage() {
+  cat << EOF >&2
+USAGE:
+  `basename $0` NEXT_DEADLINE_DATE [PATCH-MEISTER]
+    OR
+  `basename $0` NEXT_DEADLINE_DATE [PATCH-MEISTER] > OUTPUT-FILE
+
+EXAMPLES:
+  `basename $0` "Jan 1, 2001" "John Doe"
+  `basename $0` "Jan 1, 2001" John
+  `basename $0` "Jan 1, 2001" > countdown.txt
+EOF
+  exit 1
+}
+
+
+# display USAGE
+case $# in
+  1|2) case $1 in
+         -h|--help) usage ;;
+         *) ;;
+       esac ;;
+  *) usage ;;
+esac
+
+
+# clean up in case of a previous interrupt
+remove-if-exists() {
+  if [ -e $1 ]; then rm $1; fi
+}
+remove-if-exists push.tmp
+remove-if-exists countdown.tmp
+remove-if-exists review.tmp
+remove-if-exists new.tmp
+remove-if-exists waiting.tmp
+remove-if-exists $TSV_FILE
+
+
+# show initial instructions
+read -p "First, in your web browser, make sure you're logged in to:
+
+  $URL_BASE/list
+
+Then save the following link as a file called \"$CSV_FILE\"
+(save it to this directory -- $PWD/):
+
+  $URL_BASE/csv?$QUERY_STR
+
+Then press enter"
+
+
+if [ ! -e $CSV_FILE ]; then
+  echo -e "\nError: can't find \`$CSV_FILE': No such file or directory" >&2
+  exit 1
+fi
+
+
+# If the user wasn't logged in when downloading $CSV_FILE, the emails will
+# appear truncated, e.g. "abc...@gmail.com", and won't be properly replaced by
+# the author names later on.  This code block complains if the string "...@" is
+# found anywhere in the email field.
+if [ "`cut -d, -f2 $CSV_FILE | grep -o '\.\.\.@'`" ]; then
+    read -p "
+It looks like you were not logged in to Google code when you downloaded
+$CSV_FILE.  Continue anyway (y/n)? "
+  while :
+  do
+    case "$REPLY" in
+      y) break ;;
+      n) exit 1 ;;
+      *) read -p "Enter \`y' to continue; \`n' to quit and try again: "
+    esac
+  done
+fi
+
+
+# change the quoted, comma-separated file
+# into an unquoted, tab-separated file
+# and keep only the first 4 fields: Patch,Owner,ID,Summary
+sed '{
+1d
+/^$/d
+s/^"//
+s/","/\t/g
+s/",*$//
+s/""/"/g
+}' $CSV_FILE | cut -sf1-4 > $TSV_FILE
+
+
+EMAILS_USED=`awk -F"\t" '{ print $2 }' $TSV_FILE | sort --unique`
+KNOWN_EMAILS=`
+IFS=$'\n'
+for i in $MAILMAP; do
+  echo "$i" | sed 's/^"\(.*\)",".*/\1/'
+done | sort --unique`
+UNKNOWN_EMAILS=`comm -23 <(echo "$EMAILS_USED") <(echo "$KNOWN_EMAILS")`
+
+
+# Unknown emails/usernames usually mean new contributors.
+# If any are found, the user is prompted to add the new
+# authors' names to the MAILMAP list above.
+if [ "$UNKNOWN_EMAILS" ]; then
+  COUNT=`wc --lines <(echo "$UNKNOWN_EMAILS") | sed 's/ .*//'`
+  if [ $COUNT -eq 1 ]; then
+    echo -e "\nError: The following email/username needs to be associated with a name:" >&2
+    echo "$UNKNOWN_EMAILS" | sed 's/^/  /' >&2
+    echo -e "Please add it to the MAILMAP list in\n  $0" >&2
+  else
+    echo -e "\nError: The following emails/usernames need to be associated with names:" >&2
+    echo "$UNKNOWN_EMAILS" | sed 's/^/  /' >&2
+    echo -e "Please add them to the MAILMAP list in\n  $0" >&2
+  fi
+  echo "using the following form:" >&2
+  echo "$UNKNOWN_EMAILS" | sed 's/.*/  "&","author name"/' >&2
+  echo "and commit your changes to the main git repository." >&2
+  remove-if-exists $TSV_FILE
+  exit 1
+fi
+
+
+EMAIL_REPLACEMENTS=`
+IFS=$'\n'
+for i in $MAILMAP; do
+  echo "$i" | sed 's/^"\(.*\)","\(.*\)"$/s\/\1\/\2\/g/'
+done`
+
+
+# replace emails/usernames with author names
+# and separate the issues by patch type
+sed -n "{
+$EMAIL_REPLACEMENTS
+/^push/w push.tmp
+/^countdown/w countdown.tmp
+/^review/w review.tmp
+/^new/w new.tmp
+/^waiting/w waiting.tmp
+}" $TSV_FILE
+
+
+# clean up; $TSV_FILE is no longer needed
+remove-if-exists $TSV_FILE
+
+
+format-entry() {
+  TYPE=$1
+  FILE="$1.tmp"
+  if [ -s $FILE ]; then
+    echo -e "$TYPE:\n" | tr 'a-z' 'A-Z'
+    awk -v UB=$URL_BASE -F"\t" \
+      '{ printf("%s: %s\n%s/detail?id=%d\n\n"), $2, $4, UB, $3 }' $FILE
+    echo -e "____________________\n\n"
+  fi
+  remove-if-exists $FILE
+}
+
+echo >&2
+
+
+# display the countdown announcement
+echo "Hello,
+
+Here is the current patch countdown list.
+The next countdown will be on $DEADLINE.
+
+You can always view the most current countdown list here:
+$URL_BASE/list?$QUERY_STR
+
+____________________
+
+"
+
+format-entry push
+format-entry countdown
+format-entry review
+format-entry new
+format-entry waiting
+
+echo -e "Thank you,\n$PATCH_MEISTER"
index 8d06023b01375455e2453bff0dc6e5ac4b3c1bca..d17fd53c71263e02bfd042f41bc4bbe6f854263d 100755 (executable)
@@ -28,7 +28,7 @@ lilypond_bin = os.path.join (conv_path, 'lilypond')
 
 
 LY_HEADER_LSR = '''%% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
index e6a6807440a30a3a630e7d57001f7d87af226966..e270aed95e7d3001ea905a3eb5c5ffac03f8adde 100644 (file)
@@ -41,7 +41,7 @@ additional_definitions = {
   "tuplet-note-wrapper": """      % a formatter function, which is simply a wrapper around an existing
       % tuplet formatter function. It takes the value returned by the given
       % function and appends a note of given length.
-  #(define-public ((tuplet-number::append-note-wrapper function note) grob)
+  #(define ((tuplet-number::append-note-wrapper function note) grob)
     (let* ((txt (if function (function grob) #f)))
       (if txt
         (markup txt #:fontsize -5 #:note note UP)
@@ -1315,7 +1315,7 @@ def musicxml_words_to_lily_event (words):
 # convert accordion-registration to lilypond.
 # Since lilypond does not have any built-in commands, we need to create
 # the markup commands manually and define our own variables.
-# Idea was taken from: http://lsr.dsi.unimi.it/LSR/Item?id=194
+# Idea was taken from: http://lsr.di.unimi.it/LSR/Item?id=194
 def musicxml_accordion_to_markup (mxl_event):
     commandname = "accReg"
     command = ""