]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge remote-tracking branch 'origin/master' into translation
authorDavid Kastrup <dak@gnu.org>
Thu, 6 Dec 2012 14:53:14 +0000 (15:53 +0100)
committerDavid Kastrup <dak@gnu.org>
Thu, 6 Dec 2012 14:53:14 +0000 (15:53 +0100)
Conflicts:
Documentation/changes.tely

has been resolved by taking the version in master

Documentation/fr/notation/input.itely
Documentation/fr/notation/spacing.itely

Code conflicts (possibly from use of convert-ly) have been resolved by
taking the code corresponding to the current English translation.

1133 files changed:
.dir-locals.el [new file with mode: 0644]
.gitignore
Documentation/GNUmakefile
Documentation/changes.tely
Documentation/common-macros.itexi
Documentation/contributor/GNUmakefile [deleted file]
Documentation/contributor/introduction.itexi
Documentation/contributor/issues.itexi
Documentation/contributor/programming-work.itexi
Documentation/contributor/quick-start.itexi
Documentation/contributor/regressions.itexi
Documentation/contributor/source-code.itexi
Documentation/cs/GNUmakefile
Documentation/cs/essay/GNUmakefile [deleted file]
Documentation/cs/included/.gitignore [new file with mode: 0644]
Documentation/cs/included/GNUmakefile [deleted file]
Documentation/cs/learning/GNUmakefile [deleted file]
Documentation/cs/learning/fundamental.itely
Documentation/cs/learning/tweaks.itely
Documentation/cs/texidocs/GNUmakefile [deleted file]
Documentation/cs/usage/GNUmakefile [deleted file]
Documentation/cs/usage/running.itely
Documentation/cs/web/GNUmakefile [deleted file]
Documentation/css/GNUmakefile
Documentation/css/lilypond-website.css
Documentation/cyrillic.itexi [new file with mode: 0644]
Documentation/de/GNUmakefile
Documentation/de/essay/GNUmakefile [deleted file]
Documentation/de/essay/engraving.itely
Documentation/de/extending/GNUmakefile [deleted file]
Documentation/de/extending/programming-interface.itely
Documentation/de/extending/scheme-tutorial.itely
Documentation/de/included/GNUmakefile [deleted file]
Documentation/de/learning/GNUmakefile [deleted file]
Documentation/de/learning/fundamental.itely
Documentation/de/learning/tweaks.itely
Documentation/de/notation/GNUmakefile [deleted file]
Documentation/de/notation/ancient.itely
Documentation/de/notation/changing-defaults.itely
Documentation/de/notation/cheatsheet.itely
Documentation/de/notation/chords.itely
Documentation/de/notation/editorial.itely
Documentation/de/notation/expressive.itely
Documentation/de/notation/fretted-strings.itely
Documentation/de/notation/input.itely
Documentation/de/notation/keyboards.itely
Documentation/de/notation/notation-appendices.itely
Documentation/de/notation/percussion.itely
Documentation/de/notation/pitches.itely
Documentation/de/notation/rhythms.itely
Documentation/de/notation/simultaneous.itely
Documentation/de/notation/spacing.itely
Documentation/de/notation/staff.itely
Documentation/de/notation/text.itely
Documentation/de/notation/vocal.itely
Documentation/de/search-box.ihtml
Documentation/de/texidocs/GNUmakefile [deleted file]
Documentation/de/usage/GNUmakefile [deleted file]
Documentation/de/usage/running.itely
Documentation/de/web/GNUmakefile [deleted file]
Documentation/es/GNUmakefile
Documentation/es/changes.tely
Documentation/es/essay/GNUmakefile [deleted file]
Documentation/es/essay/engraving.itely
Documentation/es/extending/GNUmakefile [deleted file]
Documentation/es/extending/programming-interface.itely
Documentation/es/extending/scheme-tutorial.itely
Documentation/es/included/GNUmakefile [deleted file]
Documentation/es/learning/GNUmakefile [deleted file]
Documentation/es/learning/fundamental.itely
Documentation/es/learning/tweaks.itely
Documentation/es/notation/GNUmakefile [deleted file]
Documentation/es/notation/ancient.itely
Documentation/es/notation/changing-defaults.itely
Documentation/es/notation/cheatsheet.itely
Documentation/es/notation/chords.itely
Documentation/es/notation/editorial.itely
Documentation/es/notation/expressive.itely
Documentation/es/notation/fretted-strings.itely
Documentation/es/notation/input.itely
Documentation/es/notation/keyboards.itely
Documentation/es/notation/notation-appendices.itely
Documentation/es/notation/percussion.itely
Documentation/es/notation/pitches.itely
Documentation/es/notation/rhythms.itely
Documentation/es/notation/simultaneous.itely
Documentation/es/notation/spacing.itely
Documentation/es/notation/staff.itely
Documentation/es/notation/text.itely
Documentation/es/notation/vocal.itely
Documentation/es/search-box.ihtml
Documentation/es/texidocs/GNUmakefile [deleted file]
Documentation/es/usage/GNUmakefile [deleted file]
Documentation/es/usage/running.itely
Documentation/es/web/GNUmakefile [deleted file]
Documentation/es/web/news-front.itexi
Documentation/es/web/news.itexi
Documentation/essay/GNUmakefile [deleted file]
Documentation/essay/engraving.itely
Documentation/extending/GNUmakefile [deleted file]
Documentation/extending/programming-interface.itely
Documentation/extending/scheme-tutorial.itely
Documentation/fr/GNUmakefile
Documentation/fr/essay/GNUmakefile [deleted file]
Documentation/fr/essay/engraving.itely
Documentation/fr/extending/GNUmakefile [deleted file]
Documentation/fr/extending/programming-interface.itely
Documentation/fr/extending/scheme-tutorial.itely
Documentation/fr/included/GNUmakefile [deleted file]
Documentation/fr/learning/GNUmakefile [deleted file]
Documentation/fr/learning/fundamental.itely
Documentation/fr/learning/tweaks.itely
Documentation/fr/notation/GNUmakefile [deleted file]
Documentation/fr/notation/ancient.itely
Documentation/fr/notation/changing-defaults.itely
Documentation/fr/notation/cheatsheet.itely
Documentation/fr/notation/chords.itely
Documentation/fr/notation/editorial.itely
Documentation/fr/notation/expressive.itely
Documentation/fr/notation/fretted-strings.itely
Documentation/fr/notation/input.itely
Documentation/fr/notation/keyboards.itely
Documentation/fr/notation/notation-appendices.itely
Documentation/fr/notation/percussion.itely
Documentation/fr/notation/pitches.itely
Documentation/fr/notation/rhythms.itely
Documentation/fr/notation/simultaneous.itely
Documentation/fr/notation/spacing.itely
Documentation/fr/notation/staff.itely
Documentation/fr/notation/text.itely
Documentation/fr/notation/vocal.itely
Documentation/fr/search-box.ihtml
Documentation/fr/texidocs/GNUmakefile [deleted file]
Documentation/fr/usage/GNUmakefile [deleted file]
Documentation/fr/usage/running.itely
Documentation/fr/web/GNUmakefile [deleted file]
Documentation/hu/GNUmakefile
Documentation/hu/included/.gitignore [new file with mode: 0644]
Documentation/hu/included/GNUmakefile [deleted file]
Documentation/hu/learning/GNUmakefile [deleted file]
Documentation/hu/learning/fundamental.itely
Documentation/hu/learning/preface.itely [new file with mode: 0644]
Documentation/hu/learning/tweaks.itely
Documentation/hu/search-box.ihtml
Documentation/hu/texidocs/GNUmakefile [deleted file]
Documentation/hu/usage/GNUmakefile [deleted file]
Documentation/hu/usage/running.itely
Documentation/hu/web/GNUmakefile [deleted file]
Documentation/hu/web/basic-authors.itexi
Documentation/included/GNUmakefile [deleted file]
Documentation/included/authors.itexi
Documentation/included/display-predefined-string-tunings.ly
Documentation/included/gonville.ly
Documentation/included/note-head-style.ly
Documentation/included/script-chart.ly
Documentation/it/GNUmakefile
Documentation/it/included/GNUmakefile [deleted file]
Documentation/it/learning/GNUmakefile [deleted file]
Documentation/it/learning/fundamental.itely
Documentation/it/learning/tweaks.itely
Documentation/it/notation/GNUmakefile [deleted file]
Documentation/it/notation/pitches.itely
Documentation/it/search-box.ihtml
Documentation/it/texidocs/GNUmakefile [deleted file]
Documentation/it/usage/GNUmakefile [deleted file]
Documentation/it/usage/running.itely
Documentation/it/web/GNUmakefile [deleted file]
Documentation/ja/GNUmakefile
Documentation/ja/included/GNUmakefile [deleted file]
Documentation/ja/learning/GNUmakefile [deleted file]
Documentation/ja/learning/fundamental.itely
Documentation/ja/learning/tweaks.itely
Documentation/ja/notation/GNUmakefile [deleted file]
Documentation/ja/notation/changing-defaults.itely
Documentation/ja/notation/cheatsheet.itely
Documentation/ja/notation/chords.itely
Documentation/ja/notation/editorial.itely
Documentation/ja/notation/expressive.itely
Documentation/ja/notation/fretted-strings.itely
Documentation/ja/notation/input.itely
Documentation/ja/notation/keyboards.itely
Documentation/ja/notation/percussion.itely
Documentation/ja/notation/pitches.itely
Documentation/ja/notation/rhythms.itely
Documentation/ja/notation/simultaneous.itely
Documentation/ja/notation/spacing.itely
Documentation/ja/notation/staff.itely
Documentation/ja/notation/text.itely
Documentation/ja/notation/vocal.itely
Documentation/ja/texidocs/GNUmakefile [deleted file]
Documentation/ja/usage/GNUmakefile [deleted file]
Documentation/ja/usage/running.itely
Documentation/ja/web/GNUmakefile [deleted file]
Documentation/learning/GNUmakefile [deleted file]
Documentation/learning/fundamental.itely
Documentation/learning/templates.itely
Documentation/learning/tweaks.itely
Documentation/logo/GNUmakefile
Documentation/ly-examples/aucun-snippet.ly
Documentation/ly-examples/bach-bwv610.ly
Documentation/ly-examples/bach-schenker.ly
Documentation/ly-examples/cary-layout.ily
Documentation/ly-examples/cary.ly
Documentation/ly-examples/granados.ly
Documentation/ly-examples/orchestra.ly
Documentation/ly-examples/tab-example.ly
Documentation/misc/GNUmakefile
Documentation/misc/THANKS-1.8 [new file with mode: 0644]
Documentation/misc/THANKS-2.0 [new file with mode: 0644]
Documentation/misc/THANKS-2.10 [new file with mode: 0644]
Documentation/misc/THANKS-2.12 [new file with mode: 0644]
Documentation/misc/THANKS-2.14 [new file with mode: 0644]
Documentation/misc/THANKS-2.16 [new file with mode: 0644]
Documentation/misc/THANKS-2.2 [new file with mode: 0644]
Documentation/misc/THANKS-2.4 [new file with mode: 0644]
Documentation/misc/THANKS-2.6 [new file with mode: 0644]
Documentation/misc/THANKS-2.8 [new file with mode: 0644]
Documentation/nl/GNUmakefile
Documentation/nl/included/GNUmakefile [deleted file]
Documentation/nl/learning/GNUmakefile [deleted file]
Documentation/nl/learning/fundamental.itely
Documentation/nl/learning/preface.itely [new file with mode: 0644]
Documentation/nl/learning/templates.itely [new file with mode: 0644]
Documentation/nl/learning/tweaks.itely [new file with mode: 0644]
Documentation/nl/search-box.ihtml
Documentation/nl/texidocs/GNUmakefile [deleted file]
Documentation/nl/web/GNUmakefile [deleted file]
Documentation/notation/GNUmakefile [deleted file]
Documentation/notation/ancient.itely
Documentation/notation/changing-defaults.itely
Documentation/notation/cheatsheet.itely
Documentation/notation/chords.itely
Documentation/notation/editorial.itely
Documentation/notation/expressive.itely
Documentation/notation/fretted-strings.itely
Documentation/notation/input.itely
Documentation/notation/keyboards.itely
Documentation/notation/notation-appendices.itely
Documentation/notation/percussion.itely
Documentation/notation/pitches.itely
Documentation/notation/repeats.itely
Documentation/notation/rhythms.itely
Documentation/notation/simultaneous.itely
Documentation/notation/spacing.itely
Documentation/notation/staff.itely
Documentation/notation/text.itely
Documentation/notation/unfretted-strings.itely
Documentation/notation/vocal.itely
Documentation/pictures/GNUmakefile
Documentation/pictures/pdf/GNUmakefile [deleted file]
Documentation/po/included/.gitignore [new file with mode: 0644]
Documentation/search-box.ihtml
Documentation/snippets/GNUmakefile [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-bar-lines-to-chordnames-context.ly
Documentation/snippets/adding-drum-parts.ly
Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.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-timing-marks-to-long-glissandi.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-marks-with-various-notation-objects.ly
Documentation/snippets/aligning-objects-created-with-the--mark-command.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-note.ly
Documentation/snippets/analysis-brackets-above-the-staff.ly
Documentation/snippets/ancient-fonts.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/arabic-improvisation.ly
Documentation/snippets/asymmetric-slurs.ly
Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly
Documentation/snippets/bar-chords-notation-for-guitar--with-text-spanner.ly
Documentation/snippets/beams-across-line-breaks.ly
Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.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/centering-markup-on-note-heads-automatically.ly
Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly
Documentation/snippets/changing-beam-knee-gap.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-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-breath-mark-symbol.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-staff-size.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/chords-headword.ly
Documentation/snippets/coloring-notes-depending-on-their-pitch.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/contexts-and-engravers.snippet-list
Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly
Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly
Documentation/snippets/controlling-tuplet-bracket-visibility.ly
Documentation/snippets/creating-a-delayed-turn.ly
Documentation/snippets/creating-a-sequence-of-notes-on-various-pitches.ly
Documentation/snippets/creating-double-digit-fingerings.ly
Documentation/snippets/creating-simultaneous-rehearsal-marks.ly
Documentation/snippets/creating-text-spanners.ly
Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly
Documentation/snippets/cross-staff-stems.ly
Documentation/snippets/custodes.ly
Documentation/snippets/customizing-fretboard-fret-diagrams.ly
Documentation/snippets/customizing-markup-fret-diagrams.ly
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/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 [new file with mode: 0644]
Documentation/snippets/displaying-complex-chords.ly
Documentation/snippets/displaying-grob-ancestry.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/editorial-headword.ly
Documentation/snippets/engraving-ties-manually.ly
Documentation/snippets/engraving-tremolos-with-floating-beams.ly
Documentation/snippets/expressive-headword.ly
Documentation/snippets/expressive-marks.snippet-list
Documentation/snippets/extending-glissandi-across-repeats.ly [new file with mode: 0644]
Documentation/snippets/figured-bass-headword.ly
Documentation/snippets/fine-tuning-pedal-brackets.ly
Documentation/snippets/fingering-symbols-for-wind-instruments.ly
Documentation/snippets/flamenco-notation.ly
Documentation/snippets/flute-slap-notation.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/fret-diagrams-explained-and-developed.ly
Documentation/snippets/fretted-headword.ly
Documentation/snippets/fretted-string-harmonics-in-tablature.ly
Documentation/snippets/generating-custom-flags.ly
Documentation/snippets/generating-random-notes.ly
Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly
Documentation/snippets/glissandi-can-skip-grobs.ly
Documentation/snippets/grid-lines--changing-their-appearance.ly
Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
Documentation/snippets/guitar-slides.ly
Documentation/snippets/hairpins-with-different-line-styles.ly
Documentation/snippets/heavily-customized-polymetric-time-signatures.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/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.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-1.ly
Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly
Documentation/snippets/incipit.ly
Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly
Documentation/snippets/inserting-a-caesura.ly
Documentation/snippets/jazz-combo-template.ly
Documentation/snippets/keep-change-clefs-full-sized.ly
Documentation/snippets/keyboard-headword.ly
Documentation/snippets/laissez-vibrer-ties.ly
Documentation/snippets/line-arrows.ly
Documentation/snippets/lyrics-alignment.ly
Documentation/snippets/making-an-object-invisible-with-the-transparent-property.ly
Documentation/snippets/making-glissandi-breakable.ly
Documentation/snippets/making-slurs-with-complex-dash-structure.ly
Documentation/snippets/making-some-staff-lines-thicker-than-the-others.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/merging-multi-measure-rests-in-a-polyphonic-part.ly
Documentation/snippets/moving-dotted-notes-in-polyphony.ly
Documentation/snippets/moving-slur-positions-vertically.ly
Documentation/snippets/new/GNUmakefile [deleted file]
Documentation/snippets/new/adding-orchestral-cues-to-a-vocal-score.ly
Documentation/snippets/new/adding-timing-marks-to-long-glissandi.ly
Documentation/snippets/new/ancient-fonts.ly
Documentation/snippets/new/ancient-notation-template----modern-transcription-of-gregorian-music.ly
Documentation/snippets/new/bar-chords-notation-for-guitar--with-text-spanner.ly
Documentation/snippets/new/centering-markup-on-note-heads-automatically.ly
Documentation/snippets/new/chant-or-psalms-notation.ly
Documentation/snippets/new/chords-headword.ly
Documentation/snippets/new/extending-glissandi-across-repeats.ly [new file with mode: 0644]
Documentation/snippets/new/fretted-headword.ly
Documentation/snippets/new/generating-custom-flags.ly
Documentation/snippets/new/glissandi-can-skip-grobs.ly
Documentation/snippets/new/guitar-slides.ly
Documentation/snippets/new/incipit.ly
Documentation/snippets/new/jazz-combo-template.ly
Documentation/snippets/new/making-an-object-invisible-with-the-transparent-property.ly
Documentation/snippets/new/making-glissandi-breakable.ly
Documentation/snippets/new/positioning-multi-measure-rests.ly
Documentation/snippets/new/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly [new file with mode: 0644]
Documentation/snippets/new/redefining-grace-note-global-defaults.ly
Documentation/snippets/new/score-for-diatonic-accordion.ly
Documentation/snippets/new/staff-headword.ly
Documentation/snippets/new/string-number-extender-lines.ly
Documentation/snippets/new/using-a-tick-as-the-breath-mark-symbol.ly [new file with mode: 0644]
Documentation/snippets/new/using-alternative-flag-styles.ly
Documentation/snippets/new/using-grace-note-slashes-with-normal-heads.ly
Documentation/snippets/non-default-tuplet-numbers.ly
Documentation/snippets/numbers-as-easy-note-heads.ly
Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly
Documentation/snippets/outputting-the-version-number.ly
Documentation/snippets/page-label.ly
Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly
Documentation/snippets/pitches-headword.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-multi-measure-rests.ly
Documentation/snippets/positioning-segno-and-coda-with-line-break.ly
Documentation/snippets/positioning-text-markups-inside-slurs.ly
Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly
Documentation/snippets/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
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-metronome-and-rehearsal-marks-below-the-staff.ly
Documentation/snippets/printing-music-with-different-time-signatures.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/redefining-grace-note-global-defaults.ly
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/rest-styles.ly
Documentation/snippets/rhythmic-slashes.ly
Documentation/snippets/rhythms-headword.ly
Documentation/snippets/score-for-diatonic-accordion.ly
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-the-double-repeat-default-for-volte.ly
Documentation/snippets/setting-the-minimum-length-of-hairpins.ly
Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly
Documentation/snippets/simultaneous-headword.ly
Documentation/snippets/slides-in-tablature.ly
Documentation/snippets/staff-headword.ly
Documentation/snippets/staff-notation.snippet-list
Documentation/snippets/stem-and-beam-behavior-in-tablature.ly
Documentation/snippets/stemlets.ly
Documentation/snippets/strict-beat-beaming.ly
Documentation/snippets/string-number-extender-lines.ly
Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly
Documentation/snippets/table-of-contents.ly
Documentation/snippets/text-headword.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/tweaking-grace-layout-within-music.ly
Documentation/snippets/tweaks-and-overrides.snippet-list
Documentation/snippets/unfretted-headword.ly
Documentation/snippets/using-a-tick-as-the-breath-mark-symbol.ly [new file with mode: 0644]
Documentation/snippets/using-alternative-flag-styles.ly
Documentation/snippets/using-grace-note-slashes-with-normal-heads.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/vertically-aligned-dynamics-and-textscripts.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/vocal-ensemble-template-with-automatic-piano-reduction.ly
Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly
Documentation/snippets/vocal-ensemble-template.ly
Documentation/snippets/vocal-headword.ly
Documentation/snippets/wind-headword.ly
Documentation/snippets/woodwind-diagrams-key-lists.ly
Documentation/usage/GNUmakefile [deleted file]
Documentation/usage/running.itely
Documentation/usage/updating.itely
Documentation/web/GNUmakefile [deleted file]
Documentation/web/community.itexi
Documentation/web/download.itexi
Documentation/web/news-front.itexi
Documentation/web/news.itexi
Documentation/web/server/GNUmakefile [deleted file]
Documentation/web/server/lilypond.org.htaccess
Documentation/web/server/robots.txt
Documentation/web/server/tweets.xml
Documentation/zh/GNUmakefile
Documentation/zh/included/.gitignore [new file with mode: 0644]
Documentation/zh/included/GNUmakefile [deleted file]
Documentation/zh/search-box.ihtml
Documentation/zh/texidocs/GNUmakefile [deleted file]
Documentation/zh/web/GNUmakefile [deleted file]
GNUmakefile.in
ROADMAP
THANKS [deleted file]
VERSION
aclocal.m4 [new file with mode: 0644]
autogen.sh
config.make.in
config/config.guess [new file with mode: 0755]
config/config.sub [new file with mode: 0755]
config/install-sh [new file with mode: 0755]
configure.in
flower/GNUmakefile
flower/include/GNUmakefile [deleted file]
flower/include/file-name.hh
flower/include/guile-compatibility.hh
flower/include/interval-set.hh
flower/include/yaffut.hh
flower/interval-set.cc
flower/test-interval-set.cc [new file with mode: 0644]
input/regression/accidental-ancient.ly
input/regression/accidental-cautionary.ly
input/regression/accidental-contemporary.ly
input/regression/accidental-fingering-collision.ly [new file with mode: 0644]
input/regression/accidental-piano.ly
input/regression/accidental-placement-padding.ly
input/regression/accidental-suggestions.ly
input/regression/accidental-tie.ly
input/regression/accidental-voice.ly
input/regression/alignment-order.ly
input/regression/alignment-vertical-manual-setting.ly
input/regression/alter-broken.ly
input/regression/ambitus-gap.ly
input/regression/arpeggio-no-overshoot.ly
input/regression/arpeggio.ly
input/regression/auto-beam-bar.ly
input/regression/auto-beam-tuplets.ly
input/regression/backend-excercise.ly
input/regression/baerenreiter-sarabande.ly
input/regression/balloon.ly
input/regression/bar-extent.ly
input/regression/bar-line-define-bar-glyph.ly [new file with mode: 0644]
input/regression/bar-line-define-bar-line.ly [new file with mode: 0644]
input/regression/bar-line-segno.ly
input/regression/bar-lines.ly
input/regression/bar-number-volta-repeat.ly
input/regression/bar-number.ly
input/regression/beam-beamlet-break.ly
input/regression/beam-break-no-bar.ly
input/regression/beam-break.ly
input/regression/beam-broken-classic.ly
input/regression/beam-broken-difficult.ly
input/regression/beam-center-slope.ly
input/regression/beam-collision-classic.ly
input/regression/beam-collision-off.ly
input/regression/beam-collision-scaled-staff.ly
input/regression/beam-collision-voice-only.ly
input/regression/beam-concave-chord.ly
input/regression/beam-concave.ly
input/regression/beam-default-lengths.ly
input/regression/beam-extreme.ly
input/regression/beam-feather-breaking.ly
input/regression/beam-feather-knee-stem-length.ly
input/regression/beam-feather.ly
input/regression/beam-french.ly
input/regression/beam-funky-beamlet.ly
input/regression/beam-funky.ly
input/regression/beam-manual-beaming.ly
input/regression/beam-outside-beamlets.ly
input/regression/beam-position.ly
input/regression/beam-quant-standard.ly
input/regression/beam-slope-stemlet.ly
input/regression/beam-unconnected-beamlets.ly
input/regression/bend-after.ly
input/regression/break-alignment-anchor-alignment.ly
input/regression/break-alignment-anchors.ly
input/regression/breathing-sign-ancient.ly
input/regression/breathing-sign-custom-staff.ly
input/regression/breathing-sign.ly
input/regression/breve-extent.ly
input/regression/chord-name-override-text.ly [new file with mode: 0644]
input/regression/chord-tremolo-accidental.ly [new file with mode: 0644]
input/regression/chromatic-scales.ly
input/regression/clef-oct-visibility.ly
input/regression/clef-optional-octavation.ly [new file with mode: 0644]
input/regression/clefs.ly
input/regression/cluster-style.ly
input/regression/collision-dots-move.ly
input/regression/collision-dots-up-space-dotted.ly
input/regression/collision-manual.ly
input/regression/collision-merge-differently-dotted.ly
input/regression/collision-merge-differently-headed.ly
input/regression/collision-whole.ly
input/regression/color.ly
input/regression/compound-time-signatures.ly
input/regression/context-mod-context.ly
input/regression/context-mod-with.ly
input/regression/cue-clef-after-barline.ly
input/regression/cue-clef-optional-octavation.ly [new file with mode: 0644]
input/regression/custos.ly
input/regression/display-lily-tests.ly
input/regression/dot-dot-count-override.ly
input/regression/double-repeat.ly
input/regression/drums.ly
input/regression/dynamics-alignment-no-line-linebreak.ly
input/regression/dynamics-alignment-no-line.ly
input/regression/dynamics-avoid-cross-staff-stem-2.ly [new file with mode: 0644]
input/regression/dynamics-context-textspan.ly
input/regression/dynamics-text-right-padding.ly
input/regression/easy-notation.ly
input/regression/episema.ly
input/regression/event-listener-output.ly
input/regression/figured-bass-slashed-numbers.ly
input/regression/figured-bass.ly
input/regression/finger-chords.ly
input/regression/fingering-column.ly [new file with mode: 0644]
input/regression/fingering-cross-staff.ly
input/regression/flags-default.ly
input/regression/flags-in-scheme.ly
input/regression/flags-straight-stockhausen-boulez.ly
input/regression/flags-straight.ly
input/regression/font-bogus-ligature.ly
input/regression/font-family-override.ly
input/regression/font-name.ly
input/regression/footnote-auto-numbering-page-reset.ly
input/regression/footnote-auto-numbering-vertical-order.ly
input/regression/footnote-auto-numbering.ly
input/regression/footnote-break-visibility.ly
input/regression/footnote-spanner.ly
input/regression/fret-diagram-origins.ly
input/regression/fret-diagrams-capo.ly
input/regression/fret-diagrams-dots.ly
input/regression/fret-diagrams-fingering.ly
input/regression/fret-diagrams-fret-label.ly
input/regression/fret-diagrams-landscape.ly
input/regression/fret-diagrams-opposing-landscape.ly
input/regression/fret-diagrams-string-thickness.ly
input/regression/fret-diagrams-xo-label.ly
input/regression/glissando-broken-multiple.ly
input/regression/glissando-broken-unkilled.ly
input/regression/glissando-broken.ly
input/regression/glissando-index.ly
input/regression/glissando-skip.ly
input/regression/glissando.ly
input/regression/grace-stem-length.ly
input/regression/grace-stems.ly
input/regression/grace-volta-repeat-2.ly
input/regression/grid-lines.ly
input/regression/grob-indirect-tweak.ly
input/regression/grob-tweak.ly
input/regression/hairpin-barline-break.ly
input/regression/hairpin-circled.ly
input/regression/hairpin-clef.ly [new file with mode: 0644]
input/regression/hairpin-dashed.ly
input/regression/hairpin-ending.ly
input/regression/hairpin-key-signature.ly [new file with mode: 0644]
input/regression/hairpin-neighboring-span-dynamics.ly
input/regression/hairpin-to-barline.ly
input/regression/hara-kiri-alive-with.ly
input/regression/hara-kiri-keep-previous-settings.ly
input/regression/harp-pedals-sanity-checks.ly
input/regression/harp-pedals-tweaking.ly
input/regression/horizontal-bracket-tweak.ly
input/regression/id.ly
input/regression/identifier-following-chordmode.ly
input/regression/in-note.ly
input/regression/incipit.ly
input/regression/instrument-name-hara-kiri.ly
input/regression/instrument-name-x-align.ly
input/regression/key-clefs.ly
input/regression/key-signature-padding.ly
input/regression/kievan-notation.ly [new file with mode: 0644]
input/regression/laissez-vibrer-tie-head-direction.ly
input/regression/laissez-vibrer-ties.ly
input/regression/layout-from.ly
input/regression/ledger-lines-dynamics.ly [new file with mode: 0644]
input/regression/ledger-lines-varying-staves.ly
input/regression/les-nereides.ly
input/regression/lily-in-scheme.ly
input/regression/lilypond-book/GNUmakefile
input/regression/lilypond-book/include/GNUmakefile [deleted file]
input/regression/lilypond-book/include/myvar.ily
input/regression/line-arrows.ly
input/regression/line-dash-small-period.ly
input/regression/line-dashed-period.ly
input/regression/line-style-zigzag-spacing.ly
input/regression/line-style.ly
input/regression/lyric-combine-switch-voice-2.ly
input/regression/lyric-combine-switch-voice.ly
input/regression/lyric-hyphen-retain.ly
input/regression/lyric-hyphen.ly
input/regression/lyric-tweak.ly
input/regression/lyrics-bar.ly
input/regression/lyrics-no-notes.ly
input/regression/markup-commands.ly
input/regression/markup-line-thickness.ly
input/regression/markup-note-grob-style.ly
input/regression/markup-note.ly
input/regression/markup-syntax.ly
input/regression/markup-user.ly
input/regression/measure-counter-broken.ly [new file with mode: 0644]
input/regression/measure-counter.ly [new file with mode: 0644]
input/regression/mensural-ligatures.ly
input/regression/mensural.ly
input/regression/metronome-mark-broken-bound.ly
input/regression/metronome-mark-loose-column.ly
input/regression/metronome-marking-align-order.ly
input/regression/metronome-marking-break-align.ly
input/regression/modern-tab-clef-scaled.ly
input/regression/morgenlied.ly
input/regression/mozart-hrn3-defs.ily
input/regression/mozart-hrn3-romanze.ily
input/regression/multi-measure-rest-center.ly
input/regression/multi-measure-rest-multi-staff-center.ly
input/regression/multi-measure-rest-staff-position.ly
input/regression/multi-measure-rest-text.ly
input/regression/multi-measure-rest-tweaks.ly
input/regression/music-function-end-spanners.ly
input/regression/music-function.ly
input/regression/musicxml/GNUmakefile
input/regression/non-centered-bar-lines.ly
input/regression/non-empty-text.ly
input/regression/note-head-style.ly
input/regression/note-line.ly
input/regression/number-staff-lines.ly
input/regression/ottava-edge.ly
input/regression/outside-staff-placement-directive.ly [new file with mode: 0644]
input/regression/override-nest-scheme.ly
input/regression/override-nest.ly
input/regression/page-breaking-min-distance2.ly
input/regression/page-breaking-min-distance3.ly
input/regression/page-label.ly
input/regression/page-layout-manual-position.ly
input/regression/page-spacing-bass-figures.ly
input/regression/page-spacing-dynamics.ly
input/regression/page-spacing-nonstaff-lines-between.ly
input/regression/page-spacing-nonstaff-lines-bottom.ly
input/regression/page-spacing-nonstaff-lines-header-padding.ly
input/regression/page-spacing-nonstaff-lines-independent.ly
input/regression/page-spacing-nonstaff-lines-top.ly
input/regression/page-spacing-nonstaff-lines-unrelated.ly
input/regression/page-spacing-staff-group-hara-kiri.ly
input/regression/page-spacing-staff-group-nested.ly
input/regression/page-spacing-stretchability.ly
input/regression/page-spacing.ly
input/regression/page-top-space.ly
input/regression/parenthesize.ly
input/regression/pedal-ped.ly
input/regression/phrasing-slur-dash.ly
input/regression/prefatory-spacing-matter.ly
input/regression/property-nested-override.ly
input/regression/property-nested-revert.ly
input/regression/property-once.ly
input/regression/quote-during.ly
input/regression/quote-overrides.ly
input/regression/quote-tuplet.ly
input/regression/quote.ly
input/regression/rehearsal-mark-align-priority.ly
input/regression/rehearsal-mark-align-staff-context.ly
input/regression/rehearsal-mark-align.ly
input/regression/rehearsal-mark-direction.ly
input/regression/relative-repeat.ly
input/regression/remove-empty-staves-auto-knee.ly
input/regression/remove-empty-staves-with-rests.ly
input/regression/repeat-percent-kerning.ly
input/regression/repeat-sign-global-size-10.ly
input/regression/repeat-sign-global-size-30.ly
input/regression/repeat-sign-global-size-5.ly
input/regression/repeat-sign-layout-size.ly
input/regression/repeat-sign.ly
input/regression/rest-collision-beam-restdir.ly
input/regression/rest-ledger.ly
input/regression/rest-on-nonstandard-staff.ly
input/regression/scheme-book-scores.ly
input/regression/scheme-text-spanner.ly
input/regression/script-shift.ly
input/regression/script-tie-collision.ly [new file with mode: 0644]
input/regression/shape-other-curves.ly
input/regression/shape-slurs.ly
input/regression/skiptypesetting-all-true.ly
input/regression/skyline-horizontal-padding.ly
input/regression/skyline-vertical-placement.ly
input/regression/slur-dash.ly
input/regression/slur-dynamics.ly
input/regression/slur-extreme.ly
input/regression/slur-manual.ly
input/regression/slur-scoring.ly
input/regression/slur-script-inside.ly
input/regression/slur-script.ly
input/regression/slur-tuplet.ly
input/regression/slur-vestigial-outside-staff-callback.ly
input/regression/song-reordering.ly
input/regression/song-reordering2.ly
input/regression/spacing-accidental-stretch.ly
input/regression/spacing-bar-accidental.ly
input/regression/spacing-bar-arpeggio.ly
input/regression/spacing-bar-stem.ly
input/regression/spacing-bar-whole-measure.ly
input/regression/spacing-folded-clef2.ly
input/regression/spacing-grace.ly
input/regression/spacing-horizontal-skyline-grace.ly
input/regression/spacing-knee-compressed.ly
input/regression/spacing-knee.ly
input/regression/spacing-loose-grace-error.ly
input/regression/spacing-loose-grace-linebreak.ly
input/regression/spacing-loose-grace.ly
input/regression/spacing-mark-width.ly
input/regression/spacing-measure-length.ly
input/regression/spacing-multi-tuplet.ly
input/regression/spacing-non-adjacent-columns3.ly [new file with mode: 0644]
input/regression/spacing-packed.ly
input/regression/spacing-paper-column-padding.ly
input/regression/spacing-space-to-barline.ly
input/regression/spacing-stem-bar.ly
input/regression/spacing-stem-direction.ly
input/regression/spacing-stem-same-direction.ly
input/regression/spacing-strict-notespacing.ly
input/regression/spacing-strict-spacing-grace.ly
input/regression/spacing-to-empty-barline.ly
input/regression/spacing-uniform-stretching.ly
input/regression/span-bar-allow-span-bar.ly
input/regression/span-bar-break.ly
input/regression/span-bar-partial.ly
input/regression/span-bar.ly
input/regression/spanner-after-line-breaking.ly
input/regression/spanner-break-overshoot.ly
input/regression/staff-ledger-positions.ly
input/regression/staff-line-positions.ly
input/regression/staff-mixed-size.ly
input/regression/staff-tweak.ly
input/regression/stem-direction-context.ly
input/regression/stem-length-estimation.ly
input/regression/stem-length.ly
input/regression/stem-stemlet-whole.ly
input/regression/stem-stemlet.ly
input/regression/stem-tremolo-note-collision.ly [new file with mode: 0644]
input/regression/stem-tremolo-note-column.ly
input/regression/stem-tremolo-staff-space.ly
input/regression/stem-tremolo.ly
input/regression/stencil-color-rotation.ly
input/regression/stencil-hacking.ly
input/regression/stencil-scale.ly
input/regression/system-extents.ly
input/regression/system-start-bar-collapse-staffspace.ly
input/regression/system-start-heavy-bar.ly
input/regression/tablature-chord-repetition.ly
input/regression/tablature-full-notation.ly
input/regression/tablature-harmonic-functions.ly
input/regression/tablature-repeat.ly
input/regression/tablature-tie-behaviour.ly
input/regression/tag-multiple.ly [new file with mode: 0644]
input/regression/text-script-vertical-skylines.ly [new file with mode: 0644]
input/regression/text-spanner-attachment-alignment.ly
input/regression/text-spanner-override-order.ly
input/regression/tie-accidental.ly
input/regression/tie-broken-minimum-length.ly
input/regression/tie-chord-broken-extremal.ly
input/regression/tie-dash.ly
input/regression/tie-manual-vertical-tune.ly
input/regression/tie-manual.ly
input/regression/tie-semi-single.ly
input/regression/tie-single-manual.ly
input/regression/trill-spanner-chained.ly
input/regression/trill-spanner-scaled.ly
input/regression/tuplet-bracket-avoid-fingering.ly
input/regression/tuplet-bracket-avoid-string-number.ly
input/regression/tuplet-bracket-cross-staff.ly
input/regression/tuplet-bracket-outside-staff-priority.ly
input/regression/tuplet-bracket-vertical-skylines.ly [new file with mode: 0644]
input/regression/tuplet-bracket-visibility.ly
input/regression/tuplet-broken.ly
input/regression/tuplet-full-length-extent.ly
input/regression/tuplet-full-length.ly
input/regression/tuplet-gap.ly
input/regression/tuplet-nest-broken.ly
input/regression/tuplet-nest.ly
input/regression/tuplet-no-stems.ly
input/regression/tuplet-number-outside-staff-positioning.ly [new file with mode: 0644]
input/regression/tuplet-number-outside-staff-priority.ly
input/regression/tuplet-properties.ly
input/regression/tuplet-text-different-numbers.ly
input/regression/tuplet-text-fraction-with-notes.ly
input/regression/tuplet-text-note-appended.ly
input/regression/tuplets.ly
input/regression/typography-demo.ly
input/regression/unpure-pure-container.ly
input/regression/volta-bracket-add-volta-hook.ly [new file with mode: 0644]
input/regression/volta-bracket-vertical-skylines.ly [new file with mode: 0644]
input/regression/whiteout-lower-layers.ly
input/regression/whiteout.ly
input/regression/zero-staff-space.ly
lily/GNUmakefile
lily/accidental-engraver.cc
lily/accidental-placement.cc
lily/accidental.cc
lily/align-interface.cc
lily/articulations.cc
lily/axis-group-interface.cc
lily/beam-collision-engraver.cc
lily/beam.cc
lily/bezier.cc
lily/box.cc
lily/breathing-sign.cc
lily/chord-name-engraver.cc
lily/clef-engraver.cc
lily/clef.cc
lily/coherent-ligature-engraver.cc
lily/concurrent-hairpin-engraver.cc
lily/constrained-breaking.cc
lily/context-def.cc
lily/context-property.cc
lily/cue-clef-engraver.cc
lily/dot-column.cc
lily/dot-formatting-problem.cc
lily/figured-bass-position-engraver.cc
lily/fingering-column-engraver.cc [new file with mode: 0644]
lily/fingering-column.cc [new file with mode: 0644]
lily/flag.cc
lily/footnote-engraver.cc
lily/freetype.cc
lily/global-context-scheme.cc
lily/global-vars.cc [new file with mode: 0644]
lily/gregorian-ligature-engraver.cc
lily/grob-property.cc
lily/grob-scheme.cc
lily/grob.cc
lily/hairpin.cc
lily/include/GNUmakefile [deleted file]
lily/include/accidental-interface.hh
lily/include/axis-group-interface.hh
lily/include/beam-scoring-problem.hh
lily/include/beam.hh
lily/include/bezier.hh
lily/include/box.hh
lily/include/coherent-ligature-engraver.hh
lily/include/constrained-breaking.hh
lily/include/context-mod.hh
lily/include/fingering-column.hh [new file with mode: 0644]
lily/include/freetype.hh
lily/include/gregorian-ligature-engraver.hh
lily/include/grob.hh
lily/include/interval-minefield.hh
lily/include/ligature-engraver.hh
lily/include/lily-lexer.hh
lily/include/lily-parser.hh
lily/include/misc.hh
lily/include/modified-font-metric.hh
lily/include/note-collision.hh
lily/include/note-column.hh
lily/include/open-type-font.hh
lily/include/pango-font.hh
lily/include/pure-from-neighbor-interface.hh
lily/include/rhythmic-music-iterator.hh
lily/include/skyline-pair.hh
lily/include/skyline.hh
lily/include/slur.hh
lily/include/stem-tremolo.hh
lily/include/stem.hh
lily/include/stencil.hh
lily/include/system.hh
lily/interval-minefield.cc
lily/key-signature-interface.cc
lily/ledger-line-engraver.cc
lily/ledger-line-spanner.cc
lily/lexer.ll
lily/lily-lexer.cc
lily/lily-parser.cc
lily/line-spanner.cc
lily/lookup.cc
lily/lyric-combine-music-iterator.cc
lily/main.cc
lily/mensural-ligature-engraver.cc
lily/misc.cc
lily/modified-font-metric.cc
lily/module-scheme.cc
lily/note-collision.cc
lily/note-column.cc
lily/note-spacing.cc
lily/open-type-font.cc
lily/optimal-page-breaking.cc
lily/page-breaking.cc
lily/page-layout-problem.cc
lily/page-spacing.cc
lily/pango-font.cc
lily/paper-column.cc
lily/parser.yy
lily/phrasing-slur-engraver.cc
lily/pure-from-neighbor-engraver.cc
lily/pure-from-neighbor-interface.cc
lily/relocate.cc
lily/repeat-acknowledge-engraver.cc
lily/rhythmic-music-iterator.cc
lily/script-engraver.cc
lily/script-interface.cc
lily/self-alignment-interface.cc
lily/separation-item.cc
lily/side-position-interface.cc
lily/simple-spacer.cc
lily/skyline-pair.cc
lily/skyline.cc
lily/slur-engraver.cc
lily/slur-scoring.cc
lily/slur.cc
lily/spacing-spanner.cc
lily/span-bar-stub-engraver.cc
lily/staff-performer.cc
lily/stem-tremolo.cc
lily/stem.cc
lily/stencil-integral.cc [new file with mode: 0644]
lily/stencil-scheme.cc
lily/system.cc
lily/text-interface.cc
lily/tie-engraver.cc
lily/tie-formatting-problem.cc
lily/tuplet-engraver.cc
lily/tweak-engraver.cc
lily/unpure-pure-container.cc
lily/vaticana-ligature-engraver.cc
lily/volta-bracket.cc
ly/arabic.ly
ly/bagpipe.ly
ly/context-mods-init.ly
ly/declarations-init.ly
ly/engraver-init.ly
ly/grace-init.ly
ly/gregorian.ly
ly/init.ly
ly/makam.ly
ly/music-functions-init.ly
ly/paper-defaults-init.ly
ly/predefined-fretboards-init.ly
ly/property-init.ly
ly/spanners-init.ly
ly/titling-init.ly
make/GNUmakefile [deleted file]
make/abc-vars.make
make/lilypond-book-rules.make
make/ly-rules.make
make/ly-vars.make
make/midi-vars.make
make/musicxml-vars.make
mf/feta-scripts.mf
mf/parmesan-clefs.mf
po/lilypond.pot
python/auxiliar/GNUmakefile
python/auxiliar/postprocess_html.py
python/book_snippets.py
python/convertrules.py
python/lilylib.py
scm/bar-line.scm
scm/c++.scm
scm/clip-region.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/define-music-display-methods.scm
scm/define-music-types.scm
scm/define-note-names.scm
scm/display-lily.scm
scm/fret-diagrams.scm
scm/harp-pedals.scm
scm/lily-library.scm
scm/lily.scm
scm/music-functions.scm
scm/output-lib.scm
scm/output-ps.scm
scm/output-svg.scm
scm/parser-clef.scm
scm/part-combiner.scm
scm/scheme-engravers.scm [new file with mode: 0644]
scm/stencil.scm
scm/translation-functions.scm
scripts/GNUmakefile
scripts/abc2ly.py
scripts/auxiliar/GNUmakefile [deleted file]
scripts/auxiliar/fixscm.sh [new file with mode: 0755]
scripts/auxiliar/show_skyline_command.py [new file with mode: 0644]
scripts/auxiliar/skyline_viewer.py [new file with mode: 0755]
scripts/build/GNUmakefile
scripts/build/bib2texi.py
scripts/build/create-version-itexi.py
scripts/build/create-weblinks-itexi.py
scripts/build/install.py [new file with mode: 0644]
scripts/build/lys-to-tely.py
scripts/build/make-version.py [new file with mode: 0644]
scripts/build/mass-link.py
scripts/build/output-distance.py
scripts/build/text2html.py [new file with mode: 0644]
scripts/build/website_post.py
scripts/build/www_post.py
scripts/build/yyout2grammar.py
scripts/convert-ly.py
scripts/etf2ly.py
scripts/lilypond-book.py
smart-autogen.sh
stepmake/GNUmakefile [deleted file]
stepmake/INSTALL.texi [deleted file]
stepmake/README [deleted file]
stepmake/aclocal.m4 [deleted file]
stepmake/autogen.sh [deleted file]
stepmake/bin/GNUmakefile [deleted file]
stepmake/bin/config.guess [deleted file]
stepmake/bin/config.sub [deleted file]
stepmake/bin/fake-msgfmt.sh [deleted file]
stepmake/bin/install-sh [deleted file]
stepmake/bin/install.py [deleted file]
stepmake/bin/make-version.py [deleted file]
stepmake/bin/ntpwd.py [deleted file]
stepmake/bin/stepmakeise.sh [deleted file]
stepmake/bin/text2html.py [deleted file]
stepmake/config.hh.in [deleted file]
stepmake/configure.in [deleted file]
stepmake/stepmake/GNUmakefile [deleted file]
stepmake/stepmake/documentation-vars.make
stepmake/stepmake/generic-targets.make
stepmake/stepmake/generic-vars.make
stepmake/stepmake/makedir-vars.make
stepmake/stepmake/metafont-vars.make
stepmake/stepmake/podir-vars.make
stepmake/stepmake/python-module-vars.make
stepmake/stepmake/toplevel-targets.make
stepmake/stepmake/toplevel-vars.make

diff --git a/.dir-locals.el b/.dir-locals.el
new file mode 100644 (file)
index 0000000..72472a6
--- /dev/null
@@ -0,0 +1,11 @@
+;;; Directory Local Variables
+;;; See Info node `(emacs) Directory Variables' for more information.
+
+((c++-mode
+  (c-default-style . "gnu")
+  (indent-tabs-mode))
+ (scheme-mode
+  (indent-tabs-mode))
+ (texinfo-mode
+  (fill-column . 66)
+  (indent-tabs-mode)))
index e0fae2d1e44836bf6830edab2fa532728d32b1f5..3097acfe263f48f2e926788eef9c521b6c51a789 100644 (file)
@@ -53,7 +53,6 @@ TAGS
 \#*
 \#.*
 a.out
-aclocal.m4
 autom4te.cache
 config-*.hh
 config-*.make
@@ -78,3 +77,4 @@ Documentation/lilypond
 semantic.cache
 .lock-wscript
 build/
+.gitfilelist
index b1c47c1f7950dbc79663ced0ba74a967b4d30b4e..a3ef4bb6e7c6640249ed9244139374a09a5a2de1 100644 (file)
@@ -9,10 +9,8 @@ depth = ..
 
 NAME = documentation
 LANGS = $(shell $(PYTHON) $(top-src-dir)/python/langdefs.py)
-MANUALS_SUBDIRS = usage contributor essay \
-  web learning notation extending
-SUBDIRS = $(MANUALS_SUBDIRS) snippets logo pictures misc po css topdocs \
-  included ly-examples $(LANGS)
+SUBDIRS = logo pictures misc po css topdocs \
+  ly-examples $(LANGS)
 STEPMAKE_TEMPLATES = documentation texinfo tex omf
 LOCALSTEPMAKE_TEMPLATES = lilypond ly
 
@@ -27,14 +25,12 @@ $(outdir)/snippets/index.html: TEXI2HTML_FLAGS += -D short_toc
 
 ### Extra source files
 
-README_TOP_FILES= DEDICATION THANKS
+README_TOP_FILES= DEDICATION
 
 IN_ITELY_FILES = $(call src-wildcard,snippets/*-intro.itely)
 SNIPPET_LY_FILES = $(call src-wildcard,snippets/*.ly)
 OUT_SNIPPET_LY_FILES = $(SNIPPET_LY_FILES:%.ly=out/%.ly)
 
-EXTRA_DIST_FILES = $(call src-wildcard,*.init) $(call src-wildcard,*.bst)
-
 ### Out files
 
 # Dependencies
@@ -99,7 +95,6 @@ $(XREF_MAPS_DIR)/web.xref-map: XREF_MAP_FLAGS += --split=node
 ### AJAX scripts
 JS_FILES = $(call src-wildcard,*.js)
 PHP_FILES = $(call src-wildcard,*.php)
-EXTRA_DIST_FILES += $(JS_FILES) $(PHP_FILES)
 
 OUT_JS_FILES = $(JS_FILES:%.js=$(outdir)/%.js)
 OUT_PHP_FILES = $(PHP_FILES:%.php=$(outdir)/%.php)
@@ -116,18 +111,21 @@ $(outdir)/colorado.itexi:
        BSTINPUTS=$(src-dir)/essay $(buildscript-dir)/bib2texi \
                -s $(top-src-dir)/Documentation/lily-bib \
                -o $(outdir)/colorado.itexi \
+               -q \
                $(src-dir)/essay/colorado.bib
 
 $(outdir)/computer-notation.itexi:
        BSTINPUTS=$(src-dir)/essay $(buildscript-dir)/bib2texi \
                -s $(top-src-dir)/Documentation/lily-bib \
                -o $(outdir)/computer-notation.itexi \
+               -q \
                $(src-dir)/essay/computer-notation.bib
 
 $(outdir)/engravingbib.itexi:
        BSTINPUTS=$(src-dir)/essay $(buildscript-dir)/bib2texi \
                -s $(top-src-dir)/Documentation/lily-bib \
                -o $(outdir)/engravingbib.itexi \
+               -q \
                $(src-dir)/essay/engravingbib.bib
 
 $(outdir)/essay.texi: \
@@ -169,8 +167,6 @@ extra-local-help:
        @echo
 
 info: $(INFO_FILES)
-       @echo export LILYPOND_DATADIR=$(LILYPOND_DATADIR)
-       @echo export PYTHONPATH=$(PYTHONPATH)
 
 xml: $(outdir)/notation/notation.xml $(outdir)/internals/internals.xml
 
@@ -204,7 +200,7 @@ $(OUT_TXT_FILES): $(outdir)/%.txt: $(top-src-dir)/%
        cp -f $< $@
 
 $(OUT_TXT_FILES:%.txt=%.html): $(outdir)/%.html: $(outdir)/%.txt
-       $(PYTHON) $(step-bindir)/text2html.py $<
+       $(buildscript-dir)/text2html $<
 
 # Explicitly list the dependencies on generated content
 $(outdir)/web.texi: $(outdir)/we-wrote.itexi $(outdir)/others-did.itexi $(outdir)/weblinks.itexi
@@ -307,9 +303,6 @@ endif
 ifneq ($(ISOLANG),)
 new-lang-dir:
        mkdir -p $(ISOLANG)/$(DIR)
-       cp fr/GNUmakefile $(ISOLANG)
-       cp fr/$(DIR)/GNUmakefile $(ISOLANG)/$(DIR)
-       sed -i -e 's/ISOLANG *= *fr/ISOLANG = $(ISOLANG)/' $(ISOLANG)/GNUmakefile $(ISOLANG)/$(DIR)/GNUmakefile
        rm -f $(outdir)/*.*tely $(outdir)/*.*texi
        $(PYTHON) $(auxscript-dir)/texi-langutils.py -d $(outdir) -l $(ISOLANG) -o doc.pot --skeleton --gettext $$(cd $(ISOLANG) && ls -1 ../$(DIR).tely ../$(DIR).texi)
        for i in $$(cd $(outdir) && ls -1 $(DIR).tely $(DIR).texi); do\
@@ -324,7 +317,10 @@ new-lang-dir:
 
 new-lang:
 # Also for updating/adding missing files
-       mkdir -p $(ISOLANG)
+       mkdir -p $(ISOLANG)/included
+       if test -z "`ls $(ISOLANG)/included`"; then touch $(ISOLANG)/included/.gitignore; fi
+       cp fr/GNUmakefile $(ISOLANG)
+       sed -i -e 's/ISOLANG *= *fr/ISOLANG = $(ISOLANG)/' $(ISOLANG)/GNUmakefile
        $(foreach i,$(TRANSLATION_DIRS),$(MAKE) new-lang-dir DIR=$(i) &&) :
        msgmerge -U po/lilypond-doc.pot $(outdir)/doc.pot
        test -e po/$(ISOLANG).po || cp po/lilypond-doc.pot po/$(ISOLANG).po
index b59ee7e91f2826bdca770316d255eb0b8d3e8399..f0d11f45e862e1482715b49798eb459c0485be4f 100644 (file)
@@ -35,28 +35,11 @@ See user manual, \NAME\
 
 @finalout
 
-@node Top, Fixes and changes after 2.16.0, (dir), (dir)
-@top New features in 2.16
-
-@menu
-* Fixes and changes after 2.16.0::
-* New features in 2.16 since 2.14::
-@end menu
-
+@node Top
+@top New features in 2.18 since 2.16
 
 @allowcodebreaks false
 
-@node Fixes and changes after 2.16.0, New features in 2.16 since 2.14, Top, Top
-@section Fixes and changes after 2.16.0
-@table @b
-@item 2.16.1
-Please refer to the bug tracker for
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=Fixed_2_16_1,
-issues fixed in 2.16.1}.
-@end table
-
-@node New features in 2.16 since 2.14,  , Fixes and changes after 2.16.0, Top
-@section New features in 2.16 since 2.14
 @itemize
 
 @ignore
@@ -77,355 +60,84 @@ which scares away people.
 * only show user-visible changes.
 
 @end ignore
-@item
-Support for cross-staff stems on chords, using @code{crossStaff}
-and the @code{Span_stem_engraver}.  This calculates the length of
-cross-staff stems automatically.
-@lilypondfile[quote]
-{cross-staff-stems.ly}
-
-@item
-The syntax of words (character sequences recognized without enclosing
-quotes) and commands (now always a backslash @samp{\} followed by a
-word) has been unified across all modes: it now consists of alphabetic
-characters, possibly enclosing isolated dashes @samp{-} and underlines
-@samp{_}.
-
-As one consequence, using unquoted text scripts like (literally!)
-@example
-@{ c-script c\f_script @}
-@end example
-will now tend to result in invalid music.  Omitting quote marks
-for arbitrary text rather than keywords has never been good practice or
-even documented, and it is unlikely to have seen significant use.
-
-Staying with established conventions (like not using dashes or
-underlines for command names intended to be used inside of music)
-remains advisable.  The reason for this change is more robust
-recognition of LilyPond's lexical units for LilyPond itself as well as
-external tools interpreting its syntax.
-
-@item
-Support for Kievan square notation:
-@lilypond[quote,relative=1,verbatim]
-\new KievanVoice {
-  \cadenzaOn
-  c d e f g a bes
-  \bar "kievan"
-}
-@end lilypond
 
 @item
-Augmentation dots now avoid the other voice in two-voice polyphony
-so that users can move the @code{Dot_column_engraver} to set dots
-independently for each @code{Voice}.
-@lilypond[quote]
-\layout {
-  \context {
-    \Staff
-    \remove Dot_column_engraver
-  } \context {
-    \Voice
-    \consists Dot_column_engraver
-  }
-}
-\relative c'' <<
-  { \time 6/8
-    <d f g>4. <d f g> <f, g> b
-  } \\ {
-    <f g b>4. <g b d> <b d> <e, g>
-  } >>
+The @code{\clef} command supports optional octavation:
+@lilypond[verbatim,quote,relative=1]
+\clef "treble_(8)"
+c2 c
+\clef "bass^[15]"
+c2 c
 @end lilypond
 
 @item
-A Scheme function to adjust the control points of curves such as slurs
-and ties, developed by several users, is now included in LilyPond.
-@lilypond[quote,verbatim,relative=2]
-g8->( bes,-.) d4
-\shape Slur #'((-0.5 . 1.5) (-3 . 0) (0 . 0) (0 . 0))
-g8->( bes,!-.) d4
-@end lilypond
-
-@item
-Use of @code{\tempo} specifications in @code{\midi} blocks (removed in
-2.9.16 in favor of explicit @code{tempoWholesPerMinute} settings) has
-seen a revival: now any kind of property-setting music is turned into
-context definitions within output specifications, allowing for
-declarations like
+The LilyPond syntax of dot-separated words @code{Voice.Accidental}
+has been made interchangeable with @code{#'(Voice Accidental)}, a
+Scheme list of symbols.  As one result, code like
 @example
-\layout @{ \accidentalStyle modern @}
-\midi @{ \tempo 4. = 66 @}
+\override Voice.TextSpanner #'(bound-details left text) = "rit."
+@end example
+is now equivalent to
+@example
+\override Voice.TextSpanner bound-details.left.text = "rit."
+@end example
+or even
+@example
+\override #'(Voice TextSpanner) bound-details.left.text = "rit."
 @end example
 
 @item
-The LilyPond G clef has been redesigned - upper loop is now more balanced,
-bottom crook sticks out less and the "spine" (main vertical line) is more
-evenly curved. The old and new versions can be compared by looking at the
-documentation:
-@uref{http://lilypond.org/doc/v2.14/Documentation/notation/the-feta-font.html#clef-glyphs, old version},
-@uref{http://lilypond.org/doc/v2.15/Documentation/notation/the-feta-font.html#clef-glyphs, new version}.
-
-@item
-Lilypond's stencil commands have been simplified to allow for less code
-duplication and better height approximations of graphical objects.  The
-following stencil commands have been eliminated:
-@itemize
-@item @code{beam}
-@item @code{bezier-sandwich}
-@item @code{bracket}
-@item @code{dashed-slur}
-@item @code{dot}
-@item @code{oval}
-@item @code{repeat-slash}
-@item @code{zigzag-line}
-@end itemize
-
-@item
-Flags are now treated as separate objects rather than as stem parts.
-@lilypond[fragment,quote,relative=2]
-\override Flag #'color = #red
-g8
-@end lilypond
-
-@item
-Two alternative methods for bar numbering can be set, especially for
-when using repeated music;
-
-@lilypond[fragment,quote,relative=1,noragged-right]
-\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
-}
-@end lilypond
-
-@item
-The following is a fundamental change in LilyPond's music
-representation: Rhythmic events like @code{LyricEvent} and
-@code{NoteEvent} are no longer wrapped in @code{EventChord} unless they
-have been actually entered as part of a chord in the input.  If you
-manipulate music expressions in Scheme, the new behavior may require
-changes in your code.  Calling the music function @code{\eventChords} or
-the Scheme function @code{event-chord-wrap!}  converts to the old
-representation; using one of those might be easiest for keeping legacy
-code operative.
-
-The following three items are consequences of this change.
-
-@item
-The repetitive chord entry aid @code{q} has been reimplemented.
-Repeated chords are now replaced right before interpreting a music
-expression.  In case the user wants to retain some events of the
-original chord, he can run the repeat chord replacement function
-@code{\chordRepeats} manually.
-
-@item
-String numbers and right hand fingerings on single notes now appear
-without having to be written inside of chord brackets.
-
-@item
-Music functions now work the same when used inside or outside of chords,
-including all the possibilities of argument parsing.  Music variables
-can be used inside of chords: a construct like
-@lilypond[verbatim,quote,ragged-right]
-tonic=fis'
-{ <\tonic \transpose c g \tonic> }
-@end lilypond
-@noindent
-now works as expected.  One can use @code{#@{@dots{}#@}} for
-constructing chord constituents.  @code{\tweak} now works on single
-notes without needing to wrap them in a chord.  Using it on command
-events and lyrics is now possible, but not likely to give results yet.
-
-@item
-@code{\tweak} now takes an optional layout object specification.  It can
-be used for tweaking layout objects that are only indirectly caused by
-the tweaked event, like accidentals, stems, and flags:
-
-@lilypond[verbatim,quote,ragged-right,relative=2]
-<\tweak Accidental #'color #red   cis4
- \tweak Accidental #'color #green es
-                                  g>
-@end lilypond
-
-@item
-Scheme expressions inside of embedded Lilypond (@code{#@{@dots{}#@}})
-are now executed in lexical closure of the surrounding Scheme code.
-@code{$} is no longer special in embedded Lilypond.  It can be used
-unconditionally in Lilypond code for immediate evaluation of Scheme
-expressions, similar to how @code{ly:export} could previously be used.
-@code{ly:export} has been removed.  As a consequence, @code{#} is now
-free to delay evaluation of its argument until the parser actually
-reduces the containing expression, greatly reducing the potential for
-premature evaluation.  There are also @q{splicing} operators @code{$@@}
-and @code{#@@} for interpreting the members of a list individually.
-
-@item
-To reduce the necessity for using @code{$}, Scheme expressions written
-with @code{#} are interpreted as music inside of music lists, and as
-markups or markup lists inside of markups.
-
-@item
-Support for jazz-like chords has been improved: Lydian and altered
-chords are recognised; separators between chord modifiers are now
-treated independently of separators between ``slash'' chords and their
-bass notes (and by default, slashes are now only used for the latter
-type of separator); additional pitches are no longer prefixed with
-``add'' by default; and the ``m'' in minor chords can be customized.
-@ruser{Customizing chord names} for more information.
-
-@item
-The @code{\markuplines} command has been renamed to @code{\markuplist}
-for a better match with its semantics and general Lilypond
-nomenclature.
-
-@item
-The interface for specifying string tunings in tablature has been
-simplified considerably and employs the scheme function
-@code{\stringTuning} for most purposes.
-
-@item
-Beams can now have their slopes preserved over line breaks.
-@lilypond[fragment,quote,relative=2]
-\override Beam #'breakable = ##t
-a8[ b c d e f g \bar "" \break f e d c b a]
-\once \override Beam #'positions = #beam::align-with-broken-parts
-a8[ b c d e f g \bar "" \break f e d c b a]
-\once \override Beam #'positions = #beam::slope-like-broken-parts
-a8[ b c d e f g \bar "" \break f e d c b a]
-@end lilypond
-To do this, several callback functions are now deprecated.
-@itemize
-@item @code{ly:beam::calc-least-squares-positions}
-@item @code{ly:beam::slope-damping}
-@item @code{ly:beam::shift-region-to-valid}
-@end itemize
-Furthermore, @code{ly:beam::quanting} now takes an additional argument
-to help calculations over line breaks.  All of these functions are now
-automatically called when setting the @code{positions} parameter.
-
-@item
-In function arguments music, markups and Scheme expressions (as well as
-several other syntactic entities) have become mostly interchangeable and
-are told apart only by evaluating the respective predicate.  In several
-cases, the predicate is consulted by the parser, like when deciding
-whether to interpret @code{-3} as a number or a fingering event.
-
-@item
-Music functions (and their close relatives) can now be defined with
-optional arguments.
-
-@item
-For defining commands executed only for their side-effects,
-@code{define-void-function} is now available.
-
-@item
-There is a new @code{define-event-function} command in analogy to
-@code{define-music-function} that can be used for defining music
-functions acting as post events without requiring a direction specifier
-(@code{-}, @code{^}, or @code{_}) placed before them.
-@lilypond[quote,verbatim,ragged-right]
-dyn=#(define-event-function (parser location arg) (markup?)
-         (make-dynamic-script arg))
-\relative c' { c\dyn pfsss }
-@end lilypond
-
-@item
-A list of ASCII aliases for special characters can be included.
-@lilypond[quote,verbatim]
-\paper {
-  #(include-special-characters)
-}
-\markup "&bull; &dagger; &copyright; &OE; &ss; &para;"
-@end lilypond
-
-@item
-There is a new @code{define-scheme-function} command in analogy to
-@code{define-music-function} that can be used to define functions
-evaluating to Scheme expressions while accepting arguments in Lilypond
-syntax.
-
-@item
-The construct @code{#@{ @dots{} #@}} can now be used not just for
-constructing sequential music lists, but also for pitches (distinguished
-from single note events by the absence of a duration or other
-information that can't be part of a pitch), single music events, void
-music expressions, post events, markups (mostly freeing users from
-having to use the @code{markup} macro), markup lists, number
-expressions, context definitions and modifications, and a few other
-things.  If it encloses nothing or only a single music event, it no
-longer returns a sequential music list but rather a void music
-expression or just the music event itself, respectively.
-
-@item
-Pitches can be used on the right side of assignments.  They are
-distinguished from single note events by the absence of a duration or
-other information that can't be part of a pitch.
-
-@item
-New command-line option @option{--loglevel=@var{level}} to control how much output
-LilyPond creates. Possible values are ERROR, WARN, BASIC_PROGRESS, PROGRESS, DEBUG.
-
-@item
-@code{\once \set} now correctly resets the property value to the previous value.
-@lilypond[fragment,quote,relative=2]
-  \set fingeringOrientations = #'(left)
-  <e-1>4
-  \once \set fingeringOrientations = #'(right)
-  <e-1>
-  <e-1>-"left"
-@end lilypond
-
-@item
-The alignment of dynamic spanners (hairpins, text crescendo, etc.) is now
-automatically broken if a different direction is explicitly given.
-@lilypond[fragment,quote,relative=2]
-c4_\< c c^\> c c1_\p
-@end lilypond
-
-
-@item
-Appoggiaturas and acciaccaturas now also work inside a slur, not only inside
-a phrasing slur. Also, a function @code{\slashedGrace} was added that does
-not use a slur from the acciaccatura note.
-@lilypond[fragment,quote,relative=2]
-c4( \appoggiatura e8 d4 \acciaccatura e8 d4 \slashedGrace e8 c4)
-@end lilypond
-
-
-@item
-To suppress the line on a crescendo text spanner (and other similar spanners),
-LilyPond now fully supports the @code{#'style = #'none} property.
-@lilypond[fragment,quote,relative=2]
-\override DynamicTextSpanner #'style = #'none
-c4\cresc c c g, c'\p
+Grob and grob property path no longer need to be specified as two
+separate arguments to commands like @samp{\override} and
+@code{\revert}, allowing for the syntax
+@example
+\override Voice.TextSpanner.bound-details.left.text = "rit."
+@end example
+Since complementary music functions like @samp{\overrideProperty}
+cannot support forms with and without separating space at the same
+time, using a single dotted path is now the preferred form.
+Specifying grob path and grob property path separately, currently
+still supported with @samp{\override} and @samp{\revert} for
+compatibility reasons, is deprecated.
+
+@item
+Due to words now being accepted as symbol function arguments, the
+interfaces of @samp{\accidentalStyle}, @samp{\alterBroken},
+@samp{\footnote} and @samp{\tweak} had to be redesigned where
+optional symbol arguments were involved.  Please check the
+respective music function documentation for details.
+
+@item
+Several commands now accept symbol lists (conveniently entered as
+dot-separated words) for various kinds of arguments.  These
+include @samp{\accidentalStyle}, @samp{\alterBroken},
+@samp{\footnote}, @samp{\hide}, @samp{\omit},
+@samp{\overrideProperty}, @samp{\shape}, and @samp{\tweak}.
+
+@item
+The bar line user interface has changed. Bar glyphs now resemble the
+appearance of the bar line, so a left repeat sign has to be coded
+as @code{.|:}. The command @code{\defineBarLine} provides an easy way
+to define additional bar line styles.
+
+@item
+Accidentals in the key signature may be printed in octaves other
+than their traditional positions, or in multiple octaves.
+@lilypond[quote,relative=0]
+\override Staff.KeySignature #'flat-positions = #'((-5 . 5))
+\override Staff.KeyCancellation #'flat-positions = #'((-5 . 5))
+\clef bass \key es\major es g bes d
+\clef treble \bar "||" \key es\major es g bes d
+\override Staff.KeySignature #'sharp-positions = #'(2)
+\bar "||" \key d\major b fis b2
 @end lilypond
 
-@item
-LilyPond.app now supports MacOS X 10.7, thanks Christian Hitz!
-
-@item
-Glissandi can now span multiple lines.
-
 @end itemize
 
 @ifhtml
 For older news, go to
+@uref{http://lilypond.org/doc/v2.16/Documentation/changes/},
 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/},
-@uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html},
 or @uref{../,go back} to the Documentation index.
 
 
index 123c1aa31a03bfd4c8cafa29b641f1c5382f292e..f3dac48c9189431e6ee92208a4d88d236177971d 100644 (file)
@@ -18,6 +18,7 @@
 \fi
 @end tex
 
+@include cyrillic.itexi
 
 @c   ***** Displaying text *****
 
diff --git a/Documentation/contributor/GNUmakefile b/Documentation/contributor/GNUmakefile
deleted file mode 100644 (file)
index c93c9e0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 56b9cb40bebc174e72596f34b628a7196ca06427..b6530b4ffdcdfa99a3e5fe2520034a58320e71ae 100644 (file)
@@ -117,7 +117,7 @@ many maintenance scripts, and many instructions in this guide rely on
 predefined @ref{Environment variables}.
 
 @item @strong{mailing lists}:
-given on @rweb{Contacts}.
+given on @rweb{Contact}.
 
 @item @strong{branches}:
 
index 7bea16493755889276220f35dc2aa15b7eb4586e..d7c44304f1a4518bccfa68d5d2f163830761271c 100644 (file)
@@ -189,9 +189,9 @@ the currently-active Bug Squad member(s) can handle the message.
 Monday:    Colin H
 Tuesday:   Eluze
 Wednesday: Marek
-Thursday:  Ralph
+Thursday:  Joe
 Friday:    Marek
-Saturday:  Mark
+Saturday:  Ralph
 Sunday:    Colin H
 @end example
 
index d72424ab4c17df1fefb22917797e2fe819e616ac..819534b4ad0b23127f1ff304da1e4a56473fa558 100644 (file)
@@ -979,7 +979,7 @@ for all errors and defines functions for displaying scheme objects
 (ps), grobs (pgrob), and parsed music expressions (pmusic).
 
 @example
-file ~/lilypond-git/build/out/bin/lilypond
+file $LILYPOND_GIT/build/out/bin/lilypond
 b programming_error
 b Grob::programming_error
 
@@ -1418,9 +1418,14 @@ Although it is not required, it is helpful if the developer
 can write relevant material for inclusion in the Notation
 Reference.  If the developer does not feel qualified to write
 the documentation, a documentation editor will be able to
-write it from the regression tests.  The text that is added to
-or removed from the documentation should be changed only in
-the English version.
+write it from the regression tests.  In this case the developer
+should raise a new issue with the Type=Documentation tag containing
+a reference to the original issue number and/or the committish of
+the pushed patch so that the need for new documention is not
+overlooked.
+
+Any text that is added to or removed from the documentation should
+be changed only in the English version.
 
 
 @node Edit changes.tely
index 2172677054daedd1d6866936609af73dfa6b5b90..4788379f4ce1b1c56a94d2e1c98da385dd418173 100644 (file)
@@ -282,7 +282,7 @@ the software directly. See @ref{Manually installing lily-git.tcl}.
 
 @item
 Finally, lily-git is always part of the LilyPond source code and is
-located in @file{~/lilypond-git/scripts/auxillar/lily-git.tcl}.
+located in @file{$LILYPOND_GIT/scripts/auxillar/lily-git.tcl}.
 
 @end itemize
 
@@ -311,7 +311,7 @@ lily-git with this information.
 @item
 Click on the @qq{Get source} button.
 
-A directory called @file{lilypond-git/} is now created within
+A directory called @file{$LILYPOND_GIT} is now created within
 your home directory and the complete source code will start to be
 downloaded into it.
 
@@ -328,7 +328,7 @@ minutes -- it could be an intermittant network problem.  If the
 problem persists, please ask for help.}
 
 @item
-Close the lily-git GUI and navigate to the @file{lilypond-git/}
+Close the lily-git GUI and navigate to the @file{$LILYPOND_GIT}
 directory to view and edit the source files.
 
 @end enumerate
@@ -444,7 +444,7 @@ the command-line; see @ref{Uploading a patch for review}.
 hopelessly confused!}
 
 The button labeled @qq{Abort changes -- Reset to origin} will copy
-all changed files to a subdirectory of @file{lilypond-git/} named
+all changed files to a subdirectory of @file{$LILYPOND_GIT} named
 @file{aborted_edits/}, and will reset the repository to the
 current state of the remote repository (at @code{git.sv.gnu.org}).
 
@@ -465,7 +465,7 @@ text.  This should take less than a minute.
 @c we heavily recommend the out-of-tree build; do not change this!
 
 @example
-cd ~/lilypond-git/
+cd $LILYPOND_GIT
 sh autogen.sh --noconfigure
 mkdir -p build/
 cd build/
@@ -481,14 +481,14 @@ building; this can have a non-negligible effect on compilation
 speed.
 
 @example
-cd ~/lilypond-git/build/
+cd $LILYPOND_GIT/build/
 make
 @end example
 
 You may run the compiled @code{lilypond} with:
 
 @example
-cd ~/lilypond-git/build/
+cd $LILYPOND_GIT/build/
 out/bin/lilypond my-file.ly
 @end example
 
@@ -498,7 +498,7 @@ Compiling the documentation is a much more involved process, and
 will likely take 2 to 10 hours.
 
 @example
-cd ~/lilypond-git/build/
+cd $LILYPOND_GIT/build/
 make
 make doc
 @end example
@@ -508,14 +508,14 @@ view the html files by entering the below text; we recommend that
 you bookmark the resulting page:
 
 @example
-firefox ~/lilypond-git/build/out-www/offline-root/index.html
+firefox $LILYPOND_GIT/build/out-www/offline-root/index.html
 @end example
 
 @subsubheading Installing
 
 Don't.  There is no reason to install lilypond within LilyDev.
 All development work can (and should) stay within the
-@file{$HOME/lilypond-git/} directory, and any personal composition
+@file{$LILYPOND_GIT} directory, and any personal composition
 or typesetting work should be done with an official GUB release.
 
 
index 7bca714f2c412b1aa56a77962c98e5fa7731216b..c155a8b923ad946a6beec6aaa2772eb26353935c 100644 (file)
@@ -209,7 +209,7 @@ Run @code{make} with current git master without any of your changes.
 
 @item
 Before making changes to the code, establish a baseline for the comparison by
-going to the @file{lilypond-git/build/} directory and running:
+going to the @file{$LILYPOND_GIT/build/} directory and running:
 
 @example
 make test-baseline
index d3f4f3a11b8dc11e7813f658d286606a46d97c27..72b05175d8d3f2d3dde667a7891b20fea2f737fd 100644 (file)
@@ -93,7 +93,7 @@ files.
 @end enumerate
 
 @warning{Throughout the rest of this manual, most command-line
-input should be entered from @file{~/lilypond-git/}.  This is
+input should be entered from @file{$LILYPOND_GIT}.  This is
 referred to as the @emph{top source directory}.}
 
 Further instructions are in @ref{How to use lily-git}.
@@ -160,7 +160,7 @@ The above command will put the it in @file{~/lilypond-git}, where
 
 @subsubheading Technical details
 
-This creates (within the @file{~/lilypond-git/} directory) a
+This creates (within the @file{$LILYPOND_GIT} directory) a
 subdirectory called @file{.git/}, which Git uses to keep track of
 changes to the repository, among other things.  Normally you don't
 need to access it, but it's good to know it's there.
@@ -171,7 +171,7 @@ need to access it, but it's good to know it's there.
 
 @warning{Throughout the rest of this manual, all command-line
 input should be entered from the top directory of the Git
-repository being discussed (eg. @file{~/lilypond-git/}).  This is
+repository being discussed (eg. @file{$LILYPOND_GIT}).  This is
 referred to as the @emph{top source directory}.}
 
 Before working with the copy of the main LilyPond repository, you
@@ -732,7 +732,7 @@ Already on 'master'
 @end example
 
 By now the source files should be accessible---you should be able
-to edit any files in the @file{lilypond-git/} directory using a
+to edit any files in the @file{$LILYPOND_GIT} directory using a
 text editor of your choice.  But don't start just yet!  Before
 editing any source files, learn how to keep your changes organized
 and prevent problems later---read @ref{Basic Git procedures}.
@@ -1295,7 +1295,7 @@ cl} with the following commands.  If you do not understand any
 question, just answer with a newline (CR).
 
 @example
-cd $HOME/lilypond-git/
+cd $LILYPOND_GIT
 git cl config
 @end example
 
index 97300b529614aa3bf2cef1ed1608ae19a2a3597a..fc9f99c56aad76a134c21a615d862ee355421c4c 100644 (file)
@@ -1,7 +1,5 @@
 ISOLANG = cs
 depth = ../..
-# SUBDIRS = web learning notation texidocs usage included essay extending
-SUBDIRS = web learning texidocs essay usage included
 STEPMAKE_TEMPLATES = documentation texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
 NO_PDF_FILES = 1
diff --git a/Documentation/cs/essay/GNUmakefile b/Documentation/cs/essay/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/cs/included/.gitignore b/Documentation/cs/included/.gitignore
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Documentation/cs/included/GNUmakefile b/Documentation/cs/included/GNUmakefile
deleted file mode 100644 (file)
index afe7a4d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth = ../../..
-
-STEPMAKE_TEMPLATES=documentation
-
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ly)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/cs/learning/GNUmakefile b/Documentation/cs/learning/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index a09c282f083dd3f69d3a1b023556fd2a8645dc56..3131a99e4a897c3d094ab3d05b4e2d4738523226 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 @c Translators: Pavel Fric
 
 @node Základní pojmy
@@ -888,9 +888,9 @@ a hlasy.  Složitější věci budou vysvětleny v pozdějších částech.
   \\  % Voice four
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'force-hshift = #0
+      \once \override NoteColumn.force-hshift = #0
       <ees c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   >> |
@@ -937,9 +937,9 @@ porozumět.
   \\  % Voice four
     { \voiceThreeStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'force-hshift = #0
+      \once \override NoteColumn.force-hshift = #0
       <ees c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   >>
@@ -3101,8 +3101,7 @@ sind.
         @}
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with @{
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       @} <<
         \keyTime
         \clef "bass"
@@ -3167,8 +3166,7 @@ PedalOrganMusic = \relative c {
         }
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with {
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       } <<
         \keyTime
         \clef "bass"
@@ -3236,7 +3234,7 @@ werden:
 @c TODO Avoid padtext - not needed with skylining
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
 fthenp=_\markup {
     \dynamic f \italic \small { 2nd } \hspace #0.1 dynamic p
 }
@@ -3268,7 +3266,7 @@ sehr viel schwerer lesbar, besonders die letzte Zeile.
 violin = \relative c'' @{
   \repeat volta 2 @{
     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b
-    \once \override TextScript #'padding = #5.0
+    \once \override TextScript.padding = #5.0
     c4.^"hi there!" d8 e' f g d
     c,4.\markup @{
       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
@@ -3295,7 +3293,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = $padding
+     \once \override TextScript.padding = $padding
    #})
 
 \relative c''' {
index 8097ccf4fddf9bc8f8ea73356282003f3d7c4696..c184040c11e029354c6ced8cee6d6885e0db4edd 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Ladění výstupu
 @chapter Ladění výstupu
@@ -259,9 +259,9 @@ zu ändern:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a b c |
 @end lilypond
 
@@ -296,11 +296,11 @@ wieder auf den Standardwert für die letzten zwei Noten gesetzt.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b4 c |
 @end lilypond
 
@@ -323,9 +323,9 @@ geändert werden:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\once \override NoteHead #'color = #red
+\once \override NoteHead.color = #red
 e4 f |
-\once \override NoteHead #'color = #green
+\once \override NoteHead.color = #green
 g4 a b c |
 @end lilypond
 
@@ -370,7 +370,7 @@ werden. Schauen wir zuerst, was wir mit
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-\once \override NoteHead #'font-size = #-3
+\once \override NoteHead.font-size = #-3
 <c e g>4
 <c e g>4
 @end lilypond
@@ -403,7 +403,7 @@ mittlere Note eines Akkordes auf diese Weise ändern:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-<c \tweak #'font-size #-3 e g>4
+<c \tweak font-size #-3 e g>4
 @end lilypond
 
 Beachten Sie, dass die Syntax des @code{\tweak}-Befehls sich
@@ -427,8 +427,8 @@ Beispiel zu sehen ist.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4^"Black"
-  -\tweak #'color #red ^"Red"
-  -\tweak #'color #green _"Green"
+  -\tweak color #red ^"Red"
+  -\tweak color #green _"Green"
 @end lilypond
 
 @noindent
@@ -464,9 +464,9 @@ gesetzt wird.
 @cindex direction-Eigenschaft, Beispiel
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\tweak #'direction #up
+\tweak direction #up
 \times 4/3 {
-  \tweak #'color #red
+  \tweak color #red
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
@@ -488,12 +488,11 @@ beginnen, kann ihr Aussehen auf die übliche Art mit dem
 @c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \times 2/3 { c8[ c c] }
-\once \override TupletNumber
-  #'text = #tuplet-number::calc-fraction-text
+\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
 \times 2/3 {
   c8[ c]
   c8[ c]
-  \once \override TupletNumber #'transparent = ##t
+  \once \override TupletNumber.transparent = ##t
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
 }
@@ -656,7 +655,7 @@ einmal einen sehr großen Wert für die Dicke um zu sehen, ob der
 Befehl auch funktioniert. Also:
 
 @example
-\override Slur #'thickness = #5.0
+\override Slur.thickness = #5.0
 @end example
 
 Vergessen Sie nicht das Rautenzeichen und Apostroph
@@ -678,7 +677,7 @@ Legatobogen und nahe bei ihm.} Also etwa so:
   \time 6/8
   {
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     r4 bes8 bes[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -753,7 +752,7 @@ muss also wie folgt positioniert werden:
     \key es \major
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes8[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -795,10 +794,10 @@ Note gestellt, an welcher der Bogen beginnt:
   {
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes[( g]) g |
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     g8[( es]) es d[( f]) as |
     as8 g
   }
@@ -823,11 +822,11 @@ dessen später den @code{\revert}-Befehl einsetzen, um die
   {
     r4 bes8
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     bes[( g]) g |
     g8[( es]) es
     % Revert thickness of all following slurs to default of 1.2
-    \revert Slur #'thickness
+    \revert Slur.thickness
     d8[( f]) as |
     as8 g
   }
@@ -934,7 +933,7 @@ Gut, der @code{\override}-Befehl, mit dem der Gesangstext
 kursiv gesetzt wird, lautet:
 
 @example
-\override LyricText #'font-shape = #'italic
+\override LyricText.font-shape = #'italic
 @end example
 
 @noindent
@@ -956,7 +955,7 @@ bezieht, etwa so:
     as8 g
   }
   \addlyrics {
-    \override LyricText #'font-shape = #'italic
+    \override LyricText.font-shape = #'italic
     The man who | feels love's sweet e -- | mo -- tion
   }
 }
@@ -988,7 +987,7 @@ ein Begriff interpretiert und von LilyPond nicht verstanden
 werden.  Der Befehl muss also lauten:
 
 @example
-\override Lyrics . LyricText #'font-shape = #'italic
+\override Lyrics.LyricText.font-shape = #'italic
 @end example
 
 @warning{Innerhalb von Gesangstext muss immer ein
@@ -1154,7 +1153,7 @@ auslassen:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override BarLine #'stencil = ##f
+  \override BarLine.stencil = ##f
   c4 b8 c d16 c d8
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1184,7 +1183,7 @@ den richtigen Kontext mit anzugeben:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'stencil = ##f
+  \override Staff.BarLine.stencil = ##f
   c4 b8 c d16 c d8
   g,8 a16 b8 c d4 e16
   e8
@@ -1206,7 +1205,7 @@ den Stencil auf ein Objekt mit der Größe Null setzt:
 @lilypond[quote,verbatim,relative=2]
 {
   c4 c
-  \once \override NoteHead #'stencil = #point-stencil
+  \once \override NoteHead.stencil = #point-stencil
   c4 c
 }
 @end lilypond
@@ -1237,7 +1236,7 @@ den Wert in einem @code{\override}-Befehl anzuführen.
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
+  \override Staff.BarLine.break-visibility = #'#(#f #f #f)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1273,7 +1272,7 @@ machen, ist also:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'transparent = ##t
+  \override Staff.TimeSignature.transparent = ##t
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1295,7 +1294,7 @@ gesetzt werden:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1339,7 +1338,7 @@ weiß zu setzen, können Sie schreiben:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #white
+  \override Staff.BarLine.color = #white
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1374,7 +1373,7 @@ in interne Werte konvertiert:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(x11-color 'white)
+  \override Staff.BarLine.color = #(x11-color 'white)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1404,7 +1403,7 @@ würde sein: @code{(rgb-color 1 1 1)}.
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(rgb-color 1 1 1)
+  \override Staff.BarLine.color = #(rgb-color 1 1 1)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1434,12 +1433,12 @@ verschiede Grauschattierungen erhalten:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
-  \override Staff.TimeSignature #'color = #(x11-color 'grey60)
-  \override Staff.Clef          #'color = #(x11-color 'grey60)
-  \override Voice.NoteHead      #'color = #(x11-color 'grey85)
-  \override Voice.Stem          #'color = #(x11-color 'grey85)
-  \override Staff.BarLine       #'color = #(x11-color 'grey10)
+  \override Staff.StaffSymbol.color = #(x11-color 'grey30)
+  \override Staff.TimeSignature.color = #(x11-color 'grey60)
+  \override Staff.Clef.color = #(x11-color 'grey60)
+  \override Voice.NoteHead.color = #(x11-color 'grey85)
+  \override Voice.Stem.color = #(x11-color 'grey85)
+  \override Staff.BarLine.color = #(x11-color 'grey10)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1514,8 +1513,8 @@ wir setzen den Stencil von beiden auf @code{#f}:
         alignAboveContext = #"main"
       }
       {
-        \override Staff.Clef #'stencil = ##f
-        \override Staff.TimeSignature #'stencil = ##f
+        \override Staff.Clef.stencil = ##f
+        \override Staff.TimeSignature.stencil = ##f
         { f8 f c }
       }
     >>
@@ -1582,9 +1581,9 @@ Das obige Beispiel könnte also auch so aussehen:
       \new Staff \with {
         alignAboveContext = #"main"
         % Don't print clefs in this staff
-        \override Clef #'stencil = ##f
+        \override Clef.stencil = ##f
         % Don't print time signatures in this staff
-        \override TimeSignature #'stencil = ##f
+        \override TimeSignature.stencil = ##f
       }
       { f8 f c }
     >>
@@ -1617,7 +1616,7 @@ Entweder wir ändern die Schriftgröße für jede Objektart
 mit einem eigenen Befehl, etwa:
 
 @example
-\override NoteHead #'font-size = #-2
+\override NoteHead.font-size = #-2
 @end example
 
 @noindent
@@ -1652,8 +1651,8 @@ Setzen wir das also in unserem Ossia-Beispiel ein:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         % Reduce all font sizes by ~24%
         fontSize = #-2
       }
@@ -1725,11 +1724,11 @@ sie benutzt:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         fontSize = #-2
         % Reduce stem length and line spacing to match
-        \override StaffSymbol #'staff-space = #(magstep -2)
+        \override StaffSymbol.staff-space = #(magstep -2)
       }
       { f8 f c }
     >>
@@ -1900,11 +1899,11 @@ der Standard eingestellt.
 
 @lilypond[quote,verbatim,relative=2]
 a4 g c a
-\override Stem #'direction = #DOWN
+\override Stem.direction = #DOWN
 a4 g c a
-\override Stem #'direction = #UP
+\override Stem.direction = #UP
 a4 g c a
-\revert Stem #'direction
+\revert Stem.direction
 a4 g c a
 @end lilypond
 
@@ -1996,9 +1995,9 @@ die Wirkung von @code{DOWN} (runter) und @code{UP}
 
 @lilypond[quote,verbatim,relative=2]
 c4-5 a-3 f-1 c'-5
-\override Fingering #'direction = #DOWN
+\override Fingering.direction = #DOWN
 c4-5 a-3 f-1 c'-5
-\override Fingering #'direction = #UP
+\override Fingering.direction = #UP
 c4-5 a-3 f-1 c'-5
 @end lilypond
 
@@ -2104,7 +2103,7 @@ werden.  Der Standardwert kann aus dem
 er ist @code{-5}, versuchen wir es also mit @code{-7}.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering #'font-size = #-7
+\override Fingering.font-size = #-7
 \set fingeringOrientations = #'(left)
 <f-2>4
 <c-1  e-2 g-3 b-5>4
@@ -2205,7 +2204,7 @@ Objekten zeigt.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
@@ -2283,12 +2282,12 @@ erstellt wird:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
 % Place following Ottava Bracket below Text Spanners
-\once \override Staff.OttavaBracket #'outside-staff-priority = #340
+\once \override Staff.OttavaBracket.outside-staff-priority = #340
 % Start Ottava Bracket
 \ottava #1
 c'4 \startTextSpan
@@ -2325,10 +2324,10 @@ Hier ein Beispiel, das die beiden Möglichkeiten veranschaulicht:
 @lilypond[quote,verbatim,relative=2]
 c4( c^\markup { \tiny \sharp } d4.) c8
 c4(
-\once \override TextScript #'avoid-slur = #'inside
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.avoid-slur = #'inside
+\once \override TextScript.outside-staff-priority = ##f
 c4^\markup { \tiny \sharp } d4.) c8
-\once \override Slur #'outside-staff-priority = #500
+\once \override Slur.outside-staff-priority = #500
 c4( c^\markup { \tiny \sharp } d4.) c8
 @end lilypond
 
@@ -2348,7 +2347,7 @@ Tabelle oben festgestellt werden und dann die Priorität für
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c2^"Text2" |
-\once \override TextScript #'outside-staff-priority = #500
+\once \override TextScript.outside-staff-priority = #500
 c2^"Text3"
 c2^"Text4" |
 @end lilypond
@@ -2412,12 +2411,12 @@ c,,2^"Text" c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 c,,2^"Long Text   " c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 \textLengthOn        % and turn on textLengthOn
 c,,2^"Long Text   "  % Spaces at end are honored
 c''2 |
@@ -2503,7 +2502,7 @@ Objektes zur Geltung kommt.  Mit diesem Befehl wird das für
 Dynamik-Zeichen erledigt:
 
 @example
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 @end example
 
 @noindent
@@ -2514,7 +2513,7 @@ Schauen wir uns an, wie es mit dem vorigen Beispiel funktioniert:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2535,7 +2534,7 @@ Rand eine halbe Einheit zu vergrößern:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 staff space
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2851,7 +2850,7 @@ zu verkleinern), die über oder unter den Noten gesetzt werden.
 
 @lilypond[quote,fragment,relative=1,verbatim]
 c2\fermata
-\override Script #'padding = #3
+\override Script.padding = #3
 b2\fermata
 @end lilypond
 
@@ -2861,11 +2860,11 @@ b2\fermata
 
 @lilypond[quote,fragment,relative=1,verbatim]
 % This will not work, see below
-\override MetronomeMark #'padding = #3
+\override MetronomeMark.padding = #3
 \tempo 4 = 120
 c1 |
 % This works
-\override Score.MetronomeMark #'padding = #3
+\override Score.MetronomeMark.padding = #3
 \tempo 4 = 80
 d1 |
 @end lilypond
@@ -2910,15 +2909,13 @@ sesquisharp = \markup { \sesquisharp }
  \relative c'' {
   c4
   % This prints a sesquisharp but the spacing is too small
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 c
   % This improves the spacing
-  \once \override Score.AccidentalPlacement #'right-padding = #0.6
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Score.AccidentalPlacement.right-padding = #0.6
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4
 }
 @end lilypond
@@ -2959,9 +2956,9 @@ aus dem Beispiel des vorigen Abschnitts auszurichten:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 unit
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 % Align dynamics to a base line 2 units above staff
-\override DynamicLineSpanner #'staff-padding = #2
+\override DynamicLineSpanner.staff-padding = #2
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2980,7 +2977,7 @@ Referenzpunkt der abhängigen Note angeordnet wird:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
 < a\2 >
-\once \override StringNumber #'self-alignment-X = #RIGHT
+\once \override StringNumber.self-alignment-X = #RIGHT
 < a\2 >
 @end lilypond
 
@@ -3023,7 +3020,7 @@ d.h. vier halbe Notenlinienabstände weiter nach unten:
 <<
   { c4 c c c }
   \\
-  \override MultiMeasureRest #'staff-position = #-8
+  \override MultiMeasureRest.staff-position = #-8
   { R1 }
 >>
 @end lilypond
@@ -3052,7 +3049,7 @@ links und 1,8 Notenlinienabstände nach unten verschoben:
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f4-5
-\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
 f4-5
 @end lilypond
 
@@ -3099,7 +3096,7 @@ verschwindet auch die etwas unschöne Form:
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
-\once \override PhrasingSlur #'positions = #'(-4 . -3)
+\once \override PhrasingSlur.positions = #'(-4 . -3)
 \acciaccatura e8\( d8 c~ c d c d\)
 @end lilypond
 
@@ -3128,7 +3125,7 @@ hochgeschoben werden, etwa auf 3:
 {
   \clef "bass"
   <<
-    \override Beam #'positions = #'(3 . 3)
+    \override Beam.positions = #'(3 . 3)
     { b,8 ais, b, g, }
   \\
     { e, g e, g }
@@ -3198,9 +3195,9 @@ Hier das Endergebnis:
     \\
     {
       \voiceFour
-      \once \override NoteColumn #'force-hshift = #0
+      \once \override NoteColumn.force-hshift = #0
       <ees c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   >> |
@@ -3233,7 +3230,7 @@ zu kompliziert zu machen.
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3246,7 +3243,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column so the merge will work
         \shiftOnn
         c2
@@ -3257,8 +3254,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \once \override Stem #'transparent = ##t
-        \once \override Flag #'transparent = ##t
+        \once \override Stem.transparent = ##t
+        \once \override Flag.transparent = ##t
         d2
       }
       \new Voice {
@@ -3445,7 +3442,7 @@ also, direkt vor die erste übergebundene Note gestellt, verschiebt
 den Bindebogen (@code{tie}) 3,5 halbe Notenlinienabstände
 über die Mittellinie:
 
-@code{\once \override Tie #'staff-position = #3.5}
+@code{\once \override Tie.staff-position = #3.5}
 
 Damit ist auch der zweite Takt vollständig:
 
@@ -3453,7 +3450,7 @@ Damit ist auch der zweite Takt vollständig:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3537,7 +3534,7 @@ um das Verhalten wieder auszuschalten. Das sieht so aus:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3611,7 +3608,7 @@ aus:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3681,7 +3678,7 @@ wir durchsichtig und das C verschieben wir mit der
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3695,7 +3692,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column so the merge will work
         \shiftOnn
         c2
@@ -3706,8 +3703,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \once \override Stem #'transparent = ##t
-        \once \override Flag #'transparent = ##t
+        \once \override Stem.transparent = ##t
+        \once \override Flag.transparent = ##t
         d2
       }
       \new Voice {
@@ -3797,8 +3794,8 @@ den Stimmen stattfindet:
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \once \override Stem #'transparent = ##t
-    \once \override Flag #'transparent = ##t
+    \once \override Stem.transparent = ##t
+    \once \override Flag.transparent = ##t
     b8~ b\noBeam
   }
 \\
@@ -3814,9 +3811,9 @@ gesetzt wird:
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \once \override Stem #'transparent = ##t
-    \once \override Flag #'transparent = ##t
-    \once \override Stem #'length = #8
+    \once \override Stem.transparent = ##t
+    \once \override Flag.transparent = ##t
+    \once \override Stem.length = #8
     b8~ b\noBeam
   }
 \\
@@ -3859,7 +3856,7 @@ einem entfernten Objekt gezeigt:
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'transparent = ##t
+    \once \override Score.MetronomeMark.transparent = ##t
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata
@@ -3878,7 +3875,7 @@ einem entfernten Objekt gezeigt:
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'stencil = ##f
+    \once \override Score.MetronomeMark.stencil = ##f
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata
@@ -3929,11 +3926,11 @@ Alternative versuchen wir, einen Befehl mit
 @code{\override} und @code{\revert} zu konstruieren.
 
 @example
-@code{\override Lyrics . LyricText #'font-shape = #'italic}
-@code{\override Lyrics . LyricText #'font-series = #'bold}
+@code{\override Lyrics.LyricText.font-shape = #'italic}
+@code{\override Lyrics.LyricText.font-series = #'bold}
 
-@code{\revert Lyrics . LyricText #'font-shape}
-@code{\revert Lyrics . LyricText #'font-series}
+@code{\revert Lyrics.LyricText.font-shape}
+@code{\revert Lyrics.LyricText.font-series}
 @end example
 
 Das wäre natürlich noch viel mühsamer, wenn viele Wörter eine
@@ -3953,12 +3950,12 @@ um noch weniger schreiben zu müssen:
 
 @lilypond[quote,verbatim]
 emphasize = {
-  \override Lyrics.LyricText #'font-shape = #'italic
-  \override Lyrics.LyricText #'font-series = #'bold
+  \override Lyrics.LyricText.font-shape = #'italic
+  \override Lyrics.LyricText.font-series = #'bold
 }
 normal = {
-  \revert Lyrics.LyricText #'font-shape
-  \revert Lyrics.LyricText #'font-series
+  \revert Lyrics.LyricText.font-shape
+  \revert Lyrics.LyricText.font-series
 }
 
 global = { \key c \major \time 4/4 \partial 4 }
@@ -4156,17 +4153,17 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4191,17 +4188,17 @@ inst =
 \layout{
   \context {
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context {
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   }
   \context {
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4245,16 +4242,16 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4280,12 +4277,12 @@ inst =
 
 \layout{
   \context { \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context { \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4407,8 +4404,8 @@ Befehl @code{/tieDotted} etwa wird folgendermaßen definiert:
 
 @example
 tieDotted = @{
-  \override Tie #'dash-period = #0.75
-  \override Tie #'dash-fraction = #0.1
+  \override Tie.dash-period = #0.75
+  \override Tie.dash-fraction = #0.1
 @}
 @end example
 
@@ -4496,8 +4493,8 @@ der Noten:
       \Score
  %  Um sicher zu gehen, dass Texte und Liedtext
  %  innerhalb der Papierränder bleiben
- \override PaperColumn #'keep-inside-line = ##t
- \override NonMusicalPaperColumn #'keep-inside-line = ##t
+ \override PaperColumn.keep-inside-line = ##t
+ \override NonMusicalPaperColumn.keep-inside-line = ##t
     @}
   @}
 @}
@@ -4555,7 +4552,7 @@ zu ihrer Position innerhalb der Tonleiter gesetzt.
 
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
-  \override NoteHead #'color = #color-notehead
+  \override NoteHead.color = #color-notehead
   a2 b | c2 d | e2 f | g2 a |
 }
 @end lilypond
diff --git a/Documentation/cs/texidocs/GNUmakefile b/Documentation/cs/texidocs/GNUmakefile
deleted file mode 100644 (file)
index 0ffa758..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth=../../..
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.texidoc)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/cs/usage/GNUmakefile b/Documentation/cs/usage/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 655889565e6751f9f95ab1458b22673a205625cc..6030539b29c2663858b64fc40d67dfda3804746c 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Pavel Fric
 
@@ -766,7 +766,7 @@ rot macht, aber als Resultat hat man zwei Systeme, während die
 Notenköpfe immernoch schwarz im unteren System erscheinen.
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.NoteHead #'color = #red
+\override Staff.NoteHead.color = #red
 \new Staff { a }
 @end lilypond
 
@@ -778,7 +778,7 @@ richtige Schreibweise wäre:
 
 @lilypond[quote,verbatim,relative=2]
 \new Staff {
-  \override Staff.NoteHead #'color = #red
+  \override Staff.NoteHead.color = #red
   a
 }
 @end lilypond
@@ -871,7 +871,7 @@ indem man einen der Kontexte als System erscheinen lässt, indem man ihm
 zu Beginn hinzufügt:
 
 @example
-\override VerticalAxisGroup #'staff-affinity = ##f
+\override VerticalAxisGroup.staff-affinity = ##f
 @end example
 
 Zu Einzelheiten siehe @qq{Abstand von Nicht-Notensystemzeilen} in
diff --git a/Documentation/cs/web/GNUmakefile b/Documentation/cs/web/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 41495994ce44f64473667db3f3e3e865dba6d244..5f822237df993f752ff7c3643cf0bf1b0d3f63f7 100644 (file)
@@ -2,8 +2,6 @@ depth = ../..
 
 CSS_FILES = $(call src-wildcard,*.css)
 
-EXTRA_DIST_FILES = $(CSS_FILES)
-
 OUT_CSS_FILES = $(CSS_FILES:%=$(outdir)/%)
 
 STEPMAKE_TEMPLATES = documentation
index 2ce622912549f6c78fa1944c1798b8f01f0466b1..9daf395dc6e6d978979b851dab0cbc001c23376c 100644 (file)
@@ -76,6 +76,8 @@ div#tocframe {
   -moz-border-radius-bottomright: 7px;
   -webkit-border-bottom-left-radius: 7px;
   -webkit-border-bottom-right-radius: 7px;
+  border-bottom-left-radius: 7px;
+  border-bottom-right-radius: 7px;
   margin: 0;
 }
 
@@ -94,10 +96,9 @@ div#tocframe {
   text-indent: -999em;
   background: #6aec7c url(../pictures/lily-home-nav-bg.png) no-repeat 50% 50%;
   width: 9%;
-  /* css3 no go yet? */
-  border-bottom-left-radius: 30px;
   -moz-border-radius-bottomleft: 7px;
   -webkit-border-bottom-left-radius: 7px;
+  border-bottom-left-radius: 7px;
 }
 
 #tocframe > ul:first-child > li:first-child a:hover {
@@ -121,6 +122,7 @@ div#tocframe {
   width: 9%;
   -moz-border-radius-bottomright: 7px;
   -webkit-border-bottom-right-radius: 7px;
+  border-bottom-right-radius: 7px;
 }
 
 #tocframe li {
@@ -151,6 +153,8 @@ div#tocframe {
   -moz-border-radius-bottomright: 20px;
   -webkit-border-top-right-radius: 20px;
   -webkit-border-bottom-right-radius: 20px;
+  border-top-right-radius: 20px;
+  border-bottom-right-radius: 20px;
 }
 
 #tocframe li form input[type="hidden"] {
@@ -205,6 +209,8 @@ div#tocframe {
   -moz-border-radius-bottomleft: 7px;
   -webkit-border-top-left-radius: 7px;
   -webkit-border-bottom-left-radius: 7px;
+  border-top-left-radius: 7px;
+  border-bottom-left-radius: 7px;
 }
 
 #tocframe .toc .toc li:last-child a {
@@ -212,6 +218,8 @@ div#tocframe {
   -moz-border-radius-bottomright: 7px;
   -webkit-border-top-right-radius: 7px;
   -webkit-border-bottom-right-radius: 7px;
+  border-top-right-radius: 7px;
+  border-bottom-right-radius: 7px;
 }
 
 #tocframe .toc .toc li a {
@@ -929,6 +937,7 @@ div.color4 h3 {
   /* Experimental rounded corners */
   -moz-border-radius: 10px;
   -webkit-border-radius: 10px;
+  border-radius: 10px;
   margin: 1em;
 }
 
diff --git a/Documentation/cyrillic.itexi b/Documentation/cyrillic.itexi
new file mode 100644 (file)
index 0000000..4e7569c
--- /dev/null
@@ -0,0 +1,768 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+@c
+@c cyrillic.itexi
+@c
+@c
+@c Cyrillic support for texinfo, using UTF-8 input encoding and LH fonts,
+@c with all the restrictions for non-CM fonts (this is, no kerning and no
+@c hyphenation).
+@c
+@c For outline fonts, we also use the cm-super family; the setup is the same
+@c as with the EC fonts except that the prefix is not `ec' but `la'.
+
+@tex
+\gdef\cyrfont{%
+  % Use the EC size information.
+  \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
+  \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
+  \ifmonospace
+    \font\thiscyrfont = latt\ecsize \space at \nominalsize
+  \else
+    \ifx\curfontstyle\bfstylename
+      \font\thiscyrfont = lab\ifusingit{i}{x}\ecsize \space at \nominalsize
+    \else
+      \font\thiscyrfont = la\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+    \fi
+  \fi
+  \thiscyrfont
+}
+
+
+% Glyph names, taken from LaTeX's `t2aenc.def' font encoding definition file
+% for T2A encoding.
+
+\gdef\textnumero{{\cyrfont \char 157}}
+\gdef\CYRpalochka{{\cyrfont \char 13}}
+
+\gdef\CYRA{{\cyrfont \char 192}}
+\gdef\cyra{{\cyrfont \char 224}}
+\gdef\CYRB{{\cyrfont \char 193}}
+\gdef\cyrb{{\cyrfont \char 225}}
+\gdef\CYRV{{\cyrfont \char 194}}
+\gdef\cyrv{{\cyrfont \char 226}}
+\gdef\CYRG{{\cyrfont \char 195}}
+\gdef\cyrg{{\cyrfont \char 227}}
+\gdef\CYRD{{\cyrfont \char 196}}
+\gdef\cyrd{{\cyrfont \char 228}}
+\gdef\CYRE{{\cyrfont \char 197}}
+\gdef\cyre{{\cyrfont \char 229}}
+\gdef\CYRZH{{\cyrfont \char 198}}
+\gdef\cyrzh{{\cyrfont \char 230}}
+\gdef\CYRZ{{\cyrfont \char 199}}
+\gdef\cyrz{{\cyrfont \char 231}}
+\gdef\CYRI{{\cyrfont \char 200}}
+\gdef\cyri{{\cyrfont \char 232}}
+\gdef\CYRISHRT{{\cyrfont \char 201}}
+\gdef\cyrishrt{{\cyrfont \char 233}}
+\gdef\CYRK{{\cyrfont \char 202}}
+\gdef\cyrk{{\cyrfont \char 234}}
+\gdef\CYRL{{\cyrfont \char 203}}
+\gdef\cyrl{{\cyrfont \char 235}}
+\gdef\CYRM{{\cyrfont \char 204}}
+\gdef\cyrm{{\cyrfont \char 236}}
+\gdef\CYRN{{\cyrfont \char 205}}
+\gdef\cyrn{{\cyrfont \char 237}}
+\gdef\CYRO{{\cyrfont \char 206}}
+\gdef\cyro{{\cyrfont \char 238}}
+\gdef\CYRP{{\cyrfont \char 207}}
+\gdef\cyrp{{\cyrfont \char 239}}
+\gdef\CYRR{{\cyrfont \char 208}}
+\gdef\cyrr{{\cyrfont \char 240}}
+\gdef\CYRS{{\cyrfont \char 209}}
+\gdef\cyrs{{\cyrfont \char 241}}
+\gdef\CYRT{{\cyrfont \char 210}}
+\gdef\cyrt{{\cyrfont \char 242}}
+\gdef\CYRU{{\cyrfont \char 211}}
+\gdef\cyru{{\cyrfont \char 243}}
+\gdef\CYRF{{\cyrfont \char 212}}
+\gdef\cyrf{{\cyrfont \char 244}}
+\gdef\CYRH{{\cyrfont \char 213}}
+\gdef\cyrh{{\cyrfont \char 245}}
+\gdef\CYRC{{\cyrfont \char 214}}
+\gdef\cyrc{{\cyrfont \char 246}}
+\gdef\CYRCH{{\cyrfont \char 215}}
+\gdef\cyrch{{\cyrfont \char 247}}
+\gdef\CYRSH{{\cyrfont \char 216}}
+\gdef\cyrsh{{\cyrfont \char 248}}
+\gdef\CYRSHCH{{\cyrfont \char 217}}
+\gdef\cyrshch{{\cyrfont \char 249}}
+\gdef\CYRHRDSN{{\cyrfont \char 218}}
+\gdef\cyrhrdsn{{\cyrfont \char 250}}
+\gdef\CYRERY{{\cyrfont \char 219}}
+\gdef\cyrery{{\cyrfont \char 251}}
+\gdef\CYRSFTSN{{\cyrfont \char 220}}
+\gdef\cyrsftsn{{\cyrfont \char 252}}
+\gdef\CYREREV{{\cyrfont \char 221}}
+\gdef\cyrerev{{\cyrfont \char 253}}
+\gdef\CYRYU{{\cyrfont \char 222}}
+\gdef\cyryu{{\cyrfont \char 254}}
+\gdef\CYRYA{{\cyrfont \char 223}}
+\gdef\cyrya{{\cyrfont \char 255}}
+\gdef\CYRGUP{{\cyrfont \char 128}}
+\gdef\cyrgup{{\cyrfont \char 160}}
+\gdef\CYRGHCRS{{\cyrfont \char 129}}
+\gdef\cyrghcrs{{\cyrfont \char 161}}
+\gdef\CYRDJE{{\cyrfont \char 130}}
+\gdef\cyrdje{{\cyrfont \char 162}}
+\gdef\CYRTSHE{{\cyrfont \char 131}}
+\gdef\cyrtshe{{\cyrfont \char 163}}
+\gdef\CYRSHHA{{\cyrfont \char 132}}
+\gdef\cyrshha{{\cyrfont \char 164}}
+\gdef\CYRZHDSC{{\cyrfont \char 133}}
+\gdef\cyrzhdsc{{\cyrfont \char 165}}
+\gdef\CYRZDSC{{\cyrfont \char 134}}
+\gdef\cyrzdsc{{\cyrfont \char 166}}
+\gdef\CYRLJE{{\cyrfont \char 135}}
+\gdef\cyrlje{{\cyrfont \char 167}}
+\gdef\CYRYI{{\cyrfont \char 136}}
+\gdef\cyryi{{\cyrfont \char 168}}
+\gdef\CYRKDSC{{\cyrfont \char 137}}
+\gdef\cyrkdsc{{\cyrfont \char 169}}
+\gdef\CYRKBEAK{{\cyrfont \char 138}}
+\gdef\cyrkbeak{{\cyrfont \char 170}}
+\gdef\CYRKVCRS{{\cyrfont \char 139}}
+\gdef\cyrkvcrs{{\cyrfont \char 171}}
+\gdef\CYRAE{{\cyrfont \char 140}}
+\gdef\cyrae{{\cyrfont \char 172}}
+\gdef\CYRNDSC{{\cyrfont \char 141}}
+\gdef\cyrndsc{{\cyrfont \char 173}}
+\gdef\CYRNG{{\cyrfont \char 142}}
+\gdef\cyrng{{\cyrfont \char 174}}
+\gdef\CYRDZE{{\cyrfont \char 143}}
+\gdef\cyrdze{{\cyrfont \char 175}}
+\gdef\CYROTLD{{\cyrfont \char 144}}
+\gdef\cyrotld{{\cyrfont \char 176}}
+\gdef\CYRSDSC{{\cyrfont \char 145}}
+\gdef\cyrsdsc{{\cyrfont \char 177}}
+\gdef\CYRUSHRT{{\cyrfont \char 146}}
+\gdef\cyrushrt{{\cyrfont \char 178}}
+\gdef\CYRY{{\cyrfont \char 147}}
+\gdef\cyry{{\cyrfont \char 179}}
+\gdef\CYRYHCRS{{\cyrfont \char 148}}
+\gdef\cyryhcrs{{\cyrfont \char 180}}
+\gdef\CYRHDSC{{\cyrfont \char 149}}
+\gdef\cyrhdsc{{\cyrfont \char 181}}
+\gdef\CYRDZHE{{\cyrfont \char 150}}
+\gdef\cyrdzhe{{\cyrfont \char 182}}
+\gdef\CYRCHVCRS{{\cyrfont \char 151}}
+\gdef\cyrchvcrs{{\cyrfont \char 183}}
+\gdef\CYRCHRDSC{{\cyrfont \char 152}}
+\gdef\cyrchrdsc{{\cyrfont \char 184}}
+\gdef\CYRIE{{\cyrfont \char 153}}
+\gdef\cyrie{{\cyrfont \char 185}}
+\gdef\CYRSCHWA{{\cyrfont \char 154}}
+\gdef\cyrschwa{{\cyrfont \char 186}}
+\gdef\CYRNJE{{\cyrfont \char 155}}
+\gdef\cyrnje{{\cyrfont \char 187}}
+\gdef\CYRYO{{\cyrfont \char 156}}
+\gdef\cyryo{{\cyrfont \char 188}}
+\gdef\CYRII{{\cyrfont \char 73}}
+\gdef\cyrii{{\cyrfont \char 105}}
+\gdef\CYRJE{{\cyrfont \char 74}}
+\gdef\cyrje{{\cyrfont \char 106}}
+\gdef\CYRQ{{\cyrfont \char 81}}
+\gdef\cyrq{{\cyrfont \char 113}}
+\gdef\CYRW{{\cyrfont \char 87}}
+\gdef\cyrw{{\cyrfont \char 119}}
+
+% Composite glyphs.
+
+\gdef\CYREGRAVE{{\cyrfont \accent 0 \char 197}}
+\gdef\cyregrave{{\cyrfont \accent 0 \char 229}}
+\gdef\CYRGGRAVE{{\cyrfont \accent 0 \char 195}}
+\gdef\cyrggrave{{\cyrfont \accent 0 \char 227}}
+\gdef\CYRKGRAVE{{\cyrfont \accent 0 \char 202}}
+\gdef\cyrkgrave{{\cyrfont \accent 0 \char 234}}
+\gdef\CYRIGRAVE{{\cyrfont \accent 0 \char 200}}
+\gdef\cyrigrave{{\cyrfont \accent 0 \char 232}}
+
+\gdef\CYRZHBREVE{{\cyrfont \accent 20 \char 198}}
+\gdef\cyrzhbreve{{\cyrfont \accent 20 \char 230}}
+\gdef\CYRABREVE{{\cyrfont \accent 20 \char 192}}
+\gdef\cyrabreve{{\cyrfont \accent 20 \char 224}}
+\gdef\CYREBREVE{{\cyrfont \accent 20 \char 197}}
+\gdef\cyrebreve{{\cyrfont \accent 20 \char 229}}
+
+\gdef\CYRADIAERESIS{{\cyrfont \accent 4 \char 192}}
+\gdef\cyradiaeresis{{\cyrfont \accent 4 \char 224}}
+\gdef\CYRSCHWADIAERESIS{{\cyrfont \accent 4 \char 154}}
+\gdef\cyrschwadiaeresis{{\cyrfont \accent 4 \char 186}}
+\gdef\CYRZHDIAERESIS{{\cyrfont \accent 4 \char 198}}
+\gdef\cyrzhdiaeresis{{\cyrfont \accent 4 \char 230}}
+\gdef\CYRZDIAERESIS{{\cyrfont \accent 4 \char 199}}
+\gdef\cyrzdiaeresis{{\cyrfont \accent 4 \char 231}}
+\gdef\CYRIDIAERESIS{{\cyrfont \accent 4 \char 200}}
+\gdef\cyridiaeresis{{\cyrfont \accent 4 \char 232}}
+\gdef\CYRODIAERESIS{{\cyrfont \accent 4 \char 206}}
+\gdef\cyrodiaeresis{{\cyrfont \accent 4 \char 238}}
+\gdef\CYREREVDIAERESIS{{\cyrfont \accent 4 \char 221}}
+\gdef\cyrerevdiaeresis{{\cyrfont \accent 4 \char 253}}
+\gdef\CYRUDIAERESIS{{\cyrfont \accent 4 \char 211}}
+\gdef\cyrudiaeresis{{\cyrfont \accent 4 \char 243}}
+\gdef\CYRCHDIAERESIS{{\cyrfont \accent 4 \char 215}}
+\gdef\cyrchdiaeresis{{\cyrfont \accent 4 \char 247}}
+\gdef\CYRERYDIAERESIS{{\cyrfont \accent 4 \char 219}}
+\gdef\cyrerydiaeresis{{\cyrfont \accent 4 \char 251}}
+
+\gdef\CYRIMACRON{{\cyrfont \accent 9 \char 200}}
+\gdef\cyrimacron{{\cyrfont \accent 9 \char 232}}
+\gdef\CYRUMACRON{{\cyrfont \accent 9 \char 211}}
+\gdef\cyrumacron{{\cyrfont \accent 9 \char 243}}
+
+\gdef\CYRUDOUBLEACUTE{{\cyrfont \accent 5 \char 211}}
+\gdef\cyrudoubleacute{{\cyrfont \accent 5 \char 243}}
+
+
+% UTF-8 mappings, taken from LaTeX's t2aenc.dfu input encoding definition
+% file for T2A encoding (adapted to use the above composite glyph names).
+
+\DeclareUnicodeCharacter{0400}{\CYREGRAVE}
+\DeclareUnicodeCharacter{0401}{\CYRYO}
+\DeclareUnicodeCharacter{0402}{\CYRDJE}
+\DeclareUnicodeCharacter{0403}{\CYRGGRAVE}
+\DeclareUnicodeCharacter{0404}{\CYRIE}
+\DeclareUnicodeCharacter{0405}{\CYRDZE}
+\DeclareUnicodeCharacter{0406}{\CYRII}
+\DeclareUnicodeCharacter{0407}{\CYRYI}
+\DeclareUnicodeCharacter{0408}{\CYRJE}
+\DeclareUnicodeCharacter{0409}{\CYRLJE}
+\DeclareUnicodeCharacter{040A}{\CYRNJE}
+\DeclareUnicodeCharacter{040B}{\CYRTSHE}
+\DeclareUnicodeCharacter{040C}{\CYRKGRAVE}
+\DeclareUnicodeCharacter{040D}{\CYRIGRAVE}
+\DeclareUnicodeCharacter{040E}{\CYRUSHRT}
+\DeclareUnicodeCharacter{040F}{\CYRDZHE}
+\DeclareUnicodeCharacter{0410}{\CYRA}
+\DeclareUnicodeCharacter{0411}{\CYRB}
+\DeclareUnicodeCharacter{0412}{\CYRV}
+\DeclareUnicodeCharacter{0413}{\CYRG}
+\DeclareUnicodeCharacter{0414}{\CYRD}
+\DeclareUnicodeCharacter{0415}{\CYRE}
+\DeclareUnicodeCharacter{0416}{\CYRZH}
+\DeclareUnicodeCharacter{0417}{\CYRZ}
+\DeclareUnicodeCharacter{0418}{\CYRI}
+\DeclareUnicodeCharacter{0419}{\CYRISHRT}
+\DeclareUnicodeCharacter{041A}{\CYRK}
+\DeclareUnicodeCharacter{041B}{\CYRL}
+\DeclareUnicodeCharacter{041C}{\CYRM}
+\DeclareUnicodeCharacter{041D}{\CYRN}
+\DeclareUnicodeCharacter{041E}{\CYRO}
+\DeclareUnicodeCharacter{041F}{\CYRP}
+\DeclareUnicodeCharacter{0420}{\CYRR}
+\DeclareUnicodeCharacter{0421}{\CYRS}
+\DeclareUnicodeCharacter{0422}{\CYRT}
+\DeclareUnicodeCharacter{0423}{\CYRU}
+\DeclareUnicodeCharacter{0424}{\CYRF}
+\DeclareUnicodeCharacter{0425}{\CYRH}
+\DeclareUnicodeCharacter{0426}{\CYRC}
+\DeclareUnicodeCharacter{0427}{\CYRCH}
+\DeclareUnicodeCharacter{0428}{\CYRSH}
+\DeclareUnicodeCharacter{0429}{\CYRSHCH}
+\DeclareUnicodeCharacter{042A}{\CYRHRDSN}
+\DeclareUnicodeCharacter{042B}{\CYRERY}
+\DeclareUnicodeCharacter{042C}{\CYRSFTSN}
+\DeclareUnicodeCharacter{042D}{\CYREREV}
+\DeclareUnicodeCharacter{042E}{\CYRYU}
+\DeclareUnicodeCharacter{042F}{\CYRYA}
+\DeclareUnicodeCharacter{0430}{\cyra}
+\DeclareUnicodeCharacter{0431}{\cyrb}
+\DeclareUnicodeCharacter{0432}{\cyrv}
+\DeclareUnicodeCharacter{0433}{\cyrg}
+\DeclareUnicodeCharacter{0434}{\cyrd}
+\DeclareUnicodeCharacter{0435}{\cyre}
+\DeclareUnicodeCharacter{0436}{\cyrzh}
+\DeclareUnicodeCharacter{0437}{\cyrz}
+\DeclareUnicodeCharacter{0438}{\cyri}
+\DeclareUnicodeCharacter{0439}{\cyrishrt}
+\DeclareUnicodeCharacter{043A}{\cyrk}
+\DeclareUnicodeCharacter{043B}{\cyrl}
+\DeclareUnicodeCharacter{043C}{\cyrm}
+\DeclareUnicodeCharacter{043D}{\cyrn}
+\DeclareUnicodeCharacter{043E}{\cyro}
+\DeclareUnicodeCharacter{043F}{\cyrp}
+\DeclareUnicodeCharacter{0440}{\cyrr}
+\DeclareUnicodeCharacter{0441}{\cyrs}
+\DeclareUnicodeCharacter{0442}{\cyrt}
+\DeclareUnicodeCharacter{0443}{\cyru}
+\DeclareUnicodeCharacter{0444}{\cyrf}
+\DeclareUnicodeCharacter{0445}{\cyrh}
+\DeclareUnicodeCharacter{0446}{\cyrc}
+\DeclareUnicodeCharacter{0447}{\cyrch}
+\DeclareUnicodeCharacter{0448}{\cyrsh}
+\DeclareUnicodeCharacter{0449}{\cyrshch}
+\DeclareUnicodeCharacter{044A}{\cyrhrdsn}
+\DeclareUnicodeCharacter{044B}{\cyrery}
+\DeclareUnicodeCharacter{044C}{\cyrsftsn}
+\DeclareUnicodeCharacter{044D}{\cyrerev}
+\DeclareUnicodeCharacter{044E}{\cyryu}
+\DeclareUnicodeCharacter{044F}{\cyrya}
+\DeclareUnicodeCharacter{0450}{\cyregrave}
+\DeclareUnicodeCharacter{0451}{\cyryo}
+\DeclareUnicodeCharacter{0452}{\cyrdje}
+\DeclareUnicodeCharacter{0453}{\cyrggrave}
+\DeclareUnicodeCharacter{0454}{\cyrie}
+\DeclareUnicodeCharacter{0455}{\cyrdze}
+\DeclareUnicodeCharacter{0456}{\cyrii}
+\DeclareUnicodeCharacter{0457}{\cyryi}
+\DeclareUnicodeCharacter{0458}{\cyrje}
+\DeclareUnicodeCharacter{0459}{\cyrlje}
+\DeclareUnicodeCharacter{045A}{\cyrnje}
+\DeclareUnicodeCharacter{045B}{\cyrtshe}
+\DeclareUnicodeCharacter{045C}{\cyrkgrave}
+\DeclareUnicodeCharacter{045D}{\cyrigrave}
+\DeclareUnicodeCharacter{045E}{\cyrushrt}
+\DeclareUnicodeCharacter{045F}{\cyrdzhe}
+\DeclareUnicodeCharacter{0490}{\CYRGUP}
+\DeclareUnicodeCharacter{0491}{\cyrgup}
+\DeclareUnicodeCharacter{0492}{\CYRGHCRS}
+\DeclareUnicodeCharacter{0493}{\cyrghcrs}
+\DeclareUnicodeCharacter{0496}{\CYRZHDSC}
+\DeclareUnicodeCharacter{0497}{\cyrzhdsc}
+\DeclareUnicodeCharacter{0498}{\CYRZDSC}
+\DeclareUnicodeCharacter{0499}{\cyrzdsc}
+\DeclareUnicodeCharacter{049A}{\CYRKDSC}
+\DeclareUnicodeCharacter{049B}{\cyrkdsc}
+\DeclareUnicodeCharacter{049C}{\CYRKVCRS}
+\DeclareUnicodeCharacter{049D}{\cyrkvcrs}
+\DeclareUnicodeCharacter{04A0}{\CYRKBEAK}
+\DeclareUnicodeCharacter{04A1}{\cyrkbeak}
+\DeclareUnicodeCharacter{04A2}{\CYRNDSC}
+\DeclareUnicodeCharacter{04A3}{\cyrndsc}
+\DeclareUnicodeCharacter{04A4}{\CYRNG}
+\DeclareUnicodeCharacter{04A5}{\cyrng}
+\DeclareUnicodeCharacter{04AA}{\CYRSDSC}
+\DeclareUnicodeCharacter{04AB}{\cyrsdsc}
+\DeclareUnicodeCharacter{04AE}{\CYRY}
+\DeclareUnicodeCharacter{04AF}{\cyry}
+\DeclareUnicodeCharacter{04B0}{\CYRYHCRS}
+\DeclareUnicodeCharacter{04B1}{\cyryhcrs}
+\DeclareUnicodeCharacter{04B2}{\CYRHDSC}
+\DeclareUnicodeCharacter{04B3}{\cyrhdsc}
+\DeclareUnicodeCharacter{04B6}{\CYRCHRDSC}
+\DeclareUnicodeCharacter{04B7}{\cyrchrdsc}
+\DeclareUnicodeCharacter{04B8}{\CYRCHVCRS}
+\DeclareUnicodeCharacter{04B9}{\cyrchvcrs}
+\DeclareUnicodeCharacter{04BA}{\CYRSHHA}
+\DeclareUnicodeCharacter{04BB}{\cyrshha}
+\DeclareUnicodeCharacter{04C0}{\CYRpalochka}
+\DeclareUnicodeCharacter{04C1}{\CYRZHBREVE}
+\DeclareUnicodeCharacter{04C2}{\cyrzhbreve}
+\DeclareUnicodeCharacter{04D0}{\CYRABREVE}
+\DeclareUnicodeCharacter{04D1}{\cyrabreve}
+\DeclareUnicodeCharacter{04D2}{\CYRADIAERESIS}
+\DeclareUnicodeCharacter{04D3}{\cyradiaeresis}
+\DeclareUnicodeCharacter{04D4}{\CYRAE}
+\DeclareUnicodeCharacter{04D5}{\cyrae}
+\DeclareUnicodeCharacter{04D6}{\CYREBREVE}
+\DeclareUnicodeCharacter{04D7}{\cyrebreve}
+\DeclareUnicodeCharacter{04D8}{\CYRSCHWA}
+\DeclareUnicodeCharacter{04D9}{\cyrschwa}
+\DeclareUnicodeCharacter{04DA}{\CYRSCHWADIAERESIS}
+\DeclareUnicodeCharacter{04DB}{\cyrschwadiaeresis}
+\DeclareUnicodeCharacter{04DC}{\CYRZHDIAERESIS}
+\DeclareUnicodeCharacter{04DD}{\cyrzhdiaeresis}
+\DeclareUnicodeCharacter{04DE}{\CYRZDIAERESIS}
+\DeclareUnicodeCharacter{04DF}{\cyrzdiaeresis}
+\DeclareUnicodeCharacter{04E2}{\CYRIMACRON}
+\DeclareUnicodeCharacter{04E3}{\cyrimacron}
+\DeclareUnicodeCharacter{04E4}{\CYRIDIAERESIS}
+\DeclareUnicodeCharacter{04E5}{\cyridiaeresis}
+\DeclareUnicodeCharacter{04E6}{\CYRODIAERESIS}
+\DeclareUnicodeCharacter{04E7}{\cyrodiaeresis}
+\DeclareUnicodeCharacter{04E8}{\CYROTLD}
+\DeclareUnicodeCharacter{04E9}{\cyrotld}
+\DeclareUnicodeCharacter{04EC}{\CYREREVDIAERESIS}
+\DeclareUnicodeCharacter{04ED}{\cyrerevdiaeresis}
+\DeclareUnicodeCharacter{04EE}{\CYRUMACRON}
+\DeclareUnicodeCharacter{04EF}{\cyrumacron}
+\DeclareUnicodeCharacter{04F0}{\CYRUDIAERESIS}
+\DeclareUnicodeCharacter{04F1}{\cyrudiaeresis}
+\DeclareUnicodeCharacter{04F2}{\CYRUDOUBLEACUTE}
+\DeclareUnicodeCharacter{04F3}{\cyrudoubleacute}
+\DeclareUnicodeCharacter{04F4}{\CYRCHDIAERESIS}
+\DeclareUnicodeCharacter{04F5}{\cyrchdiaeresis}
+\DeclareUnicodeCharacter{04F8}{\CYRERYDIAERESIS}
+\DeclareUnicodeCharacter{04F9}{\cyrerydiaeresis}
+
+\DeclareUnicodeCharacter{2116}{\textnumero}
+
+
+% Add all Cyrillic character names to \commondummies.
+
+\gdef\cyrdummies{%
+  \definedummyword\textnumero
+  \definedummyword\CYRpalochka
+%
+  \definedummyword\CYRA
+  \definedummyword\cyra
+  \definedummyword\CYRB
+  \definedummyword\cyrb
+  \definedummyword\CYRV
+  \definedummyword\cyrv
+  \definedummyword\CYRG
+  \definedummyword\cyrg
+  \definedummyword\CYRD
+  \definedummyword\cyrd
+  \definedummyword\CYRE
+  \definedummyword\cyre
+  \definedummyword\CYRZH
+  \definedummyword\cyrzh
+  \definedummyword\CYRZ
+  \definedummyword\cyrz
+  \definedummyword\CYRI
+  \definedummyword\cyri
+  \definedummyword\CYRISHRT
+  \definedummyword\cyrishrt
+  \definedummyword\CYRK
+  \definedummyword\cyrk
+  \definedummyword\CYRL
+  \definedummyword\cyrl
+  \definedummyword\CYRM
+  \definedummyword\cyrm
+  \definedummyword\CYRN
+  \definedummyword\cyrn
+  \definedummyword\CYRO
+  \definedummyword\cyro
+  \definedummyword\CYRP
+  \definedummyword\cyrp
+  \definedummyword\CYRR
+  \definedummyword\cyrr
+  \definedummyword\CYRS
+  \definedummyword\cyrs
+  \definedummyword\CYRT
+  \definedummyword\cyrt
+  \definedummyword\CYRU
+  \definedummyword\cyru
+  \definedummyword\CYRF
+  \definedummyword\cyrf
+  \definedummyword\CYRH
+  \definedummyword\cyrh
+  \definedummyword\CYRC
+  \definedummyword\cyrc
+  \definedummyword\CYRCH
+  \definedummyword\cyrch
+  \definedummyword\CYRSH
+  \definedummyword\cyrsh
+  \definedummyword\CYRSHCH
+  \definedummyword\cyrshch
+  \definedummyword\CYRHRDSN
+  \definedummyword\cyrhrdsn
+  \definedummyword\CYRERY
+  \definedummyword\cyrery
+  \definedummyword\CYRSFTSN
+  \definedummyword\cyrsftsn
+  \definedummyword\CYREREV
+  \definedummyword\cyrerev
+  \definedummyword\CYRYU
+  \definedummyword\cyryu
+  \definedummyword\CYRYA
+  \definedummyword\cyrya
+  \definedummyword\CYRGUP
+  \definedummyword\cyrgup
+  \definedummyword\CYRGHCRS
+  \definedummyword\cyrghcrs
+  \definedummyword\CYRDJE
+  \definedummyword\cyrdje
+  \definedummyword\CYRTSHE
+  \definedummyword\cyrtshe
+  \definedummyword\CYRSHHA
+  \definedummyword\cyrshha
+  \definedummyword\CYRZHDSC
+  \definedummyword\cyrzhdsc
+  \definedummyword\CYRZDSC
+  \definedummyword\cyrzdsc
+  \definedummyword\CYRLJE
+  \definedummyword\cyrlje
+  \definedummyword\CYRYI
+  \definedummyword\cyryi
+  \definedummyword\CYRKDSC
+  \definedummyword\cyrkdsc
+  \definedummyword\CYRKBEAK
+  \definedummyword\cyrkbeak
+  \definedummyword\CYRKVCRS
+  \definedummyword\cyrkvcrs
+  \definedummyword\CYRAE
+  \definedummyword\cyrae
+  \definedummyword\CYRNDSC
+  \definedummyword\cyrndsc
+  \definedummyword\CYRNG
+  \definedummyword\cyrng
+  \definedummyword\CYRDZE
+  \definedummyword\cyrdze
+  \definedummyword\CYROTLD
+  \definedummyword\cyrotld
+  \definedummyword\CYRSDSC
+  \definedummyword\cyrsdsc
+  \definedummyword\CYRUSHRT
+  \definedummyword\cyrushrt
+  \definedummyword\CYRY
+  \definedummyword\cyry
+  \definedummyword\CYRYHCRS
+  \definedummyword\cyryhcrs
+  \definedummyword\CYRHDSC
+  \definedummyword\cyrhdsc
+  \definedummyword\CYRDZHE
+  \definedummyword\cyrdzhe
+  \definedummyword\CYRCHVCRS
+  \definedummyword\cyrchvcrs
+  \definedummyword\CYRCHRDSC
+  \definedummyword\cyrchrdsc
+  \definedummyword\CYRIE
+  \definedummyword\cyrie
+  \definedummyword\CYRSCHWA
+  \definedummyword\cyrschwa
+  \definedummyword\CYRNJE
+  \definedummyword\cyrnje
+  \definedummyword\CYRYO
+  \definedummyword\cyryo
+  \definedummyword\CYRII
+  \definedummyword\cyrii
+  \definedummyword\CYRJE
+  \definedummyword\cyrje
+  \definedummyword\CYRQ
+  \definedummyword\cyrq
+  \definedummyword\CYRW
+  \definedummyword\cyrw
+%
+  \definedummyword\CYREGRAVE
+  \definedummyword\cyregrave
+  \definedummyword\CYRGGRAVE
+  \definedummyword\cyrggrave
+  \definedummyword\CYRKGRAVE
+  \definedummyword\cyrkgrave
+  \definedummyword\CYRIGRAVE
+  \definedummyword\cyrigrave
+%
+  \definedummyword\CYRZHBREVE
+  \definedummyword\cyrzhbreve
+  \definedummyword\CYRABREVE
+  \definedummyword\cyrabreve
+  \definedummyword\CYREBREVE
+  \definedummyword\cyrebreve
+%
+  \definedummyword\CYRADIAERESIS
+  \definedummyword\cyradiaeresis
+  \definedummyword\CYRSCHWADIAERESIS
+  \definedummyword\cyrschwadiaeresis
+  \definedummyword\CYRZHDIAERESIS
+  \definedummyword\cyrzhdiaeresis
+  \definedummyword\CYRZDIAERESIS
+  \definedummyword\cyrzdiaeresis
+  \definedummyword\CYRIDIAERESIS
+  \definedummyword\cyridiaeresis
+  \definedummyword\CYRODIAERESIS
+  \definedummyword\cyrodiaeresis
+  \definedummyword\CYREREVDIAERESIS
+  \definedummyword\cyrerevdiaeresis
+  \definedummyword\CYRUDIAERESIS
+  \definedummyword\cyrudiaeresis
+  \definedummyword\CYRCHDIAERESIS
+  \definedummyword\cyrchdiaeresis
+  \definedummyword\CYRERYDIAERESIS
+  \definedummyword\cyrerydiaeresis
+%
+  \definedummyword\CYRIMACRON
+  \definedummyword\cyrimacron
+  \definedummyword\CYRUMACRON
+  \definedummyword\cyrumacron
+%
+  \definedummyword\CYRUDOUBLEACUTE
+  \definedummyword\cyrudoubleacute
+}
+
+\toks0 = \expandafter{\commondummies\cyrdummies}
+\xdef\commondummies{\the\toks0}
+
+
+% Add all Cyrillic character names to \indexnofonts.
+%
+% TODO: Fix the index entries.  Right now, entries \CYRAAA and \cyrbbb get
+%       simply mapped to ZZZZAAA and zzzzbbb, respectively.
+
+\gdef\cyrindexnofonts{%
+  \def\textnumero{ZZZZNo}%
+  \def\CYRpalochka{ZZZZpalochka}%
+%
+  \def\CYRA{ZZZZA}%
+  \def\cyra{zzzza}%
+  \def\CYRB{ZZZZB}%
+  \def\cyrb{zzzzb}%
+  \def\CYRV{ZZZZV}%
+  \def\cyrv{zzzzv}%
+  \def\CYRG{ZZZZG}%
+  \def\cyrg{zzzzg}%
+  \def\CYRD{ZZZZD}%
+  \def\cyrd{zzzzd}%
+  \def\CYRE{ZZZZE}%
+  \def\cyre{zzzze}%
+  \def\CYRZH{ZZZZZH}%
+  \def\cyrzh{zzzzzh}%
+  \def\CYRZ{ZZZZZ}%
+  \def\cyrz{zzzzz}%
+  \def\CYRI{ZZZZI}%
+  \def\cyri{zzzzi}%
+  \def\CYRISHRT{ZZZZI}%
+  \def\cyrishrt{zzzzi}%
+  \def\CYRK{ZZZZK}%
+  \def\cyrk{zzzzk}%
+  \def\CYRL{ZZZZL}%
+  \def\cyrl{zzzzl}%
+  \def\CYRM{ZZZZM}%
+  \def\cyrm{zzzzm}%
+  \def\CYRN{ZZZZN}%
+  \def\cyrn{zzzzn}%
+  \def\CYRO{ZZZZO}%
+  \def\cyro{zzzzo}%
+  \def\CYRP{ZZZZP}%
+  \def\cyrp{zzzzp}%
+  \def\CYRR{ZZZZR}%
+  \def\cyrr{zzzzr}%
+  \def\CYRS{ZZZZS}%
+  \def\cyrs{zzzzs}%
+  \def\CYRT{ZZZZT}%
+  \def\cyrt{zzzzt}%
+  \def\CYRU{ZZZZU}%
+  \def\cyru{zzzzu}%
+  \def\CYRF{ZZZZF}%
+  \def\cyrf{zzzzf}%
+  \def\CYRH{ZZZZH}%
+  \def\cyrh{zzzzh}%
+  \def\CYRC{ZZZZC}%
+  \def\cyrc{zzzzc}%
+  \def\CYRCH{ZZZZCH}%
+  \def\cyrch{zzzzch}%
+  \def\CYRSH{ZZZZSH}%
+  \def\cyrsh{zzzzsh}%
+  \def\CYRSHCH{ZZZZSHCH}%
+  \def\cyrshch{zzzzshch}%
+  \def\CYRHRDSN{ZZZZHRDSN}%
+  \def\cyrhrdsn{zzzzhrdsn}%
+  \def\CYRERY{ZZZZERY}%
+  \def\cyrery{zzzzery}%
+  \def\CYRSFTSN{ZZZZSFTSN}%
+  \def\cyrsftsn{zzzzsftsn}%
+  \def\CYREREV{ZZZZEREV}%
+  \def\cyrerev{zzzzerev}%
+  \def\CYRYU{ZZZZYU}%
+  \def\cyryu{zzzzyu}%
+  \def\CYRYA{ZZZZYA}%
+  \def\cyrya{zzzzya}%
+  \def\CYRGUP{ZZZZGUP}%
+  \def\cyrgup{zzzzgup}%
+  \def\CYRGHCRS{ZZZZGHCRS}%
+  \def\cyrghcrs{zzzzghcrs}%
+  \def\CYRDJE{ZZZZDJE}%
+  \def\cyrdje{zzzzdje}%
+  \def\CYRTSHE{ZZZZTSHE}%
+  \def\cyrtshe{zzzztshe}%
+  \def\CYRSHHA{ZZZZSHHA}%
+  \def\cyrshha{zzzzshha}%
+  \def\CYRZHDSC{ZZZZZHDSC}%
+  \def\cyrzhdsc{zzzzzhdsc}%
+  \def\CYRZDSC{ZZZZZDSC}%
+  \def\cyrzdsc{zzzzzdsc}%
+  \def\CYRLJE{ZZZZLJE}%
+  \def\cyrlje{zzzzlje}%
+  \def\CYRYI{ZZZZYI}%
+  \def\cyryi{zzzzyi}%
+  \def\CYRKDSC{ZZZZKDSC}%
+  \def\cyrkdsc{zzzzkdsc}%
+  \def\CYRKBEAK{ZZZZKBEAK}%
+  \def\cyrkbeak{zzzzkbeak}%
+  \def\CYRKVCRS{ZZZZKVCRS}%
+  \def\cyrkvcrs{zzzzkvcrs}%
+  \def\CYRAE{ZZZZAE}%
+  \def\cyrae{zzzzae}%
+  \def\CYRNDSC{ZZZZNDSC}%
+  \def\cyrndsc{zzzzndsc}%
+  \def\CYRNG{ZZZZNG}%
+  \def\cyrng{zzzzng}%
+  \def\CYRDZE{ZZZZDZE}%
+  \def\cyrdze{zzzzdze}%
+  \def\CYROTLD{ZZZZOTLD}%
+  \def\cyrotld{zzzzotld}%
+  \def\CYRSDSC{ZZZZSDSC}%
+  \def\cyrsdsc{zzzzsdsc}%
+  \def\CYRUSHRT{ZZZZUSHRT}%
+  \def\cyrushrt{zzzzushrt}%
+  \def\CYRY{ZZZZY}%
+  \def\cyry{zzzzy}%
+  \def\CYRYHCRS{ZZZZYHCRS}%
+  \def\cyryhcrs{zzzzyhcrs}%
+  \def\CYRHDSC{ZZZZHDSC}%
+  \def\cyrhdsc{zzzzhdsc}%
+  \def\CYRDZHE{ZZZZDZHE}%
+  \def\cyrdzhe{zzzzdzhe}%
+  \def\CYRCHVCRS{ZZZZCHVCRS}%
+  \def\cyrchvcrs{zzzzchvcrs}%
+  \def\CYRCHRDSC{ZZZZCHRDSC}%
+  \def\cyrchrdsc{zzzzchrdsc}%
+  \def\CYRIE{ZZZZIE}%
+  \def\cyrie{zzzzie}%
+  \def\CYRSCHWA{ZZZZSCHWA}%
+  \def\cyrschwa{zzzzschwa}%
+  \def\CYRNJE{ZZZZNJE}%
+  \def\cyrnje{zzzznje}%
+  \def\CYRYO{ZZZZYO}%
+  \def\cyryo{zzzzyo}%
+  \def\CYRII{ZZZZII}%
+  \def\cyrii{zzzzii}%
+  \def\CYRJE{ZZZZJE}%
+  \def\cyrje{zzzzje}%
+  \def\CYRQ{ZZZZQ}%
+  \def\cyrq{zzzzq}%
+  \def\CYRW{ZZZZW}%
+  \def\cyrw{zzzzw}%
+%
+  \def\CYREGRAVE{ZZZZE}%
+  \def\cyregrave{zzzze}%
+  \def\CYRGGRAVE{ZZZZG}%
+  \def\cyrggrave{zzzzg}%
+  \def\CYRKGRAVE{ZZZZK}%
+  \def\cyrkgrave{zzzzk}%
+  \def\CYRIGRAVE{ZZZZI}%
+  \def\cyrigrave{zzzzi}%
+%
+  \def\CYRZHBREVE{ZZZZZH}%
+  \def\cyrzhbreve{zzzzzh}%
+  \def\CYRABREVE{ZZZZA}%
+  \def\cyrabreve{zzzza}%
+  \def\CYREBREVE{ZZZZE}%
+  \def\cyrebreve{zzzze}%
+%
+  \def\CYRADIAERESIS{ZZZZA}%
+  \def\cyradiaeresis{zzzza}%
+  \def\CYRSCHWADIAERESIS{ZZZZSCHWA}%
+  \def\cyrschwadiaeresis{zzzzschwa}%
+  \def\CYRZHDIAERESIS{ZZZZZH}%
+  \def\cyrzhdiaeresis{zzzzzh}%
+  \def\CYRZDIAERESIS{ZZZZZ}%
+  \def\cyrzdiaeresis{zzzzz}%
+  \def\CYRIDIAERESIS{ZZZZI}%
+  \def\cyridiaeresis{zzzzi}%
+  \def\CYRODIAERESIS{ZZZZO}%
+  \def\cyrodiaeresis{zzzzo}%
+  \def\CYREREVDIAERESIS{ZZZZEREV}%
+  \def\cyrerevdiaeresis{zzzzerev}%
+  \def\CYRUDIAERESIS{ZZZZU}%
+  \def\cyrudiaeresis{zzzzu}%
+  \def\CYRCHDIAERESIS{ZZZZCH}%
+  \def\cyrchdiaeresis{zzzzch}%
+  \def\CYRERYDIAERESIS{ZZZZERY}%
+  \def\cyrerydiaeresis{zzzzery}%
+%
+  \def\CYRIMACRON{ZZZZI}%
+  \def\cyrimacron{zzzzi}%
+  \def\CYRUMACRON{ZZZZU}%
+  \def\cyrumacron{zzzzu}%
+%
+  \def\CYRUDOUBLEACUTE{ZZZZU}%
+  \def\cyrudoubleacute{zzzzu}%
+}
+
+\toks0 = \expandafter{\indexnofonts\cyrindexnofonts}
+\xdef\indexnofonts{\the\toks0}
+
+@end tex
+
+@c end of cyrillic.itexi
index c31fd2fa6a5e7d92048cba234550226ef54c6070..427949d7518ea861bad5c6d1fe011e4ca26b495c 100644 (file)
@@ -1,6 +1,5 @@
 ISOLANG = de
 depth = ../..
-SUBDIRS = web learning notation texidocs essay usage extending included
 STEPMAKE_TEMPLATES = documentation texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
 
diff --git a/Documentation/de/essay/GNUmakefile b/Documentation/de/essay/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 502906318fc213ebc911cb29a7f17b3d7a0d9fad..ee837333e345548655fad37dd730b8d6df5d4aa3 100644 (file)
@@ -9,7 +9,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -334,9 +334,9 @@ music = {
   \layout {
     \context {
       \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.0
-      \override NoteSpacing #'same-direction-correction = #0.0
-      \override StaffSpacing #'stem-spacing-correction = #0.0
+      \override NoteSpacing.stem-spacing-correction = #0.0
+      \override NoteSpacing.same-direction-correction = #0.0
+      \override StaffSpacing.stem-spacing-correction = #0.0
     }
   }
 }
@@ -362,7 +362,7 @@ music = {
   \layout {
     \context {
       \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.6
+      \override NoteSpacing.stem-spacing-correction = #0.6
     }
   }
 }
@@ -491,8 +491,8 @@ global = {
   <<
     \new Staff \with {
       fontSize = #-4
-      \override StaffSymbol #'staff-space = #(magstep -4)
-      \override StaffSymbol #'thickness = #(magstep -3)
+      \override StaffSymbol.staff-space = #(magstep -4)
+      \override StaffSymbol.thickness = #(magstep -3)
     }
     \relative c' {
       \global
@@ -514,7 +514,7 @@ global = {
         \clef "bass"
         <<
         {
-        \once \override DynamicText #'X-offset = #-3
+        \once \override DynamicText.X-offset = #-3
         <ees g c>2.~->^\f
         <ees g c>4.~ <ees g c>8
       } \\ {
@@ -603,9 +603,9 @@ den folgenden Bogen ausgewählt werden?
 @lilypond
 \relative c {
   \clef bass
-  \once \override Slur #'positions = #'(1.5 . 1)
+  \once \override Slur.positions = #'(1.5 . 1)
   e8[( f] g[ a b d,)] r4
-  \once \override Slur #'positions = #'(2 . 3)
+  \once \override Slur.positions = #'(2 . 3)
   e8[( f] g[ a b d,)] r4
   e8[( f] g[ a b d,)] r4
 }
@@ -646,7 +646,7 @@ Notenköpfe angeschnitten wird:
 @lilypond
 \relative c {
   \clef bass
-  \once \override Slur #'positions = #'(1.5 . 1)
+  \once \override Slur.positions = #'(1.5 . 1)
   e8[(_"15.39" f] g[ a b d,)] r4
 }
 @end lilypond
@@ -660,7 +660,7 @@ Insgesamt also 13.08 Punkte:
 @lilypond
 \relative c {
   \clef bass
-  \once \override Slur #'positions = #'(2 . 3)
+  \once \override Slur.positions = #'(2 . 3)
   e8[(_"13.08" f] g[ a b d,)] r4
 }
 @end lilypond
@@ -885,7 +885,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'staff-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }
@@ -908,7 +908,7 @@ nicht an, sodass die Noten sehr schwer lesbar werden, wenn
 die untere und obere Stimme zeitweise ausgetauscht werden:
 
 @lilypond
-collide = \once \override NoteColumn #'force-hshift = #0
+collide = \once \override NoteColumn.force-hshift = #0
 
 \score {
   <<
@@ -1166,8 +1166,8 @@ Beispiel heranzieht:
         \change Staff = "LH" \oneVoice
         \stemUp g,( c}
       r4
-      \override Stem #'cross-staff = ##t
-      \override Stem #'length = #12
+      \override Stem.cross-staff = ##t
+      \override Stem.length = #12
       <fis, b>) r\fermata
     }
   >>
@@ -1457,14 +1457,14 @@ ausgerichtet, beim zweiten nach oben (rechts).
 \score {
   \relative c' {
     \stemDown <e g b>4_>-\arpeggio
-    \override Arpeggio #'direction = #RIGHT
+    \override Arpeggio.direction = #RIGHT
     \stemUp <e g b>4^>-\arpeggio
   }
   \layout {
     \context {
       \Score
-      \override SpacingSpanner #'spacing-increment = #3
-      \override TimeSignature #'transparent = ##t
+      \override SpacingSpanner.spacing-increment = #3
+      \override TimeSignature.transparent = ##t
     }
   }
 }
@@ -1490,12 +1490,12 @@ fragment = {
 <<
    \new Staff \fragment
    \new Staff \with {
-      \override Beam #'beam-thickness = #0.3
-      \override Stem #'thickness = #0.5
-      \override Bar #'thickness = #3.6
-      \override Tie #'thickness = #2.2
-      \override StaffSymbol #'thickness = #3.0
-      \override Tie #'extra-offset = #'(0 .  0.3)
+      \override Beam.beam-thickness = #0.3
+      \override Stem.thickness = #0.5
+      \override Bar.thickness = #3.6
+      \override Tie.thickness = #2.2
+      \override StaffSymbol.thickness = #3.0
+      \override Tie.extra-offset = #'(0 .  0.3)
       }
       \fragment
 >>
@@ -1529,12 +1529,12 @@ die Notenköpfe gezeichnet werden, während des Ausschnitts verändert.
   \set autoBeaming = ##f
   \time 2/4
   <d f g>4
-  \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
-  \once \override NoteHead #'font-size = #-7
-  \once \override NoteHead #'font-family = #'sans
-  \once \override NoteHead #'font-series = #'bold
+  \once \override NoteHead.stencil = #note-head::brew-ez-stencil
+  \once \override NoteHead.font-size = #-7
+  \once \override NoteHead.font-family = #'sans
+  \once \override NoteHead.font-series = #'bold
   <d f g>4
-  \once \override NoteHead #'style = #'cross
+  \once \override NoteHead.style = #'cross
   <d f g>4
   \applyOutput #'Voice #mc-squared
   <d f g>4
@@ -1598,7 +1598,7 @@ nächste Beispiel zeigt einige etwas exotischere Konstruktionen:
       \time 4/8
       \key c \minor
       << {
-        \revert Stem #'direction
+        \revert Stem.direction
         \change Staff = down
         \set subdivideBeams = ##t
         g16.[
@@ -1627,16 +1627,16 @@ nächste Beispiel zeigt einige etwas exotischere Konstruktionen:
       \clef bass
       \key c \minor
       \set subdivideBeams = ##f
-      \override Stem  #'french-beaming = ##t
-      \override Beam  #'beam-thickness = #0.3
-      \override Stem  #'thickness = #4.0
+      \override Stem.french-beaming = ##t
+      \override Beam.beam-thickness = #0.3
+      \override Stem.thickness = #4.0
       g'16[ b16 fis16 g16]
       << \makeClusters {
         as16 <as b>
         <g b>
         <g cis>
       } \\ {
-        \override Staff.Arpeggio  #'arpeggio-direction =#down
+        \override Staff.Arpeggio.arpeggio-direction =#down
         <cis, e, gis, b, cis>4\arpeggio
       }
     >> }
@@ -1820,7 +1820,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'staff-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }
diff --git a/Documentation/de/extending/GNUmakefile b/Documentation/de/extending/GNUmakefile
deleted file mode 100644 (file)
index 000480f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-depth = ../../..
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 35ad908c5d374d82d1c2b8e143700b790d603207..4b1b43a00646d3cebdcfdb3248d87cd0fcaaadc1 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -406,7 +406,7 @@ manualBeam =
      (parser location beg-end)
      (pair?)
    #@{
-     \once \override Beam #'positions = #beg-end
+     \once \override Beam.positions = #beg-end
    #@})
 
 \relative c' @{
@@ -425,7 +425,7 @@ manualBeam =
      (parser location beg end)
      (number? number?)
    #{
-     \once \override Beam #'positions = #(cons beg end)
+     \once \override Beam.positions = #(cons beg end)
    #})
 
 \relative c' {
@@ -447,14 +447,14 @@ AltOn =
      (parser location mag)
      (number?)
    #{
-     \override Stem #'length = #(* 7.0 mag)
-     \override NoteHead #'font-size =
+     \override Stem.length = #(* 7.0 mag)
+     \override NoteHead.font-size =
        #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
    #})
 
 AltOff = {
-  \revert Stem #'length
-  \revert NoteHead #'font-size
+  \revert Stem.length
+  \revert NoteHead.font-size
 }
 
 \relative c' {
@@ -473,12 +473,12 @@ withAlt =
      (parser location mag music)
      (number? ly:music?)
    #{
-     \override Stem #'length = #(* 7.0 mag)
-     \override NoteHead #'font-size =
+     \override Stem.length = #(* 7.0 mag)
+     \override NoteHead.font-size =
        #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
      #music
-     \revert Stem #'length
-     \revert NoteHead #'font-size
+     \revert Stem.length
+     \revert NoteHead.font-size
    #})
 
 \relative c' {
@@ -508,7 +508,7 @@ displayBarNum =
      (parser location)
      ()
    (if (eq? #t (ly:get-option 'display-bar-numbers))
-       #@{ \once \override Score.BarNumber #'break-visibility = ##f #@}
+       #@{ \once \override Score.BarNumber.break-visibility = ##f #@}
        #@{#@}))
 @end example
 
@@ -1201,13 +1201,13 @@ Eigenschaften (wie Dicke (@code{thickness}), Richtung (@code{direction})
 usw.) können mit @code{\override} auf feste Werte gesetzt werden, etwa:
 
 @example
-\override Stem #'thickness = #2.0
+\override Stem.thickness = #2.0
 @end example
 
 Eigenschaften können auch auf eine Scheme-Prozedur gesetzt werden:
 
 @lilypond[fragment,verbatim,quote,relative=2]
-\override Stem #'thickness = #(lambda (grob)
+\override Stem.thickness = #(lambda (grob)
     (if (= UP (ly:grob-property grob 'direction))
         2.0
         7.0))
@@ -1286,7 +1286,7 @@ mein-callback = #(lambda (grob)
 TODO: das Beispiel für diesen Abschnitt ist nicht gut gewähtl:
 
 @example
-F = -\tweak #'font-size #-3 -\flageolet
+F = -\tweak font-size #-3 -\flageolet
 @end example
 (beachte @samp{-}, was ein Nachereignis anzeigt) funktioniert
 für den geschilderten Zweck sehr gut.  Aber bis der Abschnitt
@@ -1298,7 +1298,7 @@ syntaktische Inflexibilität.  Folgender Code beispielsweise
 ergibt einen Syntaxfehler:
 
 @example
-F = \tweak #'font-size #-3 -\flageolet
+F = \tweak font-size #-3 -\flageolet
 
 \relative c'' @{
   c4^\F c4_\F
@@ -1397,7 +1397,7 @@ neu ausgerichtet wird.
      (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
 
 \relative c'' {
-  \override Tie #'after-line-breaking =
+  \override Tie.after-line-breaking =
   #my-callback
   c1 ~ \break c2 ~ c
 }
@@ -1420,7 +1420,7 @@ und @code{PaperColumn}.  Sie können mit der
 
 @example
 \overrideProperty
-#"Score.NonMusicalPaperColumn"  % Grob-Bezeichnung
+Score.NonMusicalPaperColumn  % Grob-Bezeichnung
 #'line-break-system-details     % Eigenschaftsbezeichnung
 #'((next-padding . 20))         % Wert
 @end example
index 06e84edb9f69f48bfacb7ff2d3201fb354c67a5b..a66fa13199353c77f224341f99d2585d0c697f47 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Scheme-Übung
 @chapter Scheme-Übung
@@ -936,7 +936,7 @@ der Alist einen Wert mit Schlüssel und dem Wert zuweist.  Die
 LilyPond-Syntax hierfür ist:
 
 @example
-\override Stem #'thickness = #2.6
+\override Stem.thickness = #2.6
 @end example
 
 Diese Anweisung verändert die Erscheinung der Notenhälse. Der Alist-Eintrag
@@ -968,7 +968,7 @@ Abstands ist die X-Koordinate und der @code{cdr}-Wert die
 Y-Koordinate.
 
 @example
-\override TextScript #'extra-offset = #'(1 . 2)
+\override TextScript.extra-offset = #'(1 . 2)
 @end example
 
 Hierdurch wird das Paar @code{(1 . 2)} mit der Eigenschaft @code{extra-offset}
@@ -1573,7 +1573,7 @@ folgendermaßen:
 
 Wir haben gesehen wie LilyPond-Eingabe massiv beeinflusst
 werden kann, indem Befehle wie etwa
-@code{\override TextScript #'extra-offset = ( 1 . -1)}
+@code{\override TextScript.extra-offset = ( 1 . -1)}
 benutzt werden.  Aber es wurde gezeigt, dass Scheme noch
 mächtiger ist.  Eine bessere Erklärung findet sich in der@ref{Scheme-Übung} und in
 @ruser{Schnittstellen für Programmierer}.
@@ -1589,7 +1589,7 @@ TODO Find a simple example
 @lilypond[quote,verbatim,ragged-right]
 padText = #(define-music-function (parser location padding) (number?)
 #{
-  \once \override TextScript #'padding = #padding
+  \once \override TextScript.padding = #padding
 #})
 
 \relative c''' {
@@ -1611,7 +1611,7 @@ Es kann auch benutzt werden, um Befehle zu erstellen:
 tempoPadded = #(define-music-function (parser location padding tempotext)
   (number? markup?)
 #{
-  \once \override Score.MetronomeMark #'padding = #padding
+  \once \override Score.MetronomeMark.padding = #padding
   \tempo \markup { \bold #tempotext }
 #})
 
diff --git a/Documentation/de/included/GNUmakefile b/Documentation/de/included/GNUmakefile
deleted file mode 100644 (file)
index dfb8d67..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth = ../../..
-
-STEPMAKE_TEMPLATES=documentation
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.ly)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/de/learning/GNUmakefile b/Documentation/de/learning/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 1b72a415f41349a388aad955dd8812cadf9b78f0..cb78a439d20525301783456697efc40f7baa5af2 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 @c Translators: Till Paala, Reinhold Kainhofer
 
 @node Grundbegriffe
@@ -897,15 +897,15 @@ in späteren Abschnitten erklärt werden.
   \\  % Voice two
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No voice three
   \\  % Voice four
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -947,15 +947,15 @@ verstehen können.
   \\  % Voice two
     { \voiceTwoStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No Voice three (we want stems down)
   \\  % Voice four
     { \voiceThreeStyle
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -3136,8 +3136,7 @@ sind.
         @}
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with @{
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       @} <<
         \keyTime
         \clef "bass"
@@ -3202,8 +3201,7 @@ PedalOrganMusic = \relative c {
         }
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with {
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       } <<
         \keyTime
         \clef "bass"
@@ -3271,7 +3269,7 @@ werden:
 @c TODO Avoid padtext - not needed with skylining
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
 fthenp=_\markup {
     \dynamic f \italic \small { 2nd } \hspace #0.1 dynamic p
 }
@@ -3303,7 +3301,7 @@ sehr viel schwerer lesbar, besonders die letzte Zeile.
 violin = \relative c'' @{
   \repeat volta 2 @{
     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b
-    \once \override TextScript #'padding = #5.0
+    \once \override TextScript.padding = #5.0
     c4.^"hi there!" d8 e' f g d
     c,4.\markup @{
       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
@@ -3330,7 +3328,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
index 338985f9e6af719c21dd0cb059f7ce4b71ef41d8..8c4e384755308be6681cb8b0d2c0951c1a4fa5c1 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Die Ausgabe verändern
 @chapter Die Ausgabe verändern
@@ -260,9 +260,9 @@ zu ändern:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a b c |
 @end lilypond
 
@@ -297,11 +297,11 @@ wieder auf den Standardwert für die letzten zwei Noten gesetzt.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b4 c |
 @end lilypond
 
@@ -326,11 +326,11 @@ geändert werden:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\once \override NoteHead #'color = #green
+\once \override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b c |
 @end lilypond
 
@@ -376,7 +376,7 @@ werden.  Schauen wir zuerst, was wir mit
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-\once \override NoteHead #'font-size = #-3
+\once \override NoteHead.font-size = #-3
 <c e g>4
 <c e g>4
 @end lilypond
@@ -403,7 +403,7 @@ mittlere Note eines Akkordes auf diese Weise ändern:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-<c \tweak #'font-size #-3 e g>4
+<c \tweak font-size #-3 e g>4
 @end lilypond
 
 Beachten Sie, dass die Syntax des @code{\tweak}-Befehls sich
@@ -427,8 +427,8 @@ Beispiel zu sehen ist.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4^"Black"
-  -\tweak #'color #red ^"Red"
-  -\tweak #'color #green _"Green"
+  -\tweak color #red ^"Red"
+  -\tweak color #green _"Green"
 @end lilypond
 
 @noindent
@@ -448,8 +448,8 @@ Layout-Objekte direkt benennt, vorausgesetzt dass LilyPond ihre Herkunft
 bis zu dem ursprünglichen Ereignis zurück verfolgen kann:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<\tweak Accidental #'color #red   cis4
- \tweak Accidental #'color #green es
+<\tweak Accidental.color #red   cis4
+ \tweak Accidental.color #green es
                                   g>
 @end lilypond
 
@@ -487,9 +487,9 @@ gesetzt wird.
 @cindex direction-Eigenschaft, Beispiel
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\tweak #'direction #up
+\tweak direction #up
 \times 4/3 {
-  \tweak #'color #red
+  \tweak color #red
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
@@ -511,12 +511,11 @@ beginnen, kann ihr Aussehen auf die übliche Art mit dem
 @c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \times 2/3 { c8[ c c] }
-\once \override TupletNumber
-  #'text = #tuplet-number::calc-fraction-text
+\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
 \times 2/3 {
   c8[ c]
   c8[ c]
-  \once \override TupletNumber #'transparent = ##t
+  \once \override TupletNumber.transparent = ##t
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
 }
@@ -678,7 +677,7 @@ einmal einen sehr großen Wert für die Dicke um zu sehen, ob der
 Befehl auch funktioniert.  Also:
 
 @example
-\override Slur #'thickness = #5.0
+\override Slur.thickness = #5.0
 @end example
 
 Vergessen Sie nicht das Rautenzeichen und Apostroph
@@ -700,7 +699,7 @@ Legatobogen und nahe bei ihm.} Also etwa so:
   \time 6/8
   {
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     r4 bes8 bes[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -775,7 +774,7 @@ muss also wie folgt positioniert werden:
     \key es \major
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes8[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -817,10 +816,10 @@ Note gestellt, an welcher der Bogen beginnt:
   {
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes[( g]) g |
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     g8[( es]) es d[( f]) as |
     as8 g
   }
@@ -845,11 +844,11 @@ dessen später den @code{\revert}-Befehl einsetzen, um die
   {
     r4 bes8
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     bes[( g]) g |
     g8[( es]) es
     % Revert thickness of all following slurs to default of 1.2
-    \revert Slur #'thickness
+    \revert Slur.thickness
     d8[( f]) as |
     as8 g
   }
@@ -956,7 +955,7 @@ Gut, der @code{\override}-Befehl, mit dem der Gesangstext
 kursiv gesetzt wird, lautet:
 
 @example
-\override LyricText #'font-shape = #'italic
+\override LyricText.font-shape = #'italic
 @end example
 
 @noindent
@@ -978,7 +977,7 @@ bezieht, etwa so:
     as8 g
   }
   \addlyrics {
-    \override LyricText #'font-shape = #'italic
+    \override LyricText.font-shape = #'italic
     The man who | feels love's sweet e -- | mo -- tion
   }
 }
@@ -1010,7 +1009,7 @@ ein Begriff interpretiert und von LilyPond nicht verstanden
 werden.  Der Befehl muss also lauten:
 
 @example
-\override Lyrics . LyricText #'font-shape = #'italic
+\override Lyrics.LyricText.font-shape = #'italic
 @end example
 
 @warning{Innerhalb von Gesangstext muss immer ein
@@ -1176,7 +1175,7 @@ auslassen:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override BarLine #'stencil = ##f
+  \override BarLine.stencil = ##f
   c4 b8 c d16 c d8
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1206,7 +1205,7 @@ den richtigen Kontext mit anzugeben:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'stencil = ##f
+  \override Staff.BarLine.stencil = ##f
   c4 b8 c d16 c d8
   g,8 a16 b8 c d4 e16
   e8
@@ -1228,7 +1227,7 @@ den Stencil auf ein Objekt mit der Größe Null setzt:
 @lilypond[quote,verbatim,relative=2]
 {
   c4 c
-  \once \override NoteHead #'stencil = #point-stencil
+  \once \override NoteHead.stencil = #point-stencil
   c4 c
 }
 @end lilypond
@@ -1259,7 +1258,7 @@ den Wert in einem @code{\override}-Befehl anzuführen.
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
+  \override Staff.BarLine.break-visibility = #'#(#f #f #f)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1295,7 +1294,7 @@ machen, ist also:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'transparent = ##t
+  \override Staff.TimeSignature.transparent = ##t
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1317,7 +1316,7 @@ gesetzt werden:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1361,7 +1360,7 @@ weiß zu setzen, können Sie schreiben:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #white
+  \override Staff.BarLine.color = #white
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1396,7 +1395,7 @@ in interne Werte konvertiert:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(x11-color 'white)
+  \override Staff.BarLine.color = #(x11-color 'white)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1426,7 +1425,7 @@ würde sein: @code{(rgb-color 1 1 1)}.
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(rgb-color 1 1 1)
+  \override Staff.BarLine.color = #(rgb-color 1 1 1)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1456,12 +1455,12 @@ verschiede Grauschattierungen erhalten:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
-  \override Staff.TimeSignature #'color = #(x11-color 'grey60)
-  \override Staff.Clef          #'color = #(x11-color 'grey60)
-  \override Voice.NoteHead      #'color = #(x11-color 'grey85)
-  \override Voice.Stem          #'color = #(x11-color 'grey85)
-  \override Staff.BarLine       #'color = #(x11-color 'grey10)
+  \override Staff.StaffSymbol.color = #(x11-color 'grey30)
+  \override Staff.TimeSignature.color = #(x11-color 'grey60)
+  \override Staff.Clef.color = #(x11-color 'grey60)
+  \override Voice.NoteHead.color = #(x11-color 'grey85)
+  \override Voice.Stem.color = #(x11-color 'grey85)
+  \override Staff.BarLine.color = #(x11-color 'grey10)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1536,8 +1535,8 @@ wir setzen den Stencil von beiden auf @code{#f}:
         alignAboveContext = #"main"
       }
       {
-        \override Staff.Clef #'stencil = ##f
-        \override Staff.TimeSignature #'stencil = ##f
+        \override Staff.Clef.stencil = ##f
+        \override Staff.TimeSignature.stencil = ##f
         { f8 f c }
       }
     >>
@@ -1604,9 +1603,9 @@ Das obige Beispiel könnte also auch so aussehen:
       \new Staff \with {
         alignAboveContext = #"main"
         % Don't print clefs in this staff
-        \override Clef #'stencil = ##f
+        \override Clef.stencil = ##f
         % Don't print time signatures in this staff
-        \override TimeSignature #'stencil = ##f
+        \override TimeSignature.stencil = ##f
       }
       { f8 f c }
     >>
@@ -1639,7 +1638,7 @@ Entweder wir ändern die Schriftgröße für jede Objektart
 mit einem eigenen Befehl, etwa:
 
 @example
-\override NoteHead #'font-size = #-2
+\override NoteHead.font-size = #-2
 @end example
 
 @noindent
@@ -1674,8 +1673,8 @@ Setzen wir das also in unserem Ossia-Beispiel ein:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         % Reduce all font sizes by ~24%
         fontSize = #-2
       }
@@ -1747,11 +1746,11 @@ sie benutzt:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         fontSize = #-2
         % Reduce stem length and line spacing to match
-        \override StaffSymbol #'staff-space = #(magstep -2)
+        \override StaffSymbol.staff-space = #(magstep -2)
       }
       { f8 f c }
     >>
@@ -1922,11 +1921,11 @@ der Standard eingestellt.
 
 @lilypond[quote,verbatim,relative=2]
 a4 g c a
-\override Stem #'direction = #DOWN
+\override Stem.direction = #DOWN
 a4 g c a
-\override Stem #'direction = #UP
+\override Stem.direction = #UP
 a4 g c a
-\revert Stem #'direction
+\revert Stem.direction
 a4 g c a
 @end lilypond
 
@@ -2018,9 +2017,9 @@ die Wirkung von @code{DOWN} (runter) und @code{UP}
 
 @lilypond[quote,verbatim,relative=2]
 c4-5 a-3 f-1 c'-5
-\override Fingering #'direction = #DOWN
+\override Fingering.direction = #DOWN
 c4-5 a-3 f-1 c'-5
-\override Fingering #'direction = #UP
+\override Fingering.direction = #UP
 c4-5 a-3 f-1 c'-5
 @end lilypond
 
@@ -2126,7 +2125,7 @@ werden.  Der Standardwert kann aus dem
 er ist @w{@code{-5}}, versuchen wir es also mit @w{@code{-7}}.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering #'font-size = #-7
+\override Fingering.font-size = #-7
 \set fingeringOrientations = #'(left)
 <f-2>4
 <c-1  e-2 g-3 b-5>4
@@ -2234,7 +2233,7 @@ Objekten zeigt.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
@@ -2290,12 +2289,12 @@ erstellt wird:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
 % Place following Ottava Bracket below Text Spanners
-\once \override Staff.OttavaBracket #'outside-staff-priority = #340
+\once \override Staff.OttavaBracket.outside-staff-priority = #340
 % Start Ottava Bracket
 \ottava #1
 c'4 \startTextSpan
@@ -2337,10 +2336,10 @@ Hier ein Beispiel, das die beiden Möglichkeiten veranschaulicht:
 @lilypond[quote,verbatim,relative=2]
 c4( c^\markup { \tiny \sharp } d4.) c8
 c4(
-\once \override TextScript #'avoid-slur = #'inside
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.avoid-slur = #'inside
+\once \override TextScript.outside-staff-priority = ##f
 c4^\markup { \tiny \sharp } d4.) c8
-\once \override Slur #'outside-staff-priority = #500
+\once \override Slur.outside-staff-priority = #500
 c4( c^\markup { \tiny \sharp } d4.) c8
 @end lilypond
 
@@ -2360,7 +2359,7 @@ Tabelle oben festgestellt werden und dann die Priorität für
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c2^"Text2" |
-\once \override TextScript #'outside-staff-priority = #500
+\once \override TextScript.outside-staff-priority = #500
 c2^"Text3"
 c2^"Text4" |
 @end lilypond
@@ -2424,12 +2423,12 @@ c,,2^"Text" c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 c,,2^"Long Text   " c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 \textLengthOn        % and turn on textLengthOn
 c,,2^"Long Text   "  % Spaces at end are honored
 c''2 |
@@ -2515,7 +2514,7 @@ Objektes zur Geltung kommt.  Mit diesem Befehl wird das für
 Dynamik-Zeichen erledigt:
 
 @example
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 @end example
 
 @noindent
@@ -2526,7 +2525,7 @@ Schauen wir uns an, wie es mit dem vorigen Beispiel funktioniert:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2547,7 +2546,7 @@ Rand eine halbe Einheit zu vergrößern:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 staff space
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2863,7 +2862,7 @@ zu verkleinern), die über oder unter den Noten gesetzt werden.
 
 @lilypond[quote,fragment,relative=1,verbatim]
 c2\fermata
-\override Script #'padding = #3
+\override Script.padding = #3
 b2\fermata
 @end lilypond
 
@@ -2873,11 +2872,11 @@ b2\fermata
 
 @lilypond[quote,fragment,relative=1,verbatim]
 % This will not work, see below
-\override MetronomeMark #'padding = #3
+\override MetronomeMark.padding = #3
 \tempo 4 = 120
 c1 |
 % This works
-\override Score.MetronomeMark #'padding = #3
+\override Score.MetronomeMark.padding = #3
 \tempo 4 = 80
 d1 |
 @end lilypond
@@ -2922,15 +2921,13 @@ sesquisharp = \markup { \sesquisharp }
  \relative c'' {
   c4
   % This prints a sesquisharp but the spacing is too small
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 c
   % This improves the spacing
-  \once \override Score.AccidentalPlacement #'right-padding = #0.6
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Score.AccidentalPlacement.right-padding = #0.6
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4
 }
 @end lilypond
@@ -2971,9 +2968,9 @@ aus dem Beispiel des vorigen Abschnitts auszurichten:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 unit
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 % Align dynamics to a base line 2 units above staff
-\override DynamicLineSpanner #'staff-padding = #2
+\override DynamicLineSpanner.staff-padding = #2
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2992,7 +2989,7 @@ Referenzpunkt der abhängigen Note angeordnet wird:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
 < a\2 >
-\once \override StringNumber #'self-alignment-X = #RIGHT
+\once \override StringNumber.self-alignment-X = #RIGHT
 < a\2 >
 @end lilypond
 
@@ -3035,7 +3032,7 @@ d.h. vier halbe Notenlinienabstände weiter nach unten:
 <<
   { c4 c c c }
   \\
-  \override MultiMeasureRest #'staff-position = #-8
+  \override MultiMeasureRest.staff-position = #-8
   { R1 }
 >>
 @end lilypond
@@ -3064,7 +3061,7 @@ links und 1,8 Notenlinienabstände nach unten verschoben:
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f4-5
-\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
 f4-5
 @end lilypond
 
@@ -3111,7 +3108,7 @@ verschwindet auch die etwas unschöne Form:
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
-\once \override PhrasingSlur #'positions = #'(-4 . -3)
+\once \override PhrasingSlur.positions = #'(-4 . -3)
 \acciaccatura e8\( d8 c~ c d c d\)
 @end lilypond
 
@@ -3150,7 +3147,7 @@ hochgeschoben werden, etwa auf 1:
     { c'1 ~ c'2. e'8 f' }
     \\
     {
-      \override Beam #'positions = #'(-1 . -1)
+      \override Beam.positions = #'(-1 . -1)
       e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
     }
   >>
@@ -3218,13 +3215,13 @@ Hier das Endergebnis:
     \\
     {
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
     \\
     \\
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -3257,7 +3254,7 @@ zu kompliziert zu machen.
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3270,7 +3267,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column
         % so the merge will work
         \shiftOnn
@@ -3282,8 +3279,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3470,7 +3467,7 @@ also, direkt vor die erste übergebundene Note gestellt, verschiebt
 den Bindebogen (@code{tie}) 3,5 halbe Notenlinienabstände
 über die Mittellinie:
 
-@code{\once \override Tie #'staff-position = #3.5}
+@code{\once \override Tie.staff-position = #3.5}
 
 Damit ist auch der zweite Takt vollständig:
 
@@ -3478,7 +3475,7 @@ Damit ist auch der zweite Takt vollständig:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3562,7 +3559,7 @@ um das Verhalten wieder auszuschalten. Das sieht so aus:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3636,7 +3633,7 @@ aus:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3706,7 +3703,7 @@ wir durchsichtig und das C verschieben wir mit der
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3720,7 +3717,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column
         % so the merge will work
         \shiftOnn
@@ -3732,7 +3729,7 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
+        \tweak Stem.transparent ##t
         d2
       }
       \new Voice {
@@ -3821,8 +3818,8 @@ den Stimmen stattfindet:
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
     b8~ b\noBeam
   }
 \\
@@ -3838,9 +3835,9 @@ gesetzt wird:
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
-    \tweak Stem #'length #8
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
+    \tweak Stem.length #8
     b8~ b\noBeam
   }
 \\
@@ -3883,7 +3880,7 @@ einem entfernten Objekt gezeigt:
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'transparent = ##t
+    \once \override Score.MetronomeMark.transparent = ##t
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata
@@ -3902,7 +3899,7 @@ einem entfernten Objekt gezeigt:
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'stencil = ##f
+    \once \override Score.MetronomeMark.stencil = ##f
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata
@@ -3953,11 +3950,11 @@ Alternative versuchen wir, einen Befehl mit
 @code{\override} und @code{\revert} zu konstruieren.
 
 @example
-@code{\override Lyrics . LyricText #'font-shape = #'italic}
-@code{\override Lyrics . LyricText #'font-series = #'bold}
+@code{\override Lyrics.LyricText.font-shape = #'italic}
+@code{\override Lyrics.LyricText.font-series = #'bold}
 
-@code{\revert Lyrics . LyricText #'font-shape}
-@code{\revert Lyrics . LyricText #'font-series}
+@code{\revert Lyrics.LyricText.font-shape}
+@code{\revert Lyrics.LyricText.font-series}
 @end example
 
 Das wäre natürlich noch viel mühsamer, wenn viele Wörter eine
@@ -3977,12 +3974,12 @@ um noch weniger schreiben zu müssen:
 
 @lilypond[quote,verbatim]
 emphasize = {
-  \override Lyrics.LyricText #'font-shape = #'italic
-  \override Lyrics.LyricText #'font-series = #'bold
+  \override Lyrics.LyricText.font-shape = #'italic
+  \override Lyrics.LyricText.font-series = #'bold
 }
 normal = {
-  \revert Lyrics.LyricText #'font-shape
-  \revert Lyrics.LyricText #'font-series
+  \revert Lyrics.LyricText.font-shape
+  \revert Lyrics.LyricText.font-series
 }
 
 global = { \key c \major \time 4/4 \partial 4 }
@@ -4171,17 +4168,17 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4204,17 +4201,17 @@ inst =
 \layout{
   \context {
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context {
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   }
   \context {
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4256,16 +4253,16 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4289,12 +4286,12 @@ inst =
 
 \layout{
   \context { \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context { \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4423,8 +4420,8 @@ Befehl @code{/tieDotted} etwa wird folgendermaßen definiert:
 
 @example
 tieDotted = @{
-  \override Tie #'dash-period = #0.75
-  \override Tie #'dash-fraction = #0.1
+  \override Tie.dash-period = #0.75
+  \override Tie.dash-fraction = #0.1
 @}
 @end example
 
@@ -4529,7 +4526,7 @@ zu ihrer Position innerhalb der Tonleiter gesetzt.
 
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
-  \override NoteHead #'color = #color-notehead
+  \override NoteHead.color = #color-notehead
   a2 b | c2 d | e2 f | g2 a |
 }
 @end lilypond
diff --git a/Documentation/de/notation/GNUmakefile b/Documentation/de/notation/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index b2fb9ddc677c28f76f7a66e391843950ae1128ed..db9d2f83eb5ce167919f47dbb98bd3f6de1579c1 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -315,7 +315,7 @@ folgenden Beispiel gezeigt:
     \context {
       \Staff
       \consists "Custos_engraver"
-      \override Custos #'style = #'mensural
+      \override Custos.style = #'mensural
     }
   }
 }
@@ -415,7 +415,7 @@ werden kann. Siehe das folgende Beispiel:
 \score {
   <<
     \new MensuralVoice = "discantus" \transpose c c' {
-      \override Score.BarNumber #'transparent = ##t {
+      \override Score.BarNumber.transparent = ##t {
         c'1\melisma bes a g\melismaEnd
         f\breve
         \[ f1\melisma a c'\breve d'\melismaEnd \]
@@ -473,7 +473,7 @@ Mensuraler C-Schlüssel im historischen Stil
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-c2"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -484,7 +484,7 @@ Mensuraler F-Schlüssel im historischen Stil
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-f"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -495,7 +495,7 @@ Mensuraler G-Schlüssel im historischen Stil
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-g"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -520,7 +520,7 @@ Beispiel den Schlüssel auf der zweiten Linie)
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-c2"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -534,7 +534,7 @@ Notenlinien benutzt werden (im Beispiel auf der dritten Linie)
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-c2"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -545,7 +545,7 @@ Mensuraler G-Schlüssel im Petrucci-Stil
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-g"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -635,18 +635,18 @@ unterschiedlichen Stile dargestellt.
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter default }
 
-  \override Staff.TimeSignature #'style = #'numbered
+  \override Staff.TimeSignature.style = #'numbered
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter numbered }
 
-  \override Staff.TimeSignature #'style = #'mensural
+  \override Staff.TimeSignature.style = #'mensural
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter mensural }
 
-  \override Staff.TimeSignature #'style = #'neomensural
+  \override Staff.TimeSignature.style = #'neomensural
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter neomensural }
-  \override Staff.TimeSignature #'style = #'single-digit
+  \override Staff.TimeSignature.style = #'single-digit
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter single-digit }
 }
@@ -732,13 +732,13 @@ Das folgende Beispiel zeigt den Petrucci-Stil:
 @lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
 \autoBeamOff
-\override NoteHead #'style = #'petrucci
+\override NoteHead.style = #'petrucci
 a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a'
-\override NoteHead #'style = #'semipetrucci
+\override NoteHead.style = #'semipetrucci
 a'\breve*5/6
-\override NoteHead #'style = #'blackpetrucci
+\override NoteHead.style = #'blackpetrucci
 a'8*4/3 a'
-\override NoteHead #'style = #'petrucci
+\override NoteHead.style = #'petrucci
 a'\longa
 @end lilypond
 
@@ -764,9 +764,9 @@ werden.  Neben dem Standardstil (@code{default}) ist
 nur (@code{mensural}) unterstützt.
 
 @lilypond[quote,fragment,ragged-right,verbatim]
-\override Flag #'style = #'mensural
-\override Stem #'thickness = #1.0
-\override NoteHead #'style = #'mensural
+\override Flag.style = #'mensural
+\override Stem.thickness = #1.0
+\override NoteHead.style = #'mensural
 \autoBeamOff
 c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8
 c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32
@@ -816,11 +816,11 @@ Stil:
 
 @lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
-\override Rest #'style = #'classical
+\override Rest.style = #'classical
 r\longa^"classical" r\breve r1 r2 r4 r8 r16 s \break
-\override Rest #'style = #'mensural
+\override Rest.style = #'mensural
 r\longa^"mensural" r\breve r1 r2 r4 r8 r16 s \break
-\override Rest #'style = #'neomensural
+\override Rest.style = #'neomensural
 r\longa^"neomensural" r\breve r1 r2 r4 r8 r16
 @end lilypond
 
@@ -874,7 +874,7 @@ Der Stil für Versetzungszeichen und Vorzeichen wird durch die
 also etwa folgendermaßen:
 
 @example
-\override Staff.Accidental #'glyph-name-alist =
+\override Staff.Accidental.glyph-name-alist =
   #alteration-mensural-glyph-name-alist
 @end example
 
@@ -992,9 +992,9 @@ Eine Datei kann zum Beispiel so aussehen:
 
 @c @example
 @c \set Score.timing = ##f
-@c \set Score.defaultBarType = "empty"
-@c \override NoteHead #'style = #'neomensural
-@c \override Staff.TimeSignature #'style = #'neomensural
+@c \set Score.defaultBarType = "-"
+@c \override NoteHead.style = #'neomensural
+@c \override Staff.TimeSignature.style = #'neomensural
 @c \clef "petrucci-g"
 @c \[ c'\maxima g \]
 @c \[ d\longa c\breve f e d \]
@@ -1005,14 +1005,14 @@ Eine Datei kann zum Beispiel so aussehen:
 \score {
   \transpose c c' {
     \set Score.timing = ##f
-    \set Score.defaultBarType = "empty"
-    \override NoteHead #'style = #'petrucci
-    \override Staff.TimeSignature #'style = #'mensural
+    \set Score.defaultBarType = "-"
+    \override NoteHead.style = #'petrucci
+    \override Staff.TimeSignature.style = #'mensural
     \clef "petrucci-g"
     \[ c'\maxima g \]
     \[ d\longa
-       \override NoteHead #'ligature-flexa = ##t
-       \once \override NoteHead #'flexa-width = #3.2
+       \override NoteHead.ligature-flexa = ##t
+       \once \override NoteHead.flexa-width = #3.2
        c\breve f e d \]
     \[ c'\maxima d'\longa \]
     \[ e'1 a g\breve \]
@@ -1034,9 +1034,9 @@ wie folgt ausgegeben:
 @lilypond[quote,ragged-right]
 \transpose c c' {
   \set Score.timing = ##f
-  \set Score.defaultBarType = "empty"
-  \override NoteHead #'style = #'neomensural
-  \override Staff.TimeSignature #'style = #'neomensural
+  \set Score.defaultBarType = "-"
+  \override NoteHead.style = #'neomensural
+  \override Staff.TimeSignature.style = #'neomensural
   \clef "petrucci-g"
   \[ c'\maxima g \]
   \[ d\longa c\breve f e d \]
@@ -1165,12 +1165,12 @@ Do-Schlüssel der Editio Vaticana
 @code{vaticana-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'vaticana.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'vaticana.punctum
   \clef "vaticana-do2"
   c
 @end lilypond
@@ -1181,12 +1181,12 @@ Fa-Schlüssel der Editio Vaticana
 @code{vaticana-fa1}, @code{vaticana-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'vaticana.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'vaticana.punctum
   \clef "vaticana-fa2"
   c
 @end lilypond
@@ -1198,12 +1198,12 @@ Do-Schlüssel der Editio Medicaea
 @code{medicaea-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'medicaea.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'medicaea.punctum
   \clef "medicaea-do2"
   c
 @end lilypond
@@ -1214,12 +1214,12 @@ Fa-Schlüssel der Editio Medicaea
 @code{medicaea-fa1}, @code{medicaea-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'medicaea.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'medicaea.punctum
   \clef "medicaea-fa2"
   c
 @end lilypond
@@ -1231,12 +1231,12 @@ Hufnagel Do-Schlüssel für den historischen Stil
 @code{hufnagel-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-do2"
   c
 @end lilypond
@@ -1247,12 +1247,12 @@ Hufnagel Fa-Schlüssel für den historischen Stil
 @code{hufnagel-fa1}, @code{hufnagel-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-fa2"
   c
 @end lilypond
@@ -1263,11 +1263,11 @@ Kombinierter Do/Fa-Hufnagelschlüssel für den historischen Stil
 @code{hufnagel-do-fa}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-do-fa"
   c
 @end lilypond
@@ -1326,7 +1326,7 @@ Der Stil für Versetzungs- und Vorzeichen wird von der
 kontrolliert, beispielsweise:
 
 @example
-\override Staff.Accidental #'glyph-name-alist =
+\override Staff.Accidental.glyph-name-alist =
   #alteration-mensural-glyph-name-alist
 @end example
 
@@ -1380,7 +1380,7 @@ sich in der Datei @file{gregorian.ly} auch eine Definition für
 \score {
   <<
     \context VaticanaVoice {
-      \override TextScript  #'padding = #3
+      \override TextScript.padding = #3
       g a g
       s^\markup { "divisio minima" }
       \divisioMinima
@@ -1460,9 +1460,9 @@ Vaticana-Stils zur Verfügung gestellt.
 \include "gregorian.ly"
 \score {
   \new VaticanaVoice {
-    \override TextScript #'font-family = #'typewriter
-    \override TextScript #'font-shape = #'upright
-    \override Script #'padding = #-0.1
+    \override TextScript.font-family = #'typewriter
+    \override TextScript.font-shape = #'upright
+    \override Script.padding = #-0.1
     a\ictus_"ictus " \bar "" \break
     a\circulus_"circulus " \bar "" \break
     a\semicirculus_"semicirculus " \bar "" \break
@@ -2581,7 +2581,7 @@ Er bezeichnet die Position von @code{c}:
 
 @lilypond[quote,relative=1,notime,verbatim]
   \clef "kievan-do"
-  \override NoteHead #'style = #'kievan
+  \override NoteHead.style = #'kievan
   c
 @end lilypond
 
@@ -2613,7 +2613,7 @@ Notenköpfe:
 @lilypond[quote,fragment,ragged-right,verbatim]
 \autoBeamOff
 \cadenzaOn
-\override NoteHead #'style = #'kievan
+\override NoteHead.style = #'kievan
 b'1 b'2 b'4 b'8 b'\breve b'\longa
 @end lilypond
 
@@ -2648,8 +2648,8 @@ vor allem der Vollständigkeit halber eingesetzt.
 
 @lilypond[quote,relative=1,notime,verbatim]
 \clef "kievan-do"
-\override NoteHead #'style = #'kievan
-\override Accidental #'glyph-name-alist =
+\override NoteHead.style = #'kievan
+\override Accidental.glyph-name-alist =
  #alteration-kievan-glyph-name-alist
 bes' dis,
 @end lilypond
@@ -2674,7 +2674,7 @@ Schlussstrich bezeichnen kann.  Es wird gesetzt mit @code{\bar "kievan"}.
 
 @lilypond[quote,relative=1,notime,verbatim]
   \clef "kievan-do"
-  \override NoteHead #'style = #'kievan
+  \override NoteHead.style = #'kievan
   c \bar "kievan"
 @end lilypond
 
@@ -2778,14 +2778,14 @@ entfernt:
 In einigen Transkriptionsstilen werden jedoch teilweise
 Hälse eingesetzt, um etwa den Übergang von einem Einton-Rezitativ
 zu einer melodischen Geste anzuzeigen.  In diesem Fall können
-Hälse entweder mit @code{\override Stem #'transparent = ##t}
+Hälse entweder mit @code{\override Stem.transparent = ##t}
 unsichtbar gemacht werden oder mit
-@code{\override Stem #'length = #0} auf die Länge von 0 reduziert
+@code{\override Stem.length = #0} auf die Länge von 0 reduziert
 werden.  Die Hälse müssen dann wieder an den entsprechenden
-Stellen mit @code{\once \override Stem #'transparent = ##f}
+Stellen mit @code{\once \override Stem.transparent = ##f}
 sichtbar gemacht werden (siehe auch Beispiel unten).  Wenn Hälse
 eingesetzt werden, die Fähnchen haben, muss zusätzlich auch noch
-@code{\override Flag #'transparent = ##t} eingestellt werden.
+@code{\override Flag.transparent = ##t} eingestellt werden.
 
 @b{Takt.} Für Gesang ohne Metrum gibt es einige Alternativen.
 
@@ -2802,7 +2802,7 @@ und @code{\CadenzaOff} zu benutzen.
 Um Taktstriche zu entfernen, kann man radikal den @code{Bar_engraver}
 aus dem @code{Staff}-Kontext entfernen.  Wenn man ab und zu
 einen Taktstrich braucht, sollten die Striche nur mit
-@code{\override BarLine #'transparent = ##t} unsichtbar
+@code{\override BarLine.transparent = ##t} unsichtbar
 gemacht werden.
 
 Oft werden Rezitativtöne mit einer Brevis angezeigt.  Der
@@ -2818,9 +2818,9 @@ chant = \relative c' {
 }
 
 verba = \lyricmode {
-  \once \override LyricText #'self-alignment-X = #-1
+  \once \override LyricText.self-alignment-X = #-1
   "Noctem quietam et" fi -- nem per -- fec -- tum
-  \once \override LyricText #'self-alignment-X = #-1
+  \once \override LyricText.self-alignment-X = #-1
   "concedat nobis Dominus" om -- ni -- po -- tens.
 }
 \score {
@@ -2833,8 +2833,8 @@ verba = \lyricmode {
       \Staff
       \remove "Time_signature_engraver"
       \remove "Bar_engraver"
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
   }
 }
@@ -2850,13 +2850,13 @@ gemacht):
 chant = \relative c' {
   \clef "G_8"
   \set Score.timing = ##f
-  c\breve \override NoteHead #'transparent = ##t  c c c c c
-  \revert NoteHead #'transparent
-  \override Stem #'transparent = ##f \stemUp c4 b4 a
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t c2 c4  \divisioMaior
-  c\breve \override NoteHead #'transparent = ##t c c c c c c c
-  \revert NoteHead #'transparent c4 c f, f \finalis
+  c\breve \override NoteHead.transparent = ##t  c c c c c
+  \revert NoteHead.transparent
+  \override Stem.transparent = ##f \stemUp c4 b4 a
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t c2 c4  \divisioMaior
+  c\breve \override NoteHead.transparent = ##t c c c c c c c
+  \revert NoteHead.transparent c4 c f, f \finalis
 }
 
 verba = \lyricmode {
@@ -2873,9 +2873,9 @@ verba = \lyricmode {
     \context {
       \Staff
       \remove "Time_signature_engraver"
-      \override BarLine #'transparent = ##t
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override BarLine.transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
   }
 }
@@ -2907,7 +2907,7 @@ werden.
 @lilypond[verbatim,quote]
 spiritus = \relative c' {
   \time 1/4
-  \override Lyrics.LyricText #'X-extent  = #'(0 . 3)
+  \override Lyrics.LyricText.X-extent  = #'(0 . 3)
   d4 \times 2/3 { f8 a g } g a a4 g f8 e
   d4 f8 g g8 d f g a g f4 g8 a a4  s
   \times 2/3 { g8 f d } e f g a g4
@@ -2927,12 +2927,12 @@ spirLyr = \lyricmode {
     \context {
       \Staff
       \remove "Time_signature_engraver"
-      \override BarLine #'X-extent = #'(-1 . 1)
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
-      \override Beam #'transparent = ##t
-      \override BarLine #'transparent = ##t
-      \override TupletNumber #'transparent = ##t
+      \override BarLine.X-extent = #'(-1 . 1)
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
+      \override Beam.transparent = ##t
+      \override BarLine.transparent = ##t
+      \override TupletNumber.transparent = ##t
     }
   }
 }
index 90251a383521cdb52c1504af310275a0b4cb2cb6..b63b85561e12ab24b1c3eb7c49e25471d3186cd7 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -778,7 +778,7 @@ Ein @code{\override}-Befehl, aber ohne die Kontextbezeichnung:
   \layout {
     \context {
       \Staff
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
   }
 }
@@ -804,7 +804,7 @@ Eine Kontexteigenschaft kann direkt gesetzt werden:
 
 @item
 Ein vordefinierter Befehl wie etwa @code{\dynamicUp} oder ein
-musikalischer Ausdruck wie @code{\accidentalStyle "dodecaphonic"}:
+musikalischer Ausdruck wie @code{\accidentalStyle dodecaphonic}:
 
 @lilypond[quote,verbatim]
 \score {
@@ -819,7 +819,7 @@ musikalischer Ausdruck wie @code{\accidentalStyle "dodecaphonic"}:
     }
     \context {
       \Staff
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
     }
   }
 }
@@ -871,9 +871,9 @@ ist die gleiche wie für den Befehl direkt zwischen den Noten geschrieben.
     }
   }
   \layout {
-    \accidentalStyle "dodecaphonic"
+    \accidentalStyle dodecaphonic
     \set fontSize = #-4
-    \override Voice.Stem #'thickness = #4.0
+    \override Voice.Stem.thickness = #4.0
   }
 }
 @end lilypond
@@ -913,7 +913,7 @@ Ein @code{\override}-Befehl, dessen Kontextbezeichnung ausgelassen wird:
   \new Staff {
     \new Voice
     \with {
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
     {
       \relative c'' {
@@ -965,7 +965,7 @@ Ein vordefinierter Befehl wie etwa @code{\dynamicUp}
       }
     }
     \new Staff
-    \with { \accidentalStyle "dodecaphonic" }
+    \with { \accidentalStyle dodecaphonic }
     {
       \new Voice
       \with { \dynamicUp }
@@ -1060,9 +1060,9 @@ in Jazzmusik anzuzeigen.
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 }
 \context { \Staff
@@ -1130,9 +1130,9 @@ das die Mittellinie.
 Die Noten sehen wie ein Querstrich aus und haben keine Hälse:
 
 @example
-\override NoteHead #'style = #'slash
-\override Stem #'transparent = ##t
-\override Flag #'transparent = ##t
+\override NoteHead.style = #'slash
+\override Stem.transparent = ##t
+\override Flag.transparent = ##t
 @end example
 
 Alle diese Engraver müssen zusammenarbeiten, und das wird erreicht mit
@@ -1153,9 +1153,9 @@ Alles zusammen haben wir folgende Einstellungen:
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 @}
 @end example
@@ -1582,14 +1582,14 @@ weiter weg von der Note gesetzt werden.  Dieser Befehl beispielsweise
 fügt drei Notenlinienzwischenräume zwischen die Zahl und den Notenkopf:
 
 @example
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 @end example
 
 Wenn dieser Befehl in den Quelltext eingefügt wird, bevor der
 Fingersatz notiert ist, erhält man folgendes:
 
 @lilypond[quote,relative=2,verbatim]
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 c-2
 \stemUp
 f
@@ -1696,7 +1696,7 @@ Befehls betrachtet.
 Der Befehl
 
 @verbatim
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 @end verbatim
 
 @noindent
@@ -1708,7 +1708,7 @@ ihr normales Aussehen.  Hier ein Beispiel mit diesem Befehl:
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 c4
 c4
 c4
@@ -1726,7 +1726,7 @@ Kontext ausgelassen werden, wobei dann immer implizit der
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\once \override Stem #'thickness = #4.0
+\once \override Stem.thickness = #4.0
 c4
 c4
 @end lilypond
@@ -1738,9 +1738,9 @@ schon geschrieben werden, bevor das Objekt begonnen wird.  In dem
 folgenden Beispiel
 
 @lilypond[quote,verbatim,relative=2]
-\override Slur #'thickness = #3.0
+\override Slur.thickness = #3.0
 c8[( c
-\override Beam #'beam-thickness = #0.6
+\override Beam.beam-thickness = #0.6
 c8 c])
 @end lilypond
 
@@ -1756,8 +1756,8 @@ nur Einstellungen betroffen, die sich im gleichen Kontext befinden.  Der
 weil er für den falschen Kontext gefordert wird.
 
 @example
-\override Voice.Stem #'thickness = #4.0
-\revert Staff.Stem #'thickness
+\override Voice.Stem.thickness = #4.0
+\revert Staff.Stem.thickness
 @end example
 
 Einige veränderbare Optionen werden als Untereigenschaften (engl.
@@ -1774,7 +1774,7 @@ Befehl folgende Form an:
 wie beispielsweise
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 @end ignore
 
@@ -1990,7 +1990,7 @@ man die @code{thickness}-Eigenschaft des @code{Stem}-Objekts verändert:
 
 @lilypond[quote, verbatim, relative=2]
 c4 c
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
 @end lilypond
 
@@ -1998,11 +1998,11 @@ Wenn kein Kontext angegeben wird, wird der tiefste aktuelle Kontext
 benutzt:
 
 @lilypond[quote, verbatim, relative=2]
-{ \override Staff.Stem #'thickness = #3.0
+{ \override Staff.Stem.thickness = #3.0
   <<
     {
       e4 e
-      \override Stem #'thickness = #0.5
+      \override Stem.thickness = #0.5
       e4 e
     } \\ {
       c4 c c c
@@ -2024,9 +2024,9 @@ rückgängig gemacht werden:
 
 @lilypond[quote, verbatim, relative=2]
 c4
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
-\revert Voice.Stem #'thickness
+\revert Voice.Stem.thickness
 c4
 @end lilypond
 
@@ -2038,11 +2038,11 @@ Grobs im entsprechenden Kontext aber der Stelle aus, an der sie gesetzt werden:
   <<
     {
       e4
-      \override Staff.Stem #'thickness = #3.0
+      \override Staff.Stem.thickness = #3.0
       e4 e e
     } \\ {
       c4 c c
-      \revert Staff.Stem #'thickness
+      \revert Staff.Stem.thickness
       c4
     }
   >>
@@ -2064,11 +2064,11 @@ um nur den aktuellen Zeitwert zu verändern:
 {
   <<
     {
-      \override Stem #'thickness = #3.0
+      \override Stem.thickness = #3.0
       e4 e e e
     } \\ {
       c4
-      \once \override Stem #'thickness = #3.0
+      \once \override Stem.thickness = #3.0
       c4 c c
     }
   >>
@@ -2134,13 +2134,13 @@ eingesetzt werden:
 
 @lilypond[relative=2,verbatim]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
--\tweak #'padding #8
+-\tweak padding #8
 -^
 @end lilypond
 
@@ -2174,14 +2174,14 @@ An einem Beispiel demonstriert:  Das funktioniert:
 
 
 @lilypond[relative=2,verbatim,quote]
-<\tweak #'color #red c>4
+<\tweak color #red c>4
 @end lilypond
 
 @noindent
 und das nicht:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
+\tweak color #red c4
 @end lilypond
 
 @end ignore
@@ -2211,10 +2211,10 @@ anderen Notenkopfes innerhalb eines Akkordes verändert:
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
 @end lilypond
@@ -2222,7 +2222,7 @@ anderen Notenkopfes innerhalb eines Akkordes verändert:
 @code{\tweak} kann auch benutzt werden, um Bögen zu verändern:
 
 @lilypond[verbatim,quote,relative=1]
-c-\tweak #'thickness #5 ( d e f)
+c-\tweak thickness #5 ( d e f)
 @end lilypond
 
 Damit der @code{\tweak}-Befehl funktioniert, muss er direkt vor dem
@@ -2232,8 +2232,8 @@ ist, in dem alle Layoutelemente aus Ereignissen innerhalb von
 @code{EventChord} erstellt werden:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red <c e>4
-<\tweak #'color #red c e>4
+\tweak color #red <c e>4
+<\tweak color #red c e>4
 @end lilypond
 
 Der einfache @code{\tweak}-Befehl kann @emph{nicht} eingesetzt werden, um
@@ -2247,9 +2247,9 @@ Derartige indirekt erstellt Layoutobjekte können mit @code{\tweak} verändert
 werden, indem man die ausführliche Form des Befehls einsetzt:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak Stem #'color #red
-\tweak Beam #'color #green c8 e
-<c e \tweak Accidental #'font-size #-3 ges>4
+\tweak Stem.color #red
+\tweak Beam.color #green c8 e
+<c e \tweak Accidental.font-size #-3 ges>4
 @end lilypond
 
 @code{\tweak} kann auch nicht verwendet werden,
@@ -2262,10 +2262,10 @@ gesetzt werden und alle werden interpretiert:
 
 @lilypond[verbatim,quote,relative=1]
 c
--\tweak #'style #'dashed-line
--\tweak #'dash-fraction #0.2
--\tweak #'thickness #3
--\tweak #'color #red
+-\tweak style #'dashed-line
+-\tweak dash-fraction #0.2
+-\tweak thickness #3
+-\tweak color #red
  \glissando
 f'
 @end lilypond
@@ -2408,7 +2408,7 @@ Schlüssel zu verändern, wird ein geschachtelter Aufruf benutzt:
 % reduced space between staves
 \new PianoStaff \with {
   % this is the nested declaration
-  \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+  \override StaffGrouper.staff-staff-spacing.basic-distance = #7
 } <<
   \new Staff { \clef treble c''1 }
   \new Staff { \clef bass   c1   }
@@ -2427,7 +2427,7 @@ kann mit einem Aufruf als Aliste vollständig verändert werden:
 
 @lilypond[quote,verbatim]
 \new PianoStaff \with {
-  \override StaffGrouper #'staff-staff-spacing =
+  \override StaffGrouper.staff-staff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 0)
        (padding . 0)
@@ -2447,10 +2447,10 @@ den Wert von @code{space} hat, wenn sie nicht definiert ist).  Somit sind
 folgende Aufrufe äquivalent:
 
 @example
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7))
 
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7)
      (minimum-distance . 0)
      (padding . 0)
@@ -2796,7 +2796,7 @@ die Anzahl der Elemente in der Liste der Werte von
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7)
+  \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2808,7 +2808,7 @@ beeinflusst.
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'width = #23
+  \override StaffSymbol.width = #23
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2856,7 +2856,7 @@ unten dargestellt.
 a~a
 a
 % increase the length of the tie
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ~a
 @end lilypond
 
@@ -2865,7 +2865,7 @@ a1
 \compressFullBarRests
 R1*23
 % increase the length of the rest bar
-\once \override MultiMeasureRest #'minimum-length = #20
+\once \override MultiMeasureRest.minimum-length = #20
 R1*23
 a1
 @end lilypond
@@ -2873,7 +2873,7 @@ a1
 @lilypond[verbatim,quote,relative=2]
 a \< a a a \!
 % increase the length of the hairpin
-\override Hairpin #'minimum-length = #20
+\override Hairpin.minimum-length = #20
 a \< a a a \!
 @end lilypond
 
@@ -2883,12 +2883,12 @@ von Legato- und Phrasierungsbögen zu verändern:
 @lilypond[verbatim,quote,relative=2]
 a( a)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ( a)
 
 a\( a\)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 \( a\)
 @end lilypond
 
@@ -2905,12 +2905,12 @@ die @code{springs-and-rods}-Eigenschaft gesetzt ist:
 e \glissando c'
 
 % not effective alone
-\once \override Glissando #'minimum-length = #20
+\once \override Glissando.minimum-length = #20
 e, \glissando c'
 
 % effective only when both overrides are present
-\once \override Glissando #'minimum-length = #20
-\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
 e, \glissando c'
 @end lilypond
 
@@ -2918,12 +2918,12 @@ Das gilt auch für das @code{Beam}-(Balken-)Objekt:
 
 @lilypond[verbatim,quote,relative=1]
 % not effective alone
-\once \override Beam #'minimum-length = #20
+\once \override Beam.minimum-length = #20
 e8 e e e
 
 % effective only when both overrides are present
-\once \override Beam #'minimum-length = #20
-\once \override Beam #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
 e8 e e e
 @end lilypond
 
@@ -2940,7 +2940,7 @@ hinüber und enden erst an der entsprechenden Note:
 
 @lilypond[verbatim,quote,relative=2]
 a \< a a a a \! a a a \break
-\override Hairpin #'to-barline = ##f
+\override Hairpin.to-barline = ##f
 a \< a a a a \! a a a
 @end lilypond
 
@@ -2976,8 +2976,8 @@ ist ziemlich einfach:
 
 @lilypond[relative=2,quote,verbatim]
 e2 \glissando b
-\once \override Glissando #'(bound-details left Y) = #3
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.left.Y = #3
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando b
 @end lilypond
 
@@ -2997,8 +2997,8 @@ in den Unterlisten @code{left-broken} bzw. @code{right-broken}
 von @code{bound-details} abgelegt.  Zum Beispiel:
 
 @lilypond[relative=2,ragged-right,verbatim,quote]
-\override Glissando #'breakable = ##t
-\override Glissando #'(bound-details right-broken Y) = #-3
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
 c1 \glissando \break
 f1
 @end lilypond
@@ -3042,7 +3042,7 @@ um @i{cresc.}, @i{tr} oder andere Texte an horizontale
 Strecker zu setzen.
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
 c2\startTextSpan b c a\stopTextSpan
 @end lilypond
@@ -3058,15 +3058,11 @@ gesetzt werden, wird das Symbol am Rand vertikal entsprechend
 des Endpunktes der Linie verschoben:
 
 @lilypond[relative=1,quote,verbatim]
-\override TextSpanner
-  #'(bound-details left stencil-align-dir-y) = #-2
-\override TextSpanner
-  #'(bound-details right stencil-align-dir-y) = #UP
-
-\override TextSpanner
-  #'(bound-details left text) = #"ggg"
-\override TextSpanner
-  #'(bound-details right text) = #"hhh"
+\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
+\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP
+
+\override TextSpanner.bound-details.left.text = #"ggg"
+\override TextSpanner.bound-details.right.text = #"hhh"
 c4^\startTextSpan c c c \stopTextSpan
 @end lilypond
 
@@ -3169,9 +3165,9 @@ wieder hergestellt werden.
 
 @lilypond[quote,verbatim,relative=1]
 a1 a
-\override Score.BarLine #'stencil = ##f
+\override Score.BarLine.stencil = ##f
 a a
-\revert Score.BarLine #'stencil
+\revert Score.BarLine.stencil
 a a a
 @end lilypond
 
@@ -3192,7 +3188,7 @@ den entsprechenden Platz ein, ist aber unsichtbar.
 
 @lilypond[quote,verbatim,relative=2]
 a4 a
-\once \override NoteHead #'transparent = ##t
+\once \override NoteHead.transparent = ##t
 a a
 @end lilypond
 
@@ -3222,7 +3218,7 @@ dass man die Umrisse des weißen Objektes erahnen kann, wie
 in diesem Beispiel:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
+\override Staff.Clef.color = #white
 a1
 @end lilypond
 
@@ -3246,8 +3242,8 @@ Im oberen Beispiel wird der weiße Schlüssel, der einen Wert von
 werden, sodass es früher gesetzt wird:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
-\override Staff.Clef #'layer = #-1
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
 a1
 @end lilypond
 
@@ -3345,7 +3341,7 @@ Sichtbarkeit von Taktlinien zu bestimmten:
 f4 g a b
 f4 g a b
 % Remove bar line at the end of the current line
-\once \override Score.BarLine #'break-visibility = #'#(#f #t #t)
+\once \override Score.BarLine.break-visibility = #'#(#f #t #t)
 \break
 f4 g a b
 f4 g a b
@@ -3407,7 +3403,7 @@ nach dem expliziten Wechsel zu B-Dur immer noch sichtbar, obwohl
 \key g \major
 f4 g a b
 % Try to remove all key signatures
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b
 \break
@@ -3434,7 +3430,7 @@ Schlüssel zu Beginn einer Zeile -- um diese zu beeinflussen, muss
 \key g \major
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3452,7 +3448,7 @@ expliziten Tonartänderung auftreten, muss die @code{Staff}-Eigenschaft
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.printKeyCancellation = ##f
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3527,13 +3523,13 @@ und wie sie verändert werden können:
 
 @lilypond[relative=2,ragged-right,verbatim,quote]
 d2 \glissando d'2
-\once \override Glissando #'style = #'dashed-line
+\once \override Glissando.style = #'dashed-line
 d,2 \glissando d'2
-\override Glissando #'style = #'dotted-line
+\override Glissando.style = #'dotted-line
 d,2 \glissando d'2
-\override Glissando #'style = #'zigzag
+\override Glissando.style = #'zigzag
 d,2 \glissando d'2
-\override Glissando #'style = #'trill
+\override Glissando.style = #'trill
 d,2 \glissando d'2
 @end lilypond
 
@@ -3544,7 +3540,7 @@ es ist möglich, sie manuell vorzugeben:
 @c TODO Complete
 @lilypond[relative=2,ragged-right,verbatim,quote]
 e2 \glissando f
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando f
 @end lilypond
 
@@ -3604,7 +3600,7 @@ eine sinnvolle Anwendung:
 
 @lilypond[quote,verbatim,relative=1]
 g4\< e' d' f\!
-\override Hairpin #'rotation = #'(20 -1 0)
+\override Hairpin.rotation = #'(20 -1 0)
 g,,4\< e' d' f\!
 @end lilypond
 
@@ -3625,7 +3621,7 @@ werden, wodurch andernfalls einige der Texte zu hoch geschoben werden
 würden.
 
 @lilypond[quote,verbatim,relative=1]
-\override TextScript #'outside-staff-priority = ##f
+\override TextScript.outside-staff-priority = ##f
 g4^\markup { \rotate #30 "a G" }
 b^\markup { \rotate #30 "a B" }
 des^\markup { \rotate #30 "a D-Flat" }
@@ -3745,12 +3741,12 @@ verändert werden.
 @lilypond[verbatim,quote,relative=2]
 a-3
 a
--\tweak #'X-offset #0
--\tweak #'Y-offset #0
+-\tweak X-offset #0
+-\tweak Y-offset #0
 -3
 a
--\tweak #'X-offset #-1
--\tweak #'Y-offset #1
+-\tweak X-offset #-1
+-\tweak Y-offset #1
 -3
 @end lilypond
 
@@ -3832,13 +3828,13 @@ an einer einzigen Note auszurichten:
 
 @lilypond[quote,verbatim,relative=1]
 a'
--\tweak #'self-alignment-X #-1
+-\tweak self-alignment-X #-1
 ^"left-aligned"
--\tweak #'self-alignment-X #0
+-\tweak self-alignment-X #0
 ^"center-aligned"
--\tweak #'self-alignment-X #RIGHT
+-\tweak self-alignment-X #RIGHT
 ^"right-aligned"
--\tweak #'self-alignment-X #-2.5
+-\tweak self-alignment-X #-2.5
 ^"aligned further to the right"
 @end lilypond
 
@@ -3875,9 +3871,9 @@ ausrichtet, dass sie nah am Notenkopf bleibt.
 
 @lilypond[quote,verbatim,relative=2]
 a
--\tweak #'self-alignment-X #0.5  % move horizontally left
--\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
--\tweak #'self-alignment-Y #-1  % move vertically up
+-\tweak self-alignment-X #0.5  % move horizontally left
+-\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self
+-\tweak self-alignment-Y #-1  % move vertically up
 -3  % third finger
 @end lilypond
 
@@ -3903,20 +3899,20 @@ Standardmäßig werden Übungszeichen und Taktzahlen horizontal
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the Clef
-\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+\override Score.RehearsalMark.break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The RehearsalMark will be centered above the TimeSignature
-\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
 \key a \major
 \clef treble
 \time 3/4
 \mark "↓"
 e2.
 % The rehearsal mark will be centered above the Breath Mark
-\override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign)
+\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
 \key a \major
 \clef treble
 \time 4/4
@@ -3937,14 +3933,14 @@ ausgerichtet, an der sich der Taktstrich befinden würde.
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The RehearsalMark will be centered above the Clef
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef bass
 \mark "↓"
@@ -3952,7 +3948,7 @@ gis,,1
 % The rehearsal mark will be centered above the Bar Line
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.explicitClefVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
@@ -3967,19 +3963,19 @@ vornehmen.
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the KeySignature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
 \key a \major
 \clef treble
 \time 4/4
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the KeySignature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
 \mark "↓"
 \key a \major
 e1
 % The RehearsalMark will be aligned with the right edge of the KeySignature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
 e1
@@ -3991,14 +3987,14 @@ verschoben werden.  Die Einheiten sind in Notenlinienzwischenräumen:
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be aligned with the left edge of the KeySignature
 % and then shifted right by 3.5 staff-spaces
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
-\once \override Score.KeySignature #'break-align-anchor = #3.5
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature.break-align-anchor = #3.5
 \key a \major
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the KeySignature
 % and then shifted left by 2 staff-spaces
-\once \override Score.KeySignature #'break-align-anchor = #-2
+\once \override Score.KeySignature.break-align-anchor = #-2
 \key a \major
 \mark "↓"
 e1
@@ -4055,8 +4051,8 @@ wird.
 
 @lilypond[verbatim,quote]
 XinO = {
-  \once \override NoteHead  #'stencil = #ly:text-interface::print
-  \once \override NoteHead #'text = \markup {
+  \once \override NoteHead.stencil = #ly:text-interface::print
+  \once \override NoteHead.text = \markup {
     \combine
       \halign #-0.7 \draw-circle #0.85 #0.2 ##f
       \musicglyph #"noteheads.s2cross"
@@ -4157,8 +4153,7 @@ wird.
 @lilypond[verbatim,quote,relative=1]
 <<
   {
-  \once \override Tie
-    #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
+  \once \override Tie.control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
   e1~ e1
   }
 \\
@@ -4257,12 +4252,12 @@ Layoutprozess die Platzierung justiert werden soll.
                               '(-0.5 . 0.5)))))
 
 squareLineCircleSpace = {
-  \override NoteHead #'stencil = #square-line-circle-space
+  \override NoteHead.stencil = #square-line-circle-space
 }
 
 smartSquareLineCircleSpace = {
   \squareLineCircleSpace
-  \override NoteHead #'Y-extent =
+  \override NoteHead.Y-extent =
    #(ly:make-unpure-pure-container
       ly:grob::stencil-height
       (lambda (grob start end) (ly:grob::stencil-height grob)))
@@ -4271,9 +4266,9 @@ smartSquareLineCircleSpace = {
 \new Voice \with { \remove "Stem_engraver" }
 \relative c'' {
   \squareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
   \smartSquareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
 }
 @end lilypond
 
@@ -4409,7 +4404,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
@@ -4430,10 +4425,10 @@ custosNote =
      (parser location note)
      (ly:music?)
    #{
-     \tweak NoteHead #'stencil #ly:text-interface::print
-     \tweak NoteHead #'text
+     \tweak NoteHead.stencil #ly:text-interface::print
+     \tweak NoteHead.text
         \markup \musicglyph #"custodes.mensural.u0"
-     \tweak Stem #'stencil ##f
+     \tweak Stem.stencil ##f
      #note
    #})
 
@@ -4449,7 +4444,7 @@ tempoPadded =
      (parser location padding tempotext)
      (number? markup?)
    #{
-     \once \override Score.MetronomeMark #'padding = #padding
+     \once \override Score.MetronomeMark.padding = #padding
      \tempo \markup { \bold #tempotext }
    #})
 
index 13737c907fffd7b3b44e192ab08bd83e1e876aca..e856fef9bb259e98ad0008c875b1bddac6e2c133 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -31,7 +31,7 @@
 @tab
 @lilypond[relative=2,notime]
 \set Staff.autoBeaming = ##f
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c1 c2 c8 c16
 @end lilypond
 
@@ -39,7 +39,7 @@ c1 c2 c8 c16
 @tab Punktierung
 @tab
 @lilypond[relative=2,notime]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c4. c4..
 @end lilypond
 
@@ -71,7 +71,7 @@ s4_" "
 @tab Taktangaben
 @tab
 @lilypond[relative=1]
-\override Staff.Clef #'stencil = #empty-stencil
+\override Staff.Clef.stencil = #empty-stencil
 \time 3/4
 s4_" "
 \time 4/4
@@ -83,7 +83,7 @@ s16_" "
 @tab Pause
 @tab
 @lilypond[relative=2,notime]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 r4 r8
 @end lilypond
 
index dca13cea3210d2a757d95869c09fa0c1c605635a..cdf58fc0c85d3c3c1710d361499ec809f8f8f41d 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -186,7 +186,7 @@ Standard: erzeugt einen Durdreiklang.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1
 }
 @end lilypond
@@ -198,7 +198,7 @@ Mollakkord: Dieser Modifikator erniedrigt die dritte Stufe.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:m c:m7
 }
 @end lilypond
@@ -212,7 +212,7 @@ und (wenn vorhanden) die siebte Stufe.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:dim c:dim7
 }
 @end lilypond
@@ -224,7 +224,7 @@ aug
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:aug
 }
 @end lilypond
@@ -238,7 +238,7 @@ benutzen, um einen Durdreiklang zu notieren.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:maj c:maj7
 }
 @end lilypond
index 1d3080c4a5ca28424019c2e8c00d5bf3067153b6..c256ccf4cc1ab70be7dfea103b338656d56d1b05 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -103,11 +103,11 @@ sie sich nur auf bestimmte Layoutobjekte bezieht.
 @lilypond[verbatim,quote,relative=2]
 \set fontSize = #3
 c4.-> d8---3
-\override NoteHead #'font-size = #-4
+\override NoteHead.font-size = #-4
 c4.-> d8---3
-\override Script #'font-size = #2
+\override Script.font-size = #2
 c4.-> d8---3
-\override Stem #'font-size = #-5
+\override Stem.font-size = #-5
 c4.-> d8---3
 @end lilypond
 
@@ -309,11 +309,11 @@ Einzelnen Objekten können einfach eigene Farben zugewiesen werden.
 Gültige Farben-Bezeichnungen sind aufgelistet in @ref{Liste der Farben}.
 
 @lilypond[verbatim,quote,relative=2]
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 c4 c
-\override NoteHead #'color = #(x11-color 'LimeGreen)
+\override NoteHead.color = #(x11-color 'LimeGreen)
 d
-\override Stem #'color = #blue
+\override Stem.color = #blue
 e
 @end lilypond
 
@@ -329,20 +329,20 @@ Wenn @code{x11-color} die angegebene Farbbezeichnung nicht kennt, wird
 Schwarz eingesetzt.
 
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
 gis8 a
-\override Beam #'color = #(x11-color "medium turquoise")
+\override Beam.color = #(x11-color "medium turquoise")
 gis a
-\override Accidental #'color = #(x11-color 'DarkRed)
+\override Accidental.color = #(x11-color 'DarkRed)
 gis a
-\override NoteHead #'color = #(x11-color "LimeGreen")
+\override NoteHead.color = #(x11-color "LimeGreen")
 gis a
 % this is deliberate nonsense; note that the stems remain black
-\override Stem #'color = #(x11-color 'Boggle)
+\override Stem.color = #(x11-color 'Boggle)
 b2 cis
 @end lilypond
 
@@ -354,16 +354,16 @@ Exakte RGB-Farben können mit Hilfe der Scheme-Funktion @code{rgb-color}
 definiert werden.
 
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
-\override Stem #'color = #(rgb-color 0 0 0)
+\override Stem.color = #(rgb-color 0 0 0)
 gis8 a
-\override Stem #'color = #(rgb-color 1 1 1)
+\override Stem.color = #(rgb-color 1 1 1)
 gis8 a
-\override Stem #'color = #(rgb-color 0 0 0.5)
+\override Stem.color = #(rgb-color 0 0 0.5)
 gis4 a
 @end lilypond
 
index 35b8fde46ac9f42675c04baba802ce9a6c9e663d..7ba6667e4f449ac6798e21766b8f50a16949b539 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -172,8 +172,8 @@ an eine Mehrtaktpause anfügen kann (und nur hieran).  Damit wird ein
 @code{MultiMeasureRestText}-Objekt erstellt.
 
 @lilypond[verbatim,quote,relative=2]
-\override Script #'color = #red
-\override MultiMeasureRestText #'color = #blue
+\override Script.color = #red
+\override MultiMeasureRestText.color = #blue
 a2\fermata r\fermata
 R1\fermataMarkup
 @end lilypond
index b5b0bc6419f41b5048a9f0e92866b6bbd7bf50d4..dba244d010c4b794455fd0b761eecd27caab6dfc 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -249,7 +249,7 @@ benützt, wenn es möglich ist.  Dieses Verhalten kann verändert werden,
 indem @code{restrainOpenStrings} auf @code{#t} gesetzt wird.
 
 @lilypond[quote,ragged-right,verbatim]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 \new StaffGroup <<
    \new Staff \relative c {
      \clef "treble_8"
@@ -396,7 +396,7 @@ Flageolett (engl. @emph{harmonic}) kann zur Tabulaturnotation als klingende Tonh
 werden:
 
 @lilypond[verbatim,quote]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 firstHarmonic = {
   d'4\4\harmonic
   g'4\3\harmonic
@@ -557,7 +557,7 @@ geschrieben ist:
 @lilypond[quote,ragged-right,verbatim]
 <<
   \new Voice \with {
-    \override StringNumber #'stencil = ##f
+    \override StringNumber.stencil = ##f
   } {
     \clef "bass_8"
     \relative c, {
@@ -945,8 +945,7 @@ Fingersatz kann im knappen Modus hinzugefügt werden:
     }
   }
   \context Staff {
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     \clef "treble_8"
     <c e g c' e'>1^\markup {
       \fret-diagram-terse #"x;3-3;2-2;o;1-1;o;"
@@ -1023,8 +1022,7 @@ unterste Bund im Diagramm.
     }
   \context Staff {
     \clef "treble_8"
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     <f, c f a c' f'>1^\markup {
       \fret-diagram-verbose #'(
         (place-fret 6 1)
@@ -1716,7 +1714,7 @@ notieren kann.
 \clef "treble_8"
 b16 d g b e
 \textSpannerDown
-\override TextSpanner #'(bound-details left text) = #"XII "
+\override TextSpanner.bound-details.left.text = #"XII "
 g16\startTextSpan
 b16 e g e b g\stopTextSpan
 e16 b g d
@@ -1754,7 +1752,7 @@ mit einem Text erklärt.
 @lilypond[quote,ragged-right,verbatim]
 \relative c' {
   \clef "treble_8"
-  \override Staff.NoteHead #'style = #'harmonic-mixed
+  \override Staff.NoteHead.style = #'harmonic-mixed
   d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
 }
 @end lilypond
index 94b1c63374b4fe04de8b0a77d8c7d530bbcd5b8d..5b159b1a059ec71b79f54fec030254d15032ff5d 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -545,7 +545,7 @@ werden,
 in Gesangstextabschnitten (@code{lyricmode}) müssen Leerzeichen
 zwischen alle Ausdrücke in @code{\override}- und @code{\set}-Befehlen
 gesetzt werden.  Insbesondere müssen um Punkte und Gleichzeitszeichen
-in Befehlen wie @code{\override Score . LyricTex #'font-size = #5)}
+in Befehlen wie @code{\override Score.LyricTex.font-size = #5)}
 und vor dem gesamten Befehl geschrieben werden.
 
 @end itemize
@@ -1289,10 +1289,10 @@ werden, auf den sich die Fußnote bezieht.
   \header { tagline = ##f }
   \relative c' {
     \footnote #'(0.5 . -2)
-      \markup { Die erste Note } \default
+      \markup { Die erste Note }
     a'4 b8
-    \footnote #'(0.5 . 1) #'Flag
-      \markup { Die dritte Note } \default
+    \footnote #'(0.5 . 1)
+      \markup { Die dritte Note } Flag
     e\noBeam c4 d4
   }
 }
@@ -1329,11 +1329,11 @@ Tagline und Copyright gezeigt wird.
     a'4-\footnote #'(-3 . 0) \markup { \bold Forte } \f
     -\footnote #'(0 . 1.5) \markup { Ein Bogen } (
     b8)-\footnote #'(0 . -2) \markup { Balken } [ e]
-    \footnote #'(1 . -1) #'Stem
-      \markup  { \teeny { Das ist ein Hals } }
+    \single\footnote #'(1 . -1)
+      \markup  { \teeny { Das ist ein Hals } } Stem
     c4
-    \footnote #'(0 . 0.5) #'AccidentalCautionary
-      \markup \italic { Ein warnendes Versetzungszeichen }
+    \single\footnote #'(0 . 0.5)
+      \markup \italic { Ein warnendes Versetzungszeichen } AccidentalCautionary
     \footnote #'(1 . 1) "Die Note selber"
     dis?4-\footnote #'(0.5 . -0.5) \markup \italic { langsamer werden }
          _"rit."
@@ -1428,14 +1428,14 @@ Position der Fußnotentexte zu Tagline und Copyright anzeigen:
       \markup { \teeny 3 } #'(0 . -2)
       \markup { 3. Balken } [
     e]
-    \footnote
-      \markup { 4 } #'(1 . -1) #'Stem
-      \markup  { \bold 4. { Das ist ein Hals } }
+    \single\footnote
+      \markup { 4 } #'(1 . -1)
+      \markup  { \bold 4. { Das ist ein Hals } } Stem
     c4
-    \footnote
+    \single\footnote
       \markup \concat \teeny { "sharp (v)" }
-          #'(0 . 0.5) #'AccidentalCautionary
-      \markup \italic { v. Ein warndendes Versetzungszeichen }
+          #'(0 . 0.5)
+      \markup \italic { v. Ein warndendes Versetzungszeichen } AccidentalCautionary
     dis?4-\footnote
       \markup \concat \teeny { "a" } #'(0.5 . -0.5)
       \markup \italic { a. Langsamer werden } _"rit."
index e94a624087f4162cf43d0f7f9708e3409f87d830..eb262ad22122ef581fc6dd58cf64be22a66169e1 100644 (file)
@@ -10,7 +10,7 @@
 
 @c Translators: Till Paala
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Tasteninstrumente und andere Instrumente mit mehreren Systemen
 @section Tasteninstrumente und andere Instrumente mit mehreren Systemen
@@ -229,7 +229,7 @@ Notation kommen:
   \new Staff = "up" {
     \voiceOne
     % Make space for fingering in the cross-staff voice
-    \once\override DynamicLineSpanner #'staff-padding = #3.4
+    \once\override DynamicLineSpanner.staff-padding = #3.4
     e''2\p\< d''\>
     c''1\!
   }
index 11b10ac1e51f93302b43acdb373fff6b4a9457ec..39b7fa5d9ddc0caccb3bdc63b2b96f47e868e961 100644 (file)
@@ -1636,7 +1636,6 @@ LilyPond benutzt folgende Parser-Variablen:
 @item mode
 @item output-count
 @item output-suffix
-@item parseStringResult
 @item partCombineListener
 @item pitchnames
 @item toplevel-bookparts
index b1896d2ce2d08a58da0ceb560e89873c650edf71..6ddd80815ec141deb772c0118817cd34568d6223 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -261,17 +261,17 @@ mus = \drummode {
   << \new DrumStaff \with {
        \remove "Bar_engraver"
        \remove "Time_signature_engraver"
-       \override Stem #'transparent = ##t
-       \override Flag #'transparent = ##t
-       \override Stem #'Y-extent = ##f
+       \override Stem.transparent = ##t
+       \override Flag.transparent = ##t
+       \override Stem.Y-extent = ##f
      } \mus
      \new Lyrics \nam
   >>
   \layout {
     \context {
       \Score
-      \override LyricText #'font-family = #'typewriter
-      \override BarNumber #'transparent =##T
+      \override LyricText.font-family = #'typewriter
+      \override BarNumber.transparent =##T
     }
   }
 }
@@ -294,16 +294,16 @@ mus = \drummode { timh ssh timl ssl cb s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
-    \override StaffSymbol #'line-count = #2
-    \override StaffSymbol #'staff-space = #2
-    \override VerticalAxisGroup #'minimum-Y-extent = #'(-3.0 . 4.0)
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
+    \override StaffSymbol.line-count = #2
+    \override StaffSymbol.staff-space = #2
+    \override VerticalAxisGroup.minimum-Y-extent = #'(-3.0 . 4.0)
     drumStyleTable = #timbales-style
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -321,16 +321,16 @@ mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
     drumStyleTable = #congas-style
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -347,17 +347,17 @@ mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
     drumStyleTable = #bongos-style
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -374,14 +374,14 @@ mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
   \new DrumStaff \with{
     \remove "Bar_engraver"
     drumStyleTable = #percussion-style
-    \override StaffSymbol #'line-count = #1
+    \override StaffSymbol.line-count = #1
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -431,10 +431,10 @@ Zwei Holzblöcke, notiert mit wbh (hoch) und wbl (tief)
 woodstaff = {
   % This defines a staff with only two lines.
   % It also defines the positions of the two lines.
-  \override Staff.StaffSymbol #'line-positions = #'(-2 3)
+  \override Staff.StaffSymbol.line-positions = #'(-2 3)
 
   % This is necessary; if not entered, the barline would be too short!
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
 }
 
 \new DrumStaff {
@@ -452,7 +452,7 @@ woodstaff = {
 @end lilypond
 
 In diesem Spezialfalls muss die Länge der Taktlinie mit
-@code{\override Staff.BarLine #'bar-extent #'(von . bis)} angepasst werden.
+@code{\override Staff.BarLine.bar-extent #'(von . bis)} angepasst werden.
 Andernfalls wäre sie zu kurz.  Die Position der beiden Linien muss
 auch definiert werden.
 
@@ -462,8 +462,8 @@ Tamburin, notiert mit @code{tamb}:
 #(define mydrums '((tambourine default #t 0)))
 
 tambustaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tambourine"
 }
 
@@ -488,8 +488,8 @@ Noten für Tam-Tam (notiert mit @code{tt}):
 #(define mydrums '((tamtam default #t 0)))
 
 tamtamstaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tamtam"
 }
 
@@ -511,9 +511,9 @@ Zwei Glocken, notiert mit @code{cb} (Kuhglocke) und @code{rb}
                    (cowbell  default #t -2)))
 
 bellstaff = {
-  \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)
+  \override DrumStaff.StaffSymbol.line-positions = #'(-2 3)
   \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Different Bells"
 }
 
index b7bfe58e740bb1a04ce1e61d07a044ccb860f1e2..5c593242293189e15e42655381caf95a37f01781 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -1517,7 +1517,7 @@ soll.  Diese Funktion kann man wie folgt benutzen:
 
 @example
 \new Staff <<
-  \accidentalStyle "voice"
+  \accidentalStyle voice
   @{ @dots{} @}
 >>
 @end example
@@ -1532,7 +1532,7 @@ Um etwa den neuen Stil in allen Systemen einer
 Stimmgruppe (@code{StaffGroup}) zu benutzen, müsste der Befehl so aussehen:
 
 @example
-\accidentalStyle #'StaffGroup "voice"
+\accidentalStyle StaffGroup.voice
 @end example
 
 Folgende Versetzungszeichenstile sind unterstützt.
@@ -1575,11 +1575,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1595,7 +1595,7 @@ in beiden Systemen benutzt werden soll:
   <<
     \context Staff = "up" @{
       %%% nächste Zeile wie gewünscht ändern:
-      \accidentalStyle #'Score "default"
+      \accidentalStyle Score.default
       \musicA
     @}
     \context Staff = "down" @{
@@ -1657,11 +1657,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1734,11 +1734,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicB
     }
   >>
@@ -1801,11 +1801,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicB
     }
   >>
@@ -1863,11 +1863,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicB
     }
   >>
@@ -1930,11 +1930,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicB
     }
   >>
@@ -1991,11 +1991,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicB
     }
   >>
@@ -2055,7 +2055,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano"
+      \accidentalStyle piano
       \musicA
     }
     \context Staff = "down" {
@@ -2113,7 +2113,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano-cautionary"
+      \accidentalStyle piano-cautionary
       \musicA
     }
     \context Staff = "down" {
@@ -2172,11 +2172,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicB
     }
   >>
@@ -2230,11 +2230,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicB
     }
   >>
@@ -2292,11 +2292,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicB
     }
   >>
@@ -2350,11 +2350,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicB
     }
   >>
@@ -2410,11 +2410,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicB
     }
   >>
@@ -2472,12 +2472,12 @@ musicB = {
   <<
     \context Staff = "up" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicA
     }
     \context Staff = "down" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicB
     }
   >>
@@ -2532,11 +2532,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicB
     }
   >>
@@ -2592,11 +2592,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicB
     }
   >>
@@ -2642,7 +2642,7 @@ Klammer kein Auflösungszeichen:
 
 @lilypond[quote]
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2659,12 +2659,12 @@ die den Versetzungszeichenstil kurzzeitig auf @code{forget} umschaltet:
 
 @lilypond[verbatim,quote]
 forget = #(define-music-function (parser location music) (ly:music?) #{
-  \accidentalStyle "forget"
+  \accidentalStyle forget
   #music
-  \accidentalStyle "modern"
+  \accidentalStyle modern
 #})
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2783,13 +2783,13 @@ Notenköpfe können verändert werden:
 
 @lilypond[verbatim,quote,relative=2]
 c4 b
-\override NoteHead #'style = #'cross
+\override NoteHead.style = #'cross
 c4 b
-\revert NoteHead #'style
+\revert NoteHead.style
 a b
-\override NoteHead #'style = #'harmonic
+\override NoteHead.style = #'harmonic
 a b
-\revert NoteHead #'style
+\revert NoteHead.style
 c4 d e f
 @end lilypond
 
index 4177e354fa32bb4e00b3d3e5d46719854d129554..9efc3fac99ab627671225bf9d37a5005f4d1c451 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -569,11 +569,11 @@ Durch Veränderung der Eigenschaften @var{whiteout} (weiß malen) und
 Objekten im Notensystem zusammenstoßen.
 
 @lilypond[verbatim,quote,ragged-right,relative=2]
-\override Tie #'layer = #-2
-\override Staff.TimeSignature #'layer = #-1
-\override Staff.KeySignature #'layer = #-1
-\override Staff.TimeSignature #'whiteout = ##t
-\override Staff.KeySignature #'whiteout = ##t
+\override Tie.layer = #-2
+\override Staff.TimeSignature.layer = #-1
+\override Staff.KeySignature.layer = #-1
+\override Staff.TimeSignature.whiteout = ##t
+\override Staff.KeySignature.whiteout = ##t
 b2 b~
 \time 3/4
 \key a \major
@@ -671,7 +671,7 @@ vordefinierten Befehle:
 \new Staff {
   % These two lines are just to prettify this example
   \time 16/1
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   % Print a maxima rest, equal to four breves
   r\maxima
   % Print a longa rest, equal to two breves
@@ -941,10 +941,10 @@ nicht ignoriert werden.  Siehe auch das folgende Beispiel.
 
 @lilypond[quote,verbatim,relative=2]
 % This fails, as the wrong object name is specified
-\override TextScript #'padding = #5
+\override TextScript.padding = #5
 R1^"wrong"
 % This is the correct object name to be specified
-\override MultiMeasureRestText #'padding = #5
+\override MultiMeasureRestText.padding = #5
 R1^"right"
 @end lilypond
 
@@ -1519,7 +1519,7 @@ Taktnummerierung wird am Ende der Kadenz wieder aufgenommen:
 
 @lilypond[verbatim,relative=2,fragment]
 % Show all bar numbers
-\override Score.BarNumber #'break-visibility = #all-visible
+\override Score.BarNumber.break-visibility = #all-visible
 c4 d e d
 \cadenzaOn
 c4 c d8[ d d] f4 g4.
@@ -2605,14 +2605,14 @@ das Tempo, während die darauffolgenden vier 32-Noten ein
 gleichmäßiges Tempo haben.
 
 @lilypond[relative=1,verbatim,quote]
-\override Beam #'grow-direction = #LEFT
+\override Beam.grow-direction = #LEFT
 \featherDurations #(ly:make-moment 2 1)
 { c16[ c c c c c c c] }
-\override Beam #'grow-direction = #RIGHT
+\override Beam.grow-direction = #RIGHT
 \featherDurations #(ly:make-moment 2 3)
 { c32[ d e f] }
 % revert to non-feathered beams
-\override Beam #'grow-direction = #'()
+\override Beam.grow-direction = #'()
 { g32[ a b c] }
 @end lilypond
 
@@ -2737,7 +2737,7 @@ f1 \bar "|"
 f1 \bar "."
 g1 \bar "||"
 a1 \bar ".|"
-b1 \bar ".|."
+b1 \bar ".."
 c1 \bar "|.|"
 d1 \bar "|."
 e1
@@ -2746,8 +2746,8 @@ e1
 Zusätzlich gibt es noch punktierte und gestrichelte Taktstriche:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar ":"
-g1 \bar "dashed"
+f1 \bar ";"
+g1 \bar "!"
 a1
 @end lilypond
 
@@ -2755,17 +2755,17 @@ a1
 und fünf unterschiedliche Wiederholungstaktstriche:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar "|:" g \bar ":|:" a \bar ":|.|:" b \bar ":|.:" c \bar ":|" d
+f1 \bar ".|:" g \bar ":..:" a \bar ":|.|:" b \bar ":|.:" c \bar ":|." d
 @end lilypond
 
 Zusätzlich kann eine Taktlinie mit einem einfachen Apostroph gesetzt werden:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar "|:"
-g1 \bar ":|:"
+f1 \bar ".|:"
+g1 \bar ":..:"
 a1 \bar ":|.|:"
 b1 \bar ":|.:"
-c1 \bar ":|"
+c1 \bar ":|."
 e1
 @end lilypond
 
@@ -2793,13 +2793,13 @@ c4 c c c
 c4 c c c \break
 \bar "S"
 c4 c c c
-\bar "|S"
+\bar "S-|"
 c4 c c c \break
-\bar "|S"
+\bar "S-|"
 c4 c c c
-\bar "S|"
+\bar "S-S"
 c4 c c c \break
-\bar "S|"
+\bar "S-S"
 c1
 @end lilypond
 
@@ -2818,9 +2818,9 @@ doppelter Taktstrich am Ende der Zeile ausgegeben wird und ein
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar "||:"
+\bar ".|:-||"
 c4 c c c \break
-\bar "||:"
+\bar ".|:-||"
 c4 c c c
 @end lilypond
 
@@ -2829,29 +2829,29 @@ es sechs verschiedene Variationen:
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar ":|S"
+\bar ":|.S"
 c4 c c c \break
-\bar ":|S"
+\bar ":|.S"
 c4 c c c
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c \break
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c \break
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c \break
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c \break
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c4 c c c \break
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c1
 @end lilypond
 
@@ -2959,7 +2959,7 @@ der Zeile} und @var{Beginn der Zeile}.  Im folgenden
 Beispiel werden die Taktlinien überall ausgegeben:
 
 @lilypond[verbatim,quote,relative=1]
-\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
+\override Score.BarNumber.break-visibility = #'#(#t #t #t)
 \set Score.currentBarNumber = #11
 % Permit first bar number to be printed
 \bar ""
@@ -3461,8 +3461,8 @@ Verzierungen vorkommen:
 
 @lilypond[quote,relative=2,verbatim]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" d2. }
 >>
 @end lilypond
 
@@ -3473,8 +3473,8 @@ also
 
 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" \grace s16 d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" \grace s16 d2. }
 >>
 @end lilypond
 
index 6f4c080b73c725118f375d14c1144edc6b6972d7..08c3a81a909b2fe98d87fb99ddbd76a4d28a4373 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -316,7 +316,7 @@ Warnung: zu viele kollidierende Notenspalten werden ignoriert
 während der Kompilation.  Diese Nachricht kann unterdrückt werden durch
 
 @example
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 @end example
 
 Das unterdrückt jedoch nicht nur die Warnungen, sondern schaltet auch
@@ -888,14 +888,14 @@ Referenz der Interna:
 @rinternals{RestCollision}.
 
 @knownissues
-Die Benutzung von @code{\override NoteColumn #'ignore-collision = ##t}
+Die Benutzung von @code{\override NoteColumn.ignore-collision = ##t}
 führt dazu, dass Noten mit unterschiedlichen Köpfen in unterschiedlichen
 Stimmen falsch verschmolzen werden.
 
 @lilypond[quote,relative=1,verbatim]
 \mergeDifferentlyHeadedOn
 << { c16 a' b a } \\ { c,2 } >>
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 << { c16 a' b a } \\ { c,2 } >>
 @end lilypond
 
index 4702401af020dbe88ec9d9695ef8c185ed734d5f..a38be05c32cd1d4332fe6892ab085c1dd9e9512c 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -857,22 +857,22 @@ Standardwerte, die hier nicht aufgelistet sind, finden sich in
 
 @table @code
 
-@item blank-after-score-page-force
-@funindex blank-after-score-page-force
+@item blank-after-score-page-penalty
+@funindex blank-after-score-page-penalty
 
 Die Strafpunke, die erteilt werden, wenn eine leere Seite nach einer
 Partitur und vor der nächsten vorkommt.  Der Standardwert hiervon ist
-kleiner als @code{blank-page-force}, sodass leere Seiten nach einer Partitur
+kleiner als @code{blank-page-penalty}, sodass leere Seiten nach einer Partitur
 leeren Seiten innerhalb einer Partitur vorgezogen werden.
 
-@item blank-last-page-force
-@funindex blank-last-page-force
+@item blank-last-page-penalty
+@funindex blank-last-page-penalty
 
 Die Strafpunkte, wenn eine Partitur auf einer ungeraden Seite
 beendet wird. Standard: @code{0}.
 
-@item blank-page-force
-@funindex blank-page-force
+@item blank-page-penalty
+@funindex blank-page-penalty
 
 Die Strafpunkte, wenn eine leere Seite mitten in einer Partitur
 auftritt.  Das wird nicht benutzt von @code{ly:optimal-breaking},
@@ -1096,12 +1096,12 @@ Hier ist ein Beispiel für eine @code{\layout}-Umgebung:
   indent = 2\cm
   \context @{
     \StaffGroup
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #8
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #8
   @}
   \context @{
     \Voice
-    \override TextScript #'padding = #1
-    \override Glissando #'thickness = #3
+    \override TextScript.padding = #1
+    \override Glissando.thickness = #3
   @}
 @}
 @end example
@@ -1124,8 +1124,8 @@ Wenn also diese Umgebung:
 \layout @{
   \context @{
     \Voice
-    \override TextScript #'color = #magenta
-    \override Glissando #'thickness = #1.5
+    \override TextScript.color = #magenta
+    \override Glissando.thickness = #1.5
   @}
 @}
 @end example
@@ -1145,7 +1145,7 @@ Wenn eine Variable etwa so definiert wird:
 layoutVariable = \layout @{
   \context @{
     \Voice
-    \override NoteHead #'font-size = #4
+    \override NoteHead.font-size = #4
   @}
 @}
 @end example
@@ -1167,7 +1167,7 @@ eingesetzt werden, etwa:
   \layoutVariable
   \context @{
     \Voice
-    \override NoteHead #'color = #red
+    \override NoteHead.color = #red
   @}
 @}
 @end example
@@ -1409,10 +1409,10 @@ müssen.
 
 Genauso werden normalerweise Zeilenumbrüche auch verhindert, wenn Balken
 über die Taktenden hinausragen.  Dieses Verhalten kann verändert werden,
-indem man @code{\override Beam #'breakable = ##t} einstellt:
+indem man @code{\override Beam.breakable = ##t} einstellt:
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override Beam #'breakable = ##t
+\override Beam.breakable = ##t
 c2. c8[ c | \break
 c8 c] c2. |
 @end lilypond
@@ -1745,8 +1745,8 @@ Es kann vorkommen, dass LilyPond direkte @code{\break} oder
 Einstellungen kann dieses Verhalten ausgeschaltet werden:
 
 @example
-\override NonMusicalPaperColumn #'line-break-permission = ##f
-\override NonMusicalPaperColumn #'page-break-permission = ##f
+\override NonMusicalPaperColumn.line-break-permission = ##f
+\override NonMusicalPaperColumn.page-break-permission = ##f
 @end example
 
 Wenn @code{line-break-permission} die Einstellung falsch
@@ -1779,8 +1779,8 @@ music = \relative c'' { c8 c c c }
   \layout {
     \context {
       \Score
-      \override NonMusicalPaperColumn #'line-break-permission = ##f
-      \override NonMusicalPaperColumn #'page-break-permission = ##f
+      \override NonMusicalPaperColumn.line-break-permission = ##f
+      \override NonMusicalPaperColumn.page-break-permission = ##f
     }
   }
 }
@@ -1852,20 +1852,16 @@ music = \relative c'' { c4 c c c }
 \score {
   \new Staff <<
     \new Voice {
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 0))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
       s1 * 2 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 35))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
       s1 * 3 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 70))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
       s1 * 6 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 105))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
       s1 * 5 \break
     }
     \new Voice {
@@ -2017,14 +2013,14 @@ Referenzpunkte an:
 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
 
 alignToZero = \with {
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #zero-space
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
 }
 lowerCaseChords = \with {
   chordNameLowercaseMinor = ##t
 }
 staffAffinityDown = \with {
-  \override VerticalAxisGroup #'staff-affinity = #DOWN
+  \override VerticalAxisGroup.staff-affinity = #DOWN
 }
 labelContext =
 #(define-music-function
@@ -2042,13 +2038,13 @@ labelContext =
                          \lowerCaseChords }
   \context { \FretBoards  \alignToZero \staffAffinityDown }
   \context { \Score
-    \override BarLine #'stencil = ##f
-    \override DynamicText #'self-alignment-X = #-1
-    \override FretBoard #'X-offset = #1.75
-    \override InstrumentName #'minimum-Y-extent = #'(-2 . 2)
-    \override InstrumentName #'extra-offset = #'(0 . -0.5)
-    \override TextScript #'minimum-Y-extent = #'(-2 . 3)
-    \override TimeSignature #'stencil = ##f
+    \override BarLine.stencil = ##f
+    \override DynamicText.self-alignment-X = #-1
+    \override FretBoard.X-offset = #1.75
+    \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
+    \override InstrumentName.extra-offset = #'(0 . -0.5)
+    \override TextScript.minimum-Y-extent = #'(-2 . 3)
+    \override TimeSignature.stencil = ##f
   }
 }
 
@@ -2112,12 +2108,11 @@ der zweite die Eigenschaft komplett neu definiert:
 
 @example
 \new Staff \with @{
-  \override VerticalAxisGroup #'default-staff-staff-spacing
-       #'basic-distance = #10
+  \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
 @} @{ @dots{} @}
 
 \new Staff \with @{
-  \override VerticalAxisGroup #'default-staff-staff-spacing =
+  \override VerticalAxisGroup.default-staff-staff-spacing =
     #'((basic-distance . 10)
        (minimum-distance . 9)
        (padding . 1)
@@ -2132,8 +2127,7 @@ Um Platzierungseinstellungen global vorzunehmen, müssen sie in der
 \layout @{
   \context @{
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing
-         #'basic-distance = #10
+    \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
   @}
 @}
 @end example
@@ -2315,7 +2309,7 @@ in denen die Systeme gruppiert sind.
 \layout {
   \context {
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 8)
          (minimum-distance . 7)
          (padding . 1))
@@ -2337,7 +2331,7 @@ in denen die Systeme gruppiert sind.
   % By setting 'padding to a negative value, staves can be made to
   % collide.  The lowest acceptable value for 'basic-distance is 0.
   \new Staff \with {
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 3.5)
          (padding . -10))
   } { \clef bass g2 r | }
@@ -2395,14 +2389,14 @@ beeinflussen kann:
 \layout {
   \context {
     \Score
-    \override StaffGrouper #'staff-staff-spacing #'padding = #0
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #1
+    \override StaffGrouper.staff-staff-spacing.padding = #0
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #1
   }
 }
 
 <<
   \new PianoStaff \with {
-    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+    \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
   } <<
     \new Staff { c'1 }
     \new Staff { c'1 }
@@ -2462,24 +2456,23 @@ werden:
 \layout {
   \context {
     \Lyrics
-    \override VerticalAxisGroup
-      #'nonstaff-nonstaff-spacing #'stretchability = #1000
+    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
   }
 }
 
 \new StaffGroup
 <<
   \new Staff \with {
-    \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance . 30))
+    \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
   } { c'1 }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #UP
+    \override VerticalAxisGroup.staff-affinity = #UP
   } \lyricmode { up }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #CENTER
+    \override VerticalAxisGroup.staff-affinity = #CENTER
   } \lyricmode { center }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #DOWN
+    \override VerticalAxisGroup.staff-affinity = #DOWN
   } \lyricmode { down }
   \new Staff { c'1 }
 >>
@@ -2549,21 +2542,16 @@ Veränderungen von @code{NonMusicalPaperColumn} mit dem
 @code{\overrideProperty}-Befehl sind hier aufgelistet:
 
 @example
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((Y-offset . 40))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((alignment-distances . (15)))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40)
                                  (alignment-distances . (15)))
 @end example
@@ -2619,14 +2607,11 @@ ersichtlich benutzt werden:
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 40))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 80))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
           s1*5 \break
         }
         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
@@ -2658,16 +2643,13 @@ von @code{line-break-system-details}.
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 20)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (15)))
           s1*5 \break
         }
@@ -2700,16 +2682,13 @@ die vertikale Position von einzelnen Notensystemen.
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
                                            (alignment-distances . (30 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (10 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (10 30)))
           s1*5 \break
         }
@@ -2791,13 +2770,13 @@ entsprechende Notensystem gesetzt.
 @lilypond[quote,ragged-right,relative=2,verbatim]
 c4_"Text"\pp
 r2.
-\once \override TextScript #'outside-staff-priority = #1
+\once \override TextScript.outside-staff-priority = #1
 c4_"Text"\pp % this time the text will be closer to the staff
 r2.
 % by setting outside-staff-priority to a non-number,
 % we disable the automatic collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
-\once \override DynamicLineSpanner #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
+\once \override DynamicLineSpanner.outside-staff-priority = ##f
 c4_"Text"\pp % now they will collide
 @end lilypond
 
@@ -2807,9 +2786,9 @@ padding bezeichnet), kann durch @code{outside-staff-padding}
 kontrolliert werden.
 
 @lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
-\once \override TextScript #'outside-staff-padding = #0
+\once \override TextScript.outside-staff-padding = #0
 a'^"This text is placed very close to the note"
-\once \override TextScript #'outside-staff-padding = #3
+\once \override TextScript.outside-staff-padding = #3
 c^"This text is padded away from the previous text"
 c^"This text is placed close to the previous text"
 @end lilypond
@@ -2832,7 +2811,7 @@ c4
 c''2
 % setting outside-staff-horizontal-padding fixes this
 R1
-\once \override TextScript #'outside-staff-horizontal-padding = #1
+\once \override TextScript.outside-staff-horizontal-padding = #1
 c,,4^"Text"
 c4
 c''2
@@ -2945,8 +2924,8 @@ besser sieht:
 {
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
-  \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
-  \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
+  \override Staff.NoteSpacing.stem-spacing-correction = #1.5
+  \override Staff.StaffSpacing.stem-spacing-correction = #1.5
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
 }
@@ -2975,7 +2954,7 @@ dehnbare Abstände (padding) eingesetzt werden, kann benutzt
 werden, um zusätzlichen Platz in eine Partitur einzufügen.
 
 @example
- \override Score.NonMusicalPaperColumn #'padding = #10
+ \override Score.NonMusicalPaperColumn.padding = #10
 @end example
 
 Es gibt derzeit keine Möglichkeit, den Platz zu verringern.
@@ -3062,8 +3041,7 @@ eine größere Dauer ist als @code{1 16}.
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'base-shortest-duration = #(ly:make-moment 1 16)
+      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
     }
   }
 }
@@ -3101,7 +3079,7 @@ werden:
   \layout {
     \context {
       \Score
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -3112,7 +3090,7 @@ gesetzt, ohne dass Schlüssel, Taktlinie oder Verzierungsnoten
 zusätzlichen Platz erhalten.
 
 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
-\override Score.SpacingSpanner #'strict-note-spacing = ##t
+\override Score.SpacingSpanner.strict-note-spacing = ##t
 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c]  c32[ c32] }
 @end lilypond
 
@@ -3202,7 +3180,7 @@ benutzt werden können:
 @item @code{uniform-stretching} (gleichmäßige Dehnung)
 @item @code{strict-note-spacing} (strenge Notenverteilung)
 @item @code{\remove "Separating_line_group_engraver"} (entferne Liniengruppentrennungsengraver)
-@item @code{\override PaperColumn #'used = ##t} (PapierSpalte benutzt = wahr)
+@item @code{\override PaperColumn.used = ##t} (PapierSpalte benutzt = wahr)
 @end itemize
 
 In den Beispielen unten werden diese fünf unterschiedlichen Einstellungen
@@ -3434,7 +3412,7 @@ sollte auch noch die gleichmäßige Dehnung (@code{uniform-stretching}) angescha
     \context {
       \Score
       proportionalNotationDuration = #(ly:make-moment 1 20)
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -3534,7 +3512,7 @@ die beiden Partituren unten:
 
 \new Staff {
   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
-  \override Score.SpacingSpanner #'strict-note-spacing = ##t
+  \override Score.SpacingSpanner.strict-note-spacing = ##t
   c''8
   c''8
   c''8
@@ -3557,11 +3535,11 @@ noch eine Reihe von Möglichkeiten, die oft in proportionaler
 Notation benutzt werden.  Dazu gehören:
 
 @itemize
-@item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
+@item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
 @item @code{tupletFullLength = ##t}
-@item @code{\override Beam #'breakable = ##t}
-@item @code{\override Glissando #'breakable = ##t}
-@item @code{\override TextSpanner #'breakable = ##t}
+@item @code{\override Beam.breakable = ##t}
+@item @code{\override Glissando.breakable = ##t}
+@item @code{\override TextSpanner.breakable = ##t}
 @item @code{\remove "Forbid_line_break_engraver" in the Voice context}
 @end itemize
 
@@ -3724,7 +3702,7 @@ weit @qq{hervorstehen}, zu verschieben.
 
 @lilypond[verbatim,quote,relative=1]
 e4 c g\f c
-e4 c g-\tweak #'X-offset #-2.7 -\tweak #'Y-offset #2.5 \f c
+e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
 @end lilypond
 
 @item
@@ -3764,8 +3742,7 @@ angegeben wird:
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'common-shortest-duration = #(ly:make-moment 1 2)
+      \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 2)
     }
   }
 }
index f577ce0ee397640c0cd811fb485aa029d44f1c42..b562b53f40d232f10d04bc20bddcf72c4038b0bc 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -489,11 +489,11 @@ Die Anzahl der Notenlinien kann verändert werden:
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-count = #2
+\override Staff.StaffSymbol.line-count = #2
 \startStaff g, e |
 
 f'4 d \stopStaff
-\revert Staff.StaffSymbol #'line-count
+\revert Staff.StaffSymbol.line-count
 \startStaff g, e |
 @end lilypond
 
@@ -507,10 +507,10 @@ einem Befehl geändert werden können.
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(1 3 5 -1 -3)
+\override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
 \startStaff g, e |
 f'4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(8 6.5 -6 -8 -0.5)
+\override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
 \startStaff g, e
 @end lilypond
 
@@ -524,7 +524,7 @@ von der Notenliniendicke abhängen.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #3
+  \override StaffSymbol.thickness = #3
 }
 { f4 d g, e }
 @end lilypond
@@ -537,8 +537,8 @@ Werte ergibt die Dicke der Hilfslinien.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #2
-  \override StaffSymbol #'ledger-line-thickness = #'(0.5 . 0.4)
+  \override StaffSymbol.thickness = #2
+  \override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -547,7 +547,7 @@ Die vertikale Position der Hilfslinien kann verändert werden:
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'ledger-positions = #'(-3 -2 -1 2 5 6)
+  \override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -560,11 +560,11 @@ definiert ist.  Der Befehl @code{stopStaff} wird benötigt, damit
 der Befehl sich auf das gesamte System (@code{StaffSymbol}) auswirkt.
 
 @lilypond[fragment,quote,relative=1]
-\override Staff.StaffSymbol #'line-positions =   #'(-8 0 2 4)
+\override Staff.StaffSymbol.line-positions =   #'(-8 0 2 4)
 d4 e f g
 \stopStaff
 \startStaff
-\override Staff.StaffSymbol #'ledger-positions = #'(-8 -6 (-4 -2) 0)
+\override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
 d4 e f g
 @end lilypond
 
@@ -573,7 +573,7 @@ Einstellung wirkt sich auch auf den Abstand der Hilfslinien aus.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'staff-space = #1.5
+  \override StaffSymbol.staff-space = #1.5
 }
 { f'4 d, g, e, }
 @end lilypond
@@ -654,8 +654,8 @@ bietet sich an, wenn nur einige Ossia-Systeme benötigt werden.
       \remove "Time_signature_engraver"
       alignAboveContext = #"main"
       fontSize = #-3
-      \override StaffSymbol #'staff-space = #(magstep -3)
-      \override StaffSymbol #'thickness = #(magstep -3)
+      \override StaffSymbol.staff-space = #(magstep -3)
+      \override StaffSymbol.thickness = #(magstep -3)
       firstClef = ##f
     }
     { e4 d f e }
@@ -677,10 +677,10 @@ Stücke setzt.
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   }
   { \stopStaff s1*6 }
 
@@ -715,10 +715,10 @@ Mehr Information zu @code{\Staff \RemoveEmptyStaves} findet sich in
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   } \relative c'' {
     R1*3
     c4 e8 d c2
@@ -736,7 +736,7 @@ Mehr Information zu @code{\Staff \RemoveEmptyStaves} findet sich in
 \layout {
   \context {
     \Staff \RemoveEmptyStaves
-    \override VerticalAxisGroup #'remove-first = ##t
+    \override VerticalAxisGroup.remove-first = ##t
   }
 }
 @end lilypond
@@ -892,8 +892,8 @@ diesem Fall sollten folgende Befehle eingesetzt werden, anstatt
 den Engraver zu entfernen:
 
 @example
-\override StaffSymbol #'stencil = ##f
-\override NoteHead #'no-ledgers = ##t
+\override StaffSymbol.stencil = ##f
+\override NoteHead.no-ledgers = ##t
 @end example
 
 Zu den bekannten Fehlern und Warnungen, die mit @code{\Staff \RemoveEmptyStaves}
index 41f77ca38cdf78b5081ecbaa437888ee042931a8..f751070399610dff0d1b9dbdd7d833311e5cfb06 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -143,7 +143,7 @@ viel Rechenaufwand.  Sollten Sie aber etwas bessere Leistung bevorzugen,
 schreiben Sie in Ihre Datei:
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 
@@ -163,7 +163,7 @@ können von einer Note bis zu einer anderen mit folgender
 Anweisung erstellt werden:
 
 @lilypond[verbatim,quote,relative=2]
-\override TextSpanner #'(bound-details left text) = "rit."
+\override TextSpanner.bound-details.left.text = "rit."
 b1\startTextSpan
 e,\stopTextSpan
 @end lilypond
@@ -179,7 +179,7 @@ Formatierung kann erreicht werden, indem man @code{\markup}-Blöcke
 einsetzt, wie beschrieben in @ref{Text formatieren}.
 
 @lilypond[quote,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text) =
+\override TextSpanner.bound-details.left.text =
   \markup { \upright "rit." }
 b1\startTextSpan c
 e,\stopTextSpan
@@ -1488,12 +1488,12 @@ Der Wert, der @code{font-size} übergeben wird, entspricht der geforderten
 Änderung in Bezug auf die Standardschriftgröße.
 
 @lilypond[quote,verbatim,relative=2]
-\override Score.RehearsalMark #'font-family = #'typewriter
+\override Score.RehearsalMark.font-family = #'typewriter
 \mark \markup "Ouverture"
-\override Voice.TextScript #'font-shape = #'italic
-\override Voice.TextScript #'font-series = #'bold
+\override Voice.TextScript.font-shape = #'italic
+\override Voice.TextScript.font-series = #'bold
 d2.^\markup "Allegro"
-\override Voice.TextScript #'font-size = #-3
+\override Voice.TextScript.font-size = #-3
 c4^smaller
 @end lilypond
 
@@ -1548,8 +1548,8 @@ FontConfig erkannt wird, kann in einer Partitur eingefügt werden.  Dazu
 verwendet man folgende Syntax:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.TimeSignature #'font-name = #"Bitstream Charter"
-\override Staff.TimeSignature #'font-size = #2
+\override Staff.TimeSignature.font-name = #"Bitstream Charter"
+\override Staff.TimeSignature.font-size = #2
 \time 3/4
 
 a1_\markup {
index 150141342872a95aa25c6dfae7590f06e760db1f..afab5fc62b3c037b4fbaaf569b61b91549bdede3 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Till Paala
 
@@ -166,14 +166,14 @@ Infolgedessen müssen auch um Eigenschaftsbezeichnungen Leerzeichen gesetzt
 werden.  Ein Befehl heißt also @emph{nicht}:
 
 @example
-\override Score.LyricText #'font-shape = #'italic
+\override Score.LyricText.font-shape = #'italic
 @end example
 
 @noindent
 sondern
 
 @example
-\override Score . LyricText #'font-shape = #'italic
+\override Score.LyricText.font-shape = #'italic
 @end example
 
 Punkte, Gesangstext mit Akzenten, verschiedene lateinische und nicht-lateinische
@@ -1050,7 +1050,7 @@ verweist, mit @code{\context} angegeben:
   <<
     \new Lyrics = "lyrics" \with {
       % lyrics above a staff should have this override
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "melody" {
@@ -1081,7 +1081,7 @@ einesetzt werden können.  Hier ein Beispiel für die zweite Methode:
     \new Lyrics = "sopranos"
     \new Lyrics = "contraltos" \with {
       % lyrics above a staff should have this override
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "contraltos" {
@@ -1135,7 +1135,7 @@ Um den Abstand zwischen Silben zu vergrößern, kann die
 @lilypond[relative=1,verbatim,quote,ragged-right]
 {
   c c c c
-  \override Lyrics.LyricSpace #'minimum-distance = #1.0
+  \override Lyrics.LyricSpace.minimum-distance = #1.0
   c c c c
 }
 \addlyrics {
@@ -1161,7 +1161,7 @@ wirkt, muss sie im @code{layout}-Block vorgenommen werden.
   \layout {
     \context {
       \Lyrics
-      \override LyricSpace #'minimum-distance = #1.0
+      \override LyricSpace.minimum-distance = #1.0
     }
   }
 }
@@ -1179,7 +1179,7 @@ Seitenränder ragt, verlangt zusätzliche Computerzeit.  Um den
 Notensatz etwas zu beschleunigen, kann die Überprüfung abgestellt werden:
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 Damit Gesangstext auch nicht mit Taktlinien
@@ -1191,7 +1191,7 @@ zusammenstößt, kann folgende Einstellung gesetzt werden:
     \Lyrics
       \consists "Bar_engraver"
       \consists "Separating_line_group_engraver"
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
   @}
 @}
 @end example
@@ -1927,7 +1927,7 @@ unterschiedlichen Melodien auszurichten.  Das wird mit der
         \voiceOne
         \times 2/3 {
           % show associations clearly.
-          \override NoteColumn #'force-hshift = #-3
+          \override NoteColumn.force-hshift = #-3
           f8 f g
         }
       }
@@ -2341,8 +2341,8 @@ Form genutzt werden, wie das Beispiel zeigt:
   \layout {
     \context {
       \Score
-      \override DynamicText #'direction = #UP
-      \override DynamicLineSpanner #'direction = #UP
+      \override DynamicText.direction = #UP
+      \override DynamicLineSpanner.direction = #UP
     }
   }
 }
@@ -2627,7 +2627,7 @@ pianoRH = \relative c'' {
   % position name of cue-ing instrument just before the cue notes,
   % and above the staff
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
     \set instrumentCueName = "Flute"
   }
   \cueDuring "flute" #UP { g4 bes4 }
@@ -2671,8 +2671,8 @@ pianoRH = \relative c'' {
   \transposition c'
   % position name of cue-ing instrument below the staff
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
-    \override InstrumentSwitch #'direction = #DOWN
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
+    \override InstrumentSwitch.direction = #DOWN
     \set instrumentCueName = "Clar."
   }
   \cueDuring "clarinet" #DOWN { c4. g8 }
@@ -2813,8 +2813,8 @@ dialogue = \lyricmode {
 \score {
   <<
     \new Lyrics \with {
-      \override LyricText #'font-shape = #'italic
-      \override LyricText #'self-alignment-X = #LEFT
+      \override LyricText.font-shape = #'italic
+      \override LyricText.self-alignment-X = #LEFT
     }
     { \dialogue }
     \new Staff {
@@ -2883,7 +2883,7 @@ die Tonhöhen darzustellen, während der Rhythmus sich am Rhythmus
 der gesprochenen Worte orientiert.
 
 @lilypond[verbatim,quote]
-stemOff = { \override Staff.Stem #'transparent = ##t }
+stemOff = { \override Staff.Stem.transparent = ##t }
 
 \relative c' {
   \stemOff
@@ -2975,9 +2975,9 @@ a4 b c2
 \bar "'"
 a4 b c2
 a4 b c2
-\bar ":"
+\bar ";"
 a4 b c2
-\bar "dashed"
+\bar "!"
 a4 b c2
 \bar "||"
 @end lilypond
@@ -2988,23 +2988,23 @@ Veränderung des @code{\breathe}-Zeichens:
 
 @lilypond[verbatim,quote]
 divisioMinima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-minima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-minima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaior = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maior
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maior
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaxima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maxima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maxima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 finalis = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::finalis
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::finalis
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 
@@ -3120,8 +3120,7 @@ global = {
       \layout {
         \context {
           \Score
-          \override SpacingSpanner
-          #'base-shortest-duration = #(ly:make-moment 1 2)
+          \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 2)
         }
         \context {
           \Staff
index 31bb22c7c517d1034e7cab63e820b5c1d11a117f..452f275938a829b2fc40a61dd604410c00f5e628 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-    Translation of GIT committish: e5a609e373eae846857f9a6d70a402a3d42b7d94
+    Translation of GIT committish: ebe492ca408fb0d9abf80b94c56197eef8dc2f09
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -7,20 +7,20 @@
 
 <!--
 we depend on an external entity here, which we cannot control.  Suppose
-we go from 2.16.x to 2.17.x and put the documentation under "v2.17".
+we go from 2.15.x to 2.17.x and put the documentation under "v2.17".
 For some time, Google won't have the new location in its index, so the
-search would get nothing.  It would be better to keep "v2.16" in the
-search for a while and have a redirection from "v2.16" to "v2.17".
+search would get nothing.  It would be better to keep "v2.15" in the
+search for a while and have a redirection from "v2.15" to "v2.17".
 -->
 
 <form action="http://google.com/search"
       method="get"
       name="search"
-      onSubmit="search.q.value='site:lilypond.org/doc/v2.16 '
+      onSubmit="search.q.value='site:lilypond.org/doc/v2.17 '
                + search.brute_query.value"
-      onMouseMove="search.q.value='site:lilypond.org/doc/v2.16 '
+      onMouseMove="search.q.value='site:lilypond.org/doc/v2.17 '
                   + search.brute_query.value"
-      onKeyUp="search.q.value='site:lilypond.org/doc/v2.16 '
+      onKeyUp="search.q.value='site:lilypond.org/doc/v2.17 '
               + search.brute_query.value">
   <input type="hidden" name="btnG" value="Mit Google suchen">
   <input type="text" name="brute_query" onfocus="this.value=''" value="Suche">
diff --git a/Documentation/de/texidocs/GNUmakefile b/Documentation/de/texidocs/GNUmakefile
deleted file mode 100644 (file)
index 0ffa758..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth=../../..
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.texidoc)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/de/usage/GNUmakefile b/Documentation/de/usage/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 37d86c525bccd9da5c97aff3a1430d300001ca02..86ed612784f185cf8c442a048e12ca5f079fd3f5 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Reinhold Kainhofer, Till Paala
 @c Translation checkers: Till Paala
@@ -1031,7 +1031,7 @@ rot macht, aber als Resultat hat man zwei Systeme, während die
 Notenköpfe immernoch schwarz im unteren System erscheinen.
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.NoteHead #'color = #red
+\override Staff.NoteHead.color = #red
 \new Staff { a }
 @end lilypond
 
@@ -1043,7 +1043,7 @@ richtige Schreibweise wäre:
 
 @lilypond[quote,verbatim,relative=2]
 \new Staff {
-  \override Staff.NoteHead #'color = #red
+  \override Staff.NoteHead.color = #red
   a
 }
 @end lilypond
@@ -1136,7 +1136,7 @@ indem man einen der Kontexte als System erscheinen lässt, indem man ihm
 zu Beginn hinzufügt:
 
 @example
-\override VerticalAxisGroup #'staff-affinity = ##f
+\override VerticalAxisGroup.staff-affinity = ##f
 @end example
 
 Zu Einzelheiten siehe @qq{Abstand von Nicht-Notensystemzeilen} in
diff --git a/Documentation/de/web/GNUmakefile b/Documentation/de/web/GNUmakefile
deleted file mode 100644 (file)
index 000480f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-depth = ../../..
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index dc127f98c204ab1e632cb7cf0dc6eb303d973da5..dc200b17b013892f2179fc58e933d1afacb66e74 100644 (file)
@@ -1,6 +1,5 @@
 ISOLANG = es
 depth = ../..
-SUBDIRS = essay learning notation texidocs usage web extending included
 STEPMAKE_TEMPLATES = documentation texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
 
index 94e7a00a90c9adb5928e8250c3a1615e03f005ce..d44d3a263b0381f1477fcbcd9b32950978e0469f 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 2e3c5412eacdbfd976d2cd6c5cc90f272ddfc263
+    Translation of GIT committish: cced43289cf170305e6e6517180659a1c4fa91db
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -44,7 +44,7 @@ Véase el manual del usuario, \NAME\
 @finalout
 
 @node Top
-@top Funcionalidades nuevas de la versión 2.16 desde la 2.14
+@top Funcionalidades nuevas de la versión 2.18 desde la 2.16
 
 @allowcodebreaks false
 
@@ -68,408 +68,34 @@ which scares away people.
 * only show user-visible changes.
 
 @end ignore
-@item
-Se contemplan las plicas de pentagrama cruzado en acordes, utilizando
-@code{crossStaff} y el grabador @code{Span_stem_engraver}.  Éste
-efectúa el cálculo de la longitud de las plicas de pentagrama cruzado
-de forma automática.
-@lilypondfile[quote]
-{cross-staff-stems.ly}
-
-@item
-La sintaxis de las palabras (secuencias de caracteres que se reconocen
-sin encerrarlas entre comillas) y las instrucciones (que ahora son
-siempre una barra invertida @samp{\} seguida de una palabra) se ha
-unificado para todos los modos: ahora consiste en caracteres
-alfabéticos, posiblemente comprendiendo guiones aislados @samp{-} y
-guiones bajos @samp{_}.
-
-Una consecuencia es que la utilización de guiones de texto sin
-entrecomillar como (literalmente)
-@example
-@{ c-script c\f_script @}
-@end example
-ahora tienden a producir una música no válida.  La omisión de las
-comillas para texto arbitrario en lugar de palabras clave nunca ha
-sido una buena práctica o se ha documentado, y es poco probable que se
-haya utilizado mucho.
-
-Quedarse con las convenciones establecidas (como no utilizar guiones o
-guiones bajos para los nombres de instrucción orientados a ser
-utilizados dentro de la música) sigue siendo recomendable.  El motivo
-de este cambio es el reconocimiento más robusto de las unidades
-léxicas de LilyPond para sí mismo así como para las herramientas
-externas que interpretan su sintaxis.
-
-@item
-Se contempla el canto kievano en notación cuadrada:
-@lilypond[quote,relative=1,verbatim]
-\new KievanVoice {
-  \cadenzaOn
-  c d e f g a bes
-  \bar "kievan"
-}
-@end lilypond
-
-@item
-Los puntillos ahora evitan a las otras voces en la polifonía a dos
-partes, de manera que los usuarios pueden trasladar el grabador
-@code{Dot_column_engraver} para ajustar los puntillos de forma
-independiente para cada voz.
-
-@lilypond[quote]
-\layout {
-  \context {
-    \Staff
-    \remove "Dot_column_engraver"
-  } \context {
-    \Voice
-    \consists "Dot_column_engraver"
-  }
-}
-\relative c'' <<
-  { \time 6/8
-    <d f g>4. <d f g> <f, g> b
-  } \\ {
-    <f g b>4. <g b d> <b d> <e, g>
-  } >>
-@end lilypond
-
-@item
-Ahora se incluye en LilyPond una función de Scheme, desarrollada por
-varios usuarios, para ajustar los puntos de control de las curvas como
-ligaduras de unión y de expresión.
-
-@lilypond[quote,verbatim,relative=2]
-g8->( bes,-.) d4
-\shape Slur #'((-0.5 . 1.5) (-3 . 0) (0 . 0) (0 . 0))
-g8->( bes,!-.) d4
-@end lilypond
-
-@item
-El uso de las especificaciones de @code{\tempo} en los bloques
-@code{\midi} (eliminados en la versión 2.9.16 en favor del ajuste
-explícito de @code{tempoWholesPerMinute}) ha resurgido: ahora
-cualquier clase de música que efectúe ajustes de propiedades se
-convierte en definiciones de contexto dentro de las especificaciones
-de salida, permitiendo declaraciones como
-@example
-\layout @{ \accidentalStyle modern @}
-\midi @{ \tempo 4. = 66 @}
-@end example
-
-@item
-Se ha rediseñado la clave de Sol de LilyPond: el bucle superior está
-más equilibrado, el gancho inferior sobresale menos y la línea
-vertical principal ("spine") está curvada de forma más regular.
-Pueden compararse las versiones vieja y nueva consultando la
-documentación:
-@uref{http://lilypond.org/doc/v2.14/Documentation/notation/the-feta-font.html#clef-glyphs,
-versión antigua},
-@uref{http://lilypond.org/doc/v2.15/Documentation/notation/the-feta-font.html#clef-glyphs,
-versión nueva}.
 
 @item
-Se han simplificado las instrucciones de los sellos de elementos
-gráficos para permitir una menor duplicación de código y mejores
-aproximaciones de altura de los objetos gráficos.  Se han eliminado
-las siguientes instrucciones de sello:
-@itemize
-@item @code{beam}
-@item @code{bezier-sandwich}
-@item @code{bracket}
-@item @code{dashed-slur}
-@item @code{dot}
-@item @code{oval}
-@item @code{repeat-slash}
-@item @code{zigzag-line}
-@end itemize
-
-@item
-Ahora se tratan los corchetes como objetos diferenciados y no como
-parte de la plica.
-@lilypond[fragment,quote,relative=2]
-\override Flag #'color = #red
-g8
+Se ha modificado la interfaz de usuario de las líneas divisorias.
+Los glifos de barra de compás ahora se asemejan al aspecto de los
+caracteres utilizados para expresar el tipo de barra, de manera
+que un signo de repetición por la izquierda se debe codificar como
+@code{.|:}.  La instrucción @code{\defineBarLine} provee una
+manera sencilla de definir estilos adicionales de línea divisoria.
+
+@item
+Las alteraciones accidentales en la armadura de la tonalidad se
+pueden imprimir en distinta octava de las posiciones
+tradicionales, o en más de una octava.
+@lilypond[quote,relative=0]
+\override Staff.KeySignature #'flat-positions = #'((-5 . 5))
+\override Staff.KeyCancellation #'flat-positions = #'((-5 . 5))
+\clef bass \key es\major es g bes d
+\clef treble \bar "||" \key es\major es g bes d
+\override Staff.KeySignature #'sharp-positions = #'(2)
+\bar "||" \key d\major b fis b2
 @end lilypond
 
-@item
-Se puede elegir entre dos métodos de numeración de compases, en
-especial para cuando se emplean repeticiones:
-
-@lilypond[fragment,quote,relative=1,noragged-right]
-\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
-}
-@end lilypond
-
-@item
-Lo que sigue es un cambio fundamental en la representación que
-LilyPond hace de la música: los eventos de duración como
-@code{LyricEvent} y @code{NoteEvent} ya no se encuentran envueltos
-dentro de elementos @code{EventChord} a no ser que se hayan escrito
-realmente como parte de un acorde.  Si manipulamos expresiones
-musicales en Scheme, el nuevo comportamiento puede necesitar cambios
-en nuestro código.  Las llamadas a la función musical
-@code{\eventChords} o a la función de Scheme @code{event-chord-wrap!}
-convierten a la representación anterior; la utilización de una
-cualquiera de ellas puede ser la vía más sencilla para mantener
-operativo el código tradicional.
-
-Los tres siguientes elementos de la lista son consecuencia de este
-cambio.
-
-@item
-Se ha reimplementado la abreviatura de ayuda para intruducción
-repetitiva de acordes, @code{q}.  Ahora los acordes repetidos se
-sustituyen justo antes de la interpretación de la expresión musical.
-En caso de que el usuario quiera retener ciertos eventos del acorde
-original, puede ejecutar manualmente la función @code{\chordRepeats}
-de sustitución de acordes de repetición.
-
-@item
-Los números de cuerdas y digitaciones de la mano derecha sobre notas
-individuales aparecen ahora sin tener que escribirlas dentro de
-corchetes de acorde.
-
-@item
-Ahora las funciones musicales funcionan igual cuando se usan dentro o
-fuera de los acordes, incluidas todas las posibilidades de la
-exploración de argumentos.  Las variables musicales se pueden usar
-dentro de acordes: una construcción como
-@lilypond[verbatim,quote,ragged-right]
-tonic=fis'
-{ <\tonic \transpose c g \tonic> }
-@end lilypond
-@noindent
-ahora funciona como se espera.  Puede utilizarse @code{#@{@dots{}#@}}
-para la construcción de componentes de acordes.  Ahora @code{\tweak}
-funciona sobre notas individuales sin necesidad de incluirlas dentro
-de un acorde.  Ahora es posible usarla dentro de eventos de
-instrucciones y letra de canciones, pero aún no es probable que
-ofrezca resultados.
-
-@item
-@code{\tweak} toma ahora opcionalmente la especificación de un objeto
-de presentación.  Se puede usar para trucar objetos de presentación
-que están causados sólo indirectamente por el evento trucado, como
-alteraciones accidentales, plicas y corchetes:
-
-@lilypond[verbatim,quote,ragged-right,relative=2]
-<\tweak Accidental #'color #red   cis4
- \tweak Accidental #'color #green es
-                                  g>
-@end lilypond
-
-@item
-Las expresiones de Scheme dentro de fragmentos de código de LilyPond
-incrustados (@code{#@{@dots{}#@}}) se ejecutan ahora dentro de la
-cerradura léxica del código de Scheme circundante.  El símbolo
-@code{$} ya no es especial dentro del código de LilyPond incrustado.
-Se puede utilizar de forma incondicional dentro de código de LilyPond
-para la evaluación inmediata de expresiones de Scheme, de forma
-parecida a la forma en que se utilizaba anteriormente
-@code{ly:export}.  Se ha suprimido @code{ly:export}.  Como
-consecuencia, ahora @code{#} está libre para diferir la evaluación de
-su argumento hasta que el analizador sintáctico reduzca efectivamente
-la expresión contenida, reduciendo significativamente el potencial de
-la evaluación prematura.  También están los operadores de @q{división
-de cadenas} @code{$@@} y @code{#@@} para la interpretación de los
-miembros de una lista de forma individual.
-
-@item
-Para reducir la necesidad de utilizar @code{$}, las expresiones de
-Scheme escritas con @code{#} se interpretan como música dentro de las
-listas de música, y como elementos de marcado o de listas de marcado
-dentro de los elementos de marcado.
-
-@item
-Se ha mejorado el soporte de acordes de tipo jazz: se reconocen los
-acordes lidios y alterados; ahora se tratan los separadores entre
-modificadores de acorde de forma independiente de los separadores
-entre acordes invertidos y sus notas de bajo (y por omisión, la barra
-inclinada se usa ahora solamente para el último tipo de separador);
-las notas adicionales ya no van prefijadas por "add" de forma
-predeterminada; y la "m" en los acordes menores se puede personalizar.
-Consulte @ruser{Nombres de acorde personalizados} para más
-información.
-
-@item
-Se ha cambiado el nombre de la instrucción @code{\markuplines} por
-@code{\markuplist} para conseguir una mejor correspondencia con su
-semántica y con la nomenclatura general de LilyPond.
-
-@item
-Se ha simplificado considerablemente la interfaz para especificar
-afinaciones en las tablaturas y se emplea la función de Scheme
-@code{\stringTuning} para la mayor parte de los propósitos.
-
-@item
-Las barras ahora pueden preservar la inclinación por encima de los
-saltos de línea.
-@lilypond[fragment,quote,relative=2]
-\override Beam #'breakable = ##t
-a8[ b c d e f g \bar "" \break f e d c b a]
-\once \override Beam #'positions = #beam::align-with-broken-parts
-a8[ b c d e f g \bar "" \break f e d c b a]
-\once \override Beam #'positions = #beam::slope-like-broken-parts
-a8[ b c d e f g \bar "" \break f e d c b a]
-@end lilypond
-Para hacerlo, se han hecho obsoletas varias funciones de "callback".
-@itemize
-@item @code{ly:beam::calc-least-squares-positions}
-@item @code{ly:beam::slope-damping}
-@item @code{ly:beam::shift-region-to-valid}
-@end itemize
-Además, @code{ly:beam::quanting} ahora acepta un argumento adicional
-para ayudar a los cálculos sobre los cambios de línea.  Todas estas
-funciones se llaman automáticamente cuando se ajusta el parámetro
-@code{positions}.
-
-@item
-En los argumentos de función, la música, los elementos de marcado y
-las expresiones de Scheme (así como algunas otras entidades
-sintácticas) se han hecho mayormente intercambiables y se diferencian
-solamente mediante la evaluación del predicado respectivo.  En ciertos
-casos, el analizador sintáctico consulta este predicado, como cuando
-se decide si interpretar @code{-3} como un número o como un evento de
-digitación.
-
-@item
-Ahora se pueden definir las funciones musicales (y sus parientes
-cercanos) con argumentos opcionales.
-
-@item
-Para definir instrucciones que se ejecutan solamente por sus efectos
-secundarios, ahora está disponible @code{define-void-function}.
-
-@item
-Hay una instrucción nueva @code{define-event-function} en analogía con
-@code{define-music-function} que se puede usar para definir funciones
-musicales que actúan como post-eventos sin que se requiera un especificador
-de dirección como (@code{-}, @code{^} o @code{_}) antes de ellos.
-
-@lilypond[quote,verbatim,ragged-right]
-dyn=#(define-event-function (parser location arg) (markup?)
-         (make-dynamic-script arg))
-\relative c' { c\dyn pfsss }
-@end lilypond
-
-@item
-Se puede incluir una lista de alias en ASCII para caracteres
-especiales.
-
-@lilypond[quote,verbatim]
-\paper {
-  #(include-special-characters)
-}
-\markup "&bull; &dagger; &copyright; &OE; &ss; &para;"
-@end lilypond
-
-@item
-Hay una instrucción nueva @code{define-scheme-function} en analogía
-con @code{define-music-function} que puede usarse para definir
-funciones que se evalúan a expresiones de Scheme pero aceptan
-argumentos en la sintaxis de LilyPond.
-
-@item
-Ahora se puede utilizar la construcción @code{#@{ @dots{} #@}} no solo
-para crear listas secuenciales de música, sino también para alturas
-(que se distinguen de los eventos de nota sencillos por la ausencia de
-duración u otra información que no puede formar parte de una altura),
-eventos musicales únicos, expresiones musicales vacías, post-eventos,
-elementos de marcado (sobre todo para liberar a los usuarios de la
-necesidad de usar la macro @code{markup}), listas de marcado,
-expresiones numéricas, definiciones y modificaciones de contextos y
-algunas otras cosas.  Si no contiene nada o contiene un único evento
-musical, ya no devuelve una lista secuencial de música, sino una
-expresión musical vacía o simplemente el propio evento musical,
-respectivamente.
-
-@item
-Se pueden usar alturas en la parte derecha de las asignaciones.  Las
-alturas se diferencian de los eventos de una sola nota en que no
-tienen duración ni otras informaciones que no pueden formar parte de
-una altura.
-
-@item
-Nueva opción de la línea de órdenes @option{--loglevel=@var{level}}
-para controlar el volumen de datos que LilyPond produce en la salida.
-Los valores posibles son ERROR (errores), WARN (advertencias),
-BASIC_PROGRESS (progreso básico), PROGRESS (progreso) y DEBUG
-(depuración).
-
-@item
-@code{\once \set} ahora reinicia correctamente el valor de la
-propiedad al valor previo.
-
-@lilypond[fragment,quote,relative=2]
-  \set fingeringOrientations = #'(left)
-  <e-1>4
-  \once \set fingeringOrientations = #'(right)
-  <e-1>
-  <e-1>-"left"
-@end lilypond
-
-@item
-La alineación de los elementos de matiz dinámico extensos
-(reguladores, crescendi textuales, etc.) se divide automáticamente si
-se da explícitamente una dirección distinta.
-
-@lilypond[fragment,quote,relative=2]
-c4_\< c c^\> c c1_\p
-@end lilypond
-
-
-@item
-Ahora las apoyaturas y mordentes funcionan también dentro de una
-ligadura de expresión, y no solo dentro de una ligadura de fraseo.
-Asimismo, se ha añadido la función @code{\slashedGrace} que no imprime
-ninguna ligadura partiendo de la nota del mordente.
-
-@lilypond[fragment,quote,relative=2]
-c4( \appoggiatura e8 d4 \acciaccatura e8 d4 \slashedGrace e8 c4)
-@end lilypond
-
-
-@item
-Para suprimir a línea en un elemento de crescendo extenso (y otros
-elementos extensos similares), LilyPond contempla ahora de forma plena
-la propiedad @code{#'style = #'none}.
-
-@lilypond[fragment,quote,relative=2]
-\override DynamicTextSpanner #'style = #'none
-c4\cresc c c g, c'\p
-@end lilypond
-
-@item
-LilyPond.app está disponible ahora para MacOS X 10.7. ¡Gracias,
-Christian Hitz!
-
-@item
-Los glissandos pueden abarcar varias líneas.
-
 @end itemize
 
 @ifhtml
 Para ver noticias anteriores, diríjase a
+@uref{http://lilypond.org/doc/v2.16/Documentation/changes/},
 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/},
-@uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html},
 o @uref{../,vuelva} al índice de la documentación.
 
 
diff --git a/Documentation/es/essay/GNUmakefile b/Documentation/es/essay/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 86337f89b2da063e2e5aa79fb2219a52e225a69a..fd6722fd82e256f7609da09bfe98f21657869e3d 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Grabado musical
 @chapter Grabado musical
@@ -343,9 +343,9 @@ music = {
   \layout {
     \context {
       \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.0
-      \override NoteSpacing #'same-direction-correction = #0.0
-      \override StaffSpacing #'stem-spacing-correction = #0.0
+      \override NoteSpacing.stem-spacing-correction = #0.0
+      \override NoteSpacing.same-direction-correction = #0.0
+      \override StaffSpacing.stem-spacing-correction = #0.0
     }
   }
 }
@@ -371,7 +371,7 @@ music = {
   \layout {
     \context {
       \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.6
+      \override NoteSpacing.stem-spacing-correction = #0.6
     }
   }
 }
@@ -501,8 +501,8 @@ global = {
   <<
     \new Staff \with {
       fontSize = #-4
-      \override StaffSymbol #'staff-space = #(magstep -4)
-      \override StaffSymbol #'thickness = #(magstep -3)
+      \override StaffSymbol.staff-space = #(magstep -4)
+      \override StaffSymbol.thickness = #(magstep -3)
     }
     \relative c' {
       \global
@@ -524,7 +524,7 @@ global = {
         \clef "bass"
         <<
         {
-          \once \override DynamicText #'X-offset = #-3
+          \once \override DynamicText.X-offset = #-3
           <ees g c>2.~->^\f
           <ees g c>4.~ <ees g c>8
         } \\ {
@@ -609,9 +609,9 @@ de las tres configuraciones elegiríamos para la siguiente ligadura?
 @lilypond
 \relative c {
   \clef bass
-  \once \override Slur #'positions = #'(1.5 . 1)
+  \once \override Slur.positions = #'(1.5 . 1)
   e8[( f] g[ a b d,)] r4
-  \once \override Slur #'positions = #'(2 . 3)
+  \once \override Slur.positions = #'(2 . 3)
   e8[( f] g[ a b d,)] r4
   e8[( f] g[ a b d,)] r4
 }
@@ -653,7 +653,7 @@ rozar la cabeza de una de las figuras:
 @lilypond
 \relative c {
   \clef bass
-  \once \override Slur #'positions = #'(1.5 . 1)
+  \once \override Slur.positions = #'(1.5 . 1)
   e8[(_"15.39" f] g[ a b d,)] r4
 }
 @end lilypond
@@ -667,7 +667,7 @@ de fealdad:
 @lilypond
 \relative c {
   \clef bass
-  \once \override Slur #'positions = #'(2 . 3)
+  \once \override Slur.positions = #'(2 . 3)
   e8[(_"13.08" f] g[ a b d,)] r4
 }
 @end lilypond
@@ -889,7 +889,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'staff-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }
@@ -911,7 +911,7 @@ voces superior e inferior intercambian temporalmente sus posiciones:
 
 @c KEEP LY
 @lilypond
-collide = \once \override NoteColumn #'force-hshift = #0
+collide = \once \override NoteColumn.force-hshift = #0
 
 \score {
   <<
@@ -1174,8 +1174,8 @@ aparente si tenemos en cuenta un ejemplo musical más complejo:
         \change Staff = "LH" \oneVoice
         \stemUp g,( c}
       r4
-      \override Stem #'cross-staff = ##t
-      \override Stem #'length = #12
+      \override Stem.cross-staff = ##t
+      \override Stem.length = #12
       <fis, b>) r\fermata
     }
   >>
@@ -1463,14 +1463,14 @@ tiene todas las direcciones hacia arriba (o hacia la derecha).
 \score {
   \relative c' {
     \stemDown <e g b>4_>-\arpeggio
-    \override Arpeggio #'direction = #RIGHT
+    \override Arpeggio.direction = #RIGHT
     \stemUp <e g b>4^>-\arpeggio
   }
   \layout {
     \context {
       \Score
-      \override SpacingSpanner #'spacing-increment = #3
-      \override TimeSignature #'transparent = ##t
+      \override SpacingSpanner.spacing-increment = #3
+      \override TimeSignature.transparent = ##t
     }
   }
 }
@@ -1496,12 +1496,12 @@ fragment = {
 <<
    \new Staff \fragment
    \new Staff \with {
-      \override Beam #'beam-thickness = #0.3
-      \override Stem #'thickness = #0.5
-      \override Bar #'thickness = #3.6
-      \override Tie #'thickness = #2.2
-      \override StaffSymbol #'thickness = #3.0
-      \override Tie #'extra-offset = #'(0 .  0.3)
+      \override Beam.beam-thickness = #0.3
+      \override Stem.thickness = #0.5
+      \override Bar.thickness = #3.6
+      \override Tie.thickness = #2.2
+      \override StaffSymbol.thickness = #3.0
+      \override Tie.extra-offset = #'(0 .  0.3)
       }
       \fragment
 >>
@@ -1537,12 +1537,12 @@ a lo largo del fragmento musical.
   \set autoBeaming = ##f
   \time 2/4
   <d f g>4
-  \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
-  \once \override NoteHead #'font-size = #-7
-  \once \override NoteHead #'font-family = #'sans
-  \once \override NoteHead #'font-series = #'bold
+  \once \override NoteHead.stencil = #note-head::brew-ez-stencil
+  \once \override NoteHead.font-size = #-7
+  \once \override NoteHead.font-family = #'sans
+  \once \override NoteHead.font-series = #'bold
   <d f g>4
-  \once \override NoteHead #'style = #'cross
+  \once \override NoteHead.style = #'cross
   <d f g>4
   \applyOutput #'Voice #mc-squared
   <d f g>4
@@ -1608,7 +1608,7 @@ ejemplo siguiente combina unas pocas construcciones algo más exóticas.
       \time 4/8
       \key c \minor
       << {
-        \revert Stem #'direction
+        \revert Stem.direction
         \change Staff = down
         \set subdivideBeams = ##t
         g16.[
@@ -1637,16 +1637,16 @@ ejemplo siguiente combina unas pocas construcciones algo más exóticas.
       \clef bass
       \key c \minor
       \set subdivideBeams = ##f
-      \override Stem  #'french-beaming = ##t
-      \override Beam  #'beam-thickness = #0.3
-      \override Stem  #'thickness = #4.0
+      \override Stem.french-beaming = ##t
+      \override Beam.beam-thickness = #0.3
+      \override Stem.thickness = #4.0
       g'16[ b16 fis16 g16]
       << \makeClusters {
         as16 <as b>
         <g b>
         <g cis>
       } \\ {
-        \override Staff.Arpeggio  #'arpeggio-direction =#down
+        \override Staff.Arpeggio.arpeggio-direction =#down
         <cis, e, gis, b, cis>4\arpeggio
       }
     >> }
@@ -1830,7 +1830,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'staff-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }
diff --git a/Documentation/es/extending/GNUmakefile b/Documentation/es/extending/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index cdbb9365b8ae853df2a8b81a295a19e2bf658de5..5f72bd8735d235e1e8039f7e2f9c53c299beb50b 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Interfaces para programadores
 @chapter Interfaces para programadores
@@ -407,7 +407,7 @@ barraManual =
      (parser location principio-final)
      (pair?)
    #@{
-     \once \override Beam #'positions = #principio-final
+     \once \override Beam.positions = #principio-final
    #@})
 
 \relative c' @{
@@ -425,7 +425,7 @@ manualBeam =
      (parser location beg end)
      (number? number?)
    #{
-     \once \override Beam #'positions = #(cons beg end)
+     \once \override Beam.positions = #(cons beg end)
    #})
 
 \relative c' {
@@ -447,14 +447,14 @@ AltOn =
      (parser location mag)
      (number?)
    #{
-     \override Stem #'length = #(* 7.0 mag)
-     \override NoteHead #'font-size =
+     \override Stem.length = #(* 7.0 mag)
+     \override NoteHead.font-size =
        #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
    #})
 
 AltOff = {
-  \revert Stem #'length
-  \revert NoteHead #'font-size
+  \revert Stem.length
+  \revert NoteHead.font-size
 }
 
 \relative c' {
@@ -473,12 +473,12 @@ withAlt =
      (parser location mag music)
      (number? ly:music?)
    #{
-     \override Stem #'length = #(* 7.0 mag)
-     \override NoteHead #'font-size =
+     \override Stem.length = #(* 7.0 mag)
+     \override NoteHead.font-size =
        #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
      #music
-     \revert Stem #'length
-     \revert NoteHead #'font-size
+     \revert Stem.length
+     \revert NoteHead.font-size
    #})
 
 \relative c' {
@@ -508,7 +508,7 @@ mostrarNumeroDeCompas =
      (parser location)
      ()
    (if (eq? #t (ly:get-option 'display-bar-numbers))
-       #@{ \once \override Score.BarNumber #'break-visibility = ##f #@}
+       #@{ \once \override Score.BarNumber.break-visibility = ##f #@}
        #@{#@}))
 @end example
 
@@ -1179,13 +1179,13 @@ Las propiedades (como @code{thickness} (grosor), @code{direction}
 p. ej.:
 
 @example
-\override Stem #'thickness = #2.0
+\override Stem.thickness = #2.0
 @end example
 
 Las propiedades pueden fijarse también a un procedimiento de Scheme,
 
 @lilypond[fragment,verbatim,quote,relative=2]
-\override Stem #'thickness = #(lambda (grob)
+\override Stem.thickness = #(lambda (grob)
     (if (= UP (ly:grob-property grob 'direction))
         2.0
         7.0))
@@ -1264,7 +1264,7 @@ La principal desventaja de @code{\tweak} es su inflexibilidad
 sintáctica.  Por ejemplo, lo siguiente produce un error de sintaxis.
 
 @example
-F = \tweak #'font-size #-3 -\flageolet
+F = \tweak font-size #-3 -\flageolet
 
 \relative c'' @{
   c4^\F c4_\F
@@ -1362,7 +1362,7 @@ arriba.
          (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
 
 \relative c'' {
-  \override Tie #'after-line-breaking =
+  \override Tie.after-line-breaking =
   #my-callback
   c1 ~ \break
   c2 ~ c
@@ -1385,7 +1385,7 @@ razones técnicas.  Son ejemplos @code{NonMusicalPaperColumn} y
 
 @example
 \overrideProperty
-#"Score.NonMusicalPaperColumn"  % Nombre del grob
+Score.NonMusicalPaperColumn  % Nombre del grob
 #'line-break-system-details     % Nombre de la propiedad
 #'((next-padding . 20))         % Valor
 @end example
index fdc27da0cc948669a1b0d5add5262fd8afcdf01a..1081c7560df9182b1672ef28354261bc824d494b 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Tutorial de Scheme
 @appendix Tutorial de Scheme
@@ -960,7 +960,7 @@ asignación de un valor a la lista-A con una clave y un valor.  La
 sintaxis de LilyPond para hacer esto es la siguiente:
 
 @example
-\override Stem #'thickness = #2.6
+\override Stem.thickness = #2.6
 @end example
 
 Esta instrucción ajusta el aspecto de las plicas.  Se añade una
@@ -994,7 +994,7 @@ como @emph{parejas}.  El @code{car} del desplazamiento es la
 coordenada X, y el @code{cdr} es la coordenada Y.
 
 @example
-\override TextScript #'extra-offset = #'(1 . 2)
+\override TextScript.extra-offset = #'(1 . 2)
 @end example
 
 Esto asigna la pareja @code{(1 . 2)} a la propiedad
@@ -1580,8 +1580,7 @@ Podemos verificar que esta función musical funciona correctamente:
 @c @transl ationof Tweaking with Scheme
 
 Hemos visto cómo la salida de LilyPond se puede modificar
-profundamente usando instrucciones como @code{\override TextScript
-#'extra-offset = ( 1 . -1)}.  Pero tenemos incluso mucho más poder si
+profundamente usando instrucciones como @code{\override TextScript.extra-offset = ( 1 . -1)}.  Pero tenemos incluso mucho más poder si
 utilizamos Scheme.  Para ver una explicación completa de esto,
 consulte el @ref{Tutorial de Scheme}, y @ruser{Interfaces para programadores}.
 
@@ -1597,7 +1596,7 @@ TODO Find a simple example
 @lilypond[quote,verbatim,ragged-right]
 padText = #(define-music-function (parser location padding) (number?)
 #{
-  \once \override TextScript #'padding = #padding
+  \once \override TextScript.padding = #padding
 #})
 
 \relative c''' {
@@ -1621,7 +1620,7 @@ Lo podemos usar para crear instrucciones nuevas:
 tempoPadded = #(define-music-function (parser location padding tempotext)
   (number? markup?)
 #{
-  \once \override Score.MetronomeMark #'padding = #padding
+  \once \override Score.MetronomeMark.padding = #padding
   \tempo \markup { \bold #tempotext }
 #})
 
diff --git a/Documentation/es/included/GNUmakefile b/Documentation/es/included/GNUmakefile
deleted file mode 100644 (file)
index afe7a4d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth = ../../..
-
-STEPMAKE_TEMPLATES=documentation
-
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ly)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/es/learning/GNUmakefile b/Documentation/es/learning/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index be1aafaa8e3f5c1059c7857aa5f1f53f7739ede0..7d3acac3e9119ff87cb51585970707a8690d6888 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Conceptos fundamentales
@@ -844,15 +844,15 @@ las complicaciones se explicarán en secciones posteriores).
   \\  % Voice two
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No voice three
   \\  % Voice four
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -893,15 +893,15 @@ entienda.
   \\  % Voice two
     { \voiceTwoStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No Voice three (we want stems down)
   \\  % Voice four
     { \voiceThreeStyle
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -2991,8 +2991,7 @@ forma que los valores sean idénticos.
         @}
       >>  % % fin del contexto de Staff ManualUno
       \new Staff = "ManualDos" \with @{
-        \override VerticalAxisGroup
-          #'staff-staff-spacing  #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       @} <<
         \keyTime
         \clef "bass"
@@ -3056,8 +3055,7 @@ PedalOrganMusic = \relative c {
         }
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with {
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       } <<
         \keyTime
         \clef "bass"
@@ -3127,7 +3125,7 @@ usuario) para hacer trucos:
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
 
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
 fthenp =_\markup {
   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
 }
@@ -3159,7 +3157,7 @@ leer, sobre todo la última línea.
 violin = \relative c'' @{
   \repeat volta 2 @{
     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
-    \once \override TextScript #'padding = #5.0
+    \once \override TextScript.padding = #5.0
     c4.^"hi there!" d8 e' f g d |
     c,4.\markup @{
       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
@@ -3186,7 +3184,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
index 11ee26a348ac6a57ca95cb3c57fbddcd0c509b2b..cf881eb53b01eb89b20e6fb0fb4afd344e136cab 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Trucar la salida
 @chapter Trucar la salida
@@ -242,9 +242,9 @@ una cabeza:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a b c |
 @end lilypond
 
@@ -277,11 +277,11 @@ dos últimas notas:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b4 c |
 @end lilypond
 
@@ -304,11 +304,11 @@ podemos cambiar el color de una sola nota de la siguiente manera:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\once \override NoteHead #'color = #green
+\once \override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b c |
 @end lilypond
 
@@ -350,7 +350,7 @@ primer lugar, veamos lo que haría @code{\once \override}:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-\once \override NoteHead #'font-size = #-3
+\once \override NoteHead.font-size = #-3
 <c e g>4
 <c e g>4
 @end lilypond
@@ -377,7 +377,7 @@ se cambiaría de la siguiente forma:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-<c \tweak #'font-size #-3 e g>4
+<c \tweak font-size #-3 e g>4
 @end lilypond
 
 Observe que la sintaxis de @code{\tweak} no es igual que la de
@@ -400,8 +400,8 @@ sólo una de una serie de articulaciones, como se muestra aquí:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4^"Black"
-  -\tweak #'color #red ^"Red"
-  -\tweak #'color #green _"Green"
+  -\tweak color #red ^"Red"
+  -\tweak color #green _"Green"
 @end lilypond
 
 @noindent
@@ -422,8 +422,8 @@ presentación, siempre y cuando LilyPond pueda rastrear su origen hasta
 el evento original:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<\tweak Accidental #'color #red   cis4
- \tweak Accidental #'color #green es
+<\tweak Accidental.color #red   cis4
+ \tweak Accidental.color #green es
                                   g>
 @end lilypond
 
@@ -459,9 +459,9 @@ tresillo corto.
 @cindex color, propiedad, ejemplo
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\tweak #'direction #up
+\tweak direction #up
 \times 4/3 {
-  \tweak #'color #red
+  \tweak color #red
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
@@ -481,12 +481,11 @@ se puede modificar de la forma usual mediante instrucciones
 @c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \times 2/3 { c8[ c c] }
-\once \override TupletNumber
-  #'text = #tuplet-number::calc-fraction-text
+\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
 \times 2/3 {
   c8[ c]
   c8[ c]
-  \once \override TupletNumber #'transparent = ##t
+  \once \override TupletNumber.transparent = ##t
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
 }
@@ -632,7 +631,7 @@ seguros de que la instrucción está funcionando.  Obtenemos lo
 siguiente:
 
 @example
-\override Slur #'thickness = #5.0
+\override Slur.thickness = #5.0
 @end example
 
 ¡No olvide el @code{#'} antes del nombre de la propiedad y@tie{}@code{#}
@@ -652,7 +651,7 @@ cerca de ella.}  Hagámoslo así:
   \time 6/8
   {
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     r4 bes8 bes[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -727,7 +726,7 @@ siguiente:
   {
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes8[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -768,10 +767,10 @@ ligaduras:
   {
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes[( g]) g |
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     g8[( es]) es d[( f]) as |
     as8 g
   }
@@ -797,11 +796,11 @@ segunda ligadura:
   {
     r4 bes8
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     bes[( g]) g |
     g8[( es]) es
     % Revert thickness of all following slurs to default of 1.2
-    \revert Slur #'thickness
+    \revert Slur.thickness
     d8[( f]) as |
     as8 g
   }
@@ -901,7 +900,7 @@ Así pues, la instrucción @code{\override} necesaria para imprimir la
 letra en cursiva, es:
 
 @example
-\override LyricText #'font-shape = #'italic
+\override LyricText.font-shape = #'italic
 @end example
 
 @noindent
@@ -923,7 +922,7 @@ de esta forma:
     as8 g
   }
   \addlyrics {
-    \override LyricText #'font-shape = #'italic
+    \override LyricText.font-shape = #'italic
     The man who | feels love's sweet e -- | mo -- tion
   }
 }
@@ -950,7 +949,7 @@ se juntarán y el intérprete no podrá reconocerlos.  Así pues, la
 instrucción será:
 
 @example
-\override Lyrics . LyricText #'font-shape = #'italic
+\override Lyrics.LyricText.font-shape = #'italic
 @end example
 
 @warning{Dentro de la letra, deje siempre espacios entre la sílaba
@@ -1102,7 +1101,7 @@ antes, omitiendo el Contexto implícito, @code{Voice}:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override BarLine #'stencil = ##f
+  \override BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1130,7 +1129,7 @@ intentar corregirlo escribiendo el contexto correcto:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'stencil = ##f
+  \override Staff.BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1150,7 +1149,7 @@ que establece el sello a un objeto con tamaño nulo:
 @lilypond[quote,verbatim,relative=2]
 {
   c4 c
-  \once \override NoteHead #'stencil = #point-stencil
+  \once \override NoteHead.stencil = #point-stencil
   c4 c
 }
 @end lilypond
@@ -1178,7 +1177,7 @@ en sí dentro de la instrucción @code{\override}.
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
+  \override Staff.BarLine.break-visibility = #'#(#f #f #f)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1212,7 +1211,7 @@ a la indicación de compás es:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'transparent = ##t
+  \override Staff.TimeSignature.transparent = ##t
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1233,7 +1232,7 @@ compás se debe establecer al valor @code{#f}:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1274,7 +1273,7 @@ poner las líneas divisorias de color blanco, escribimos:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #white
+  \override Staff.BarLine.color = #white
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1307,7 +1306,7 @@ internos, @code{x11-color}, de la siguiente manera:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(x11-color 'white)
+  \override Staff.BarLine.color = #(x11-color 'white)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1337,7 +1336,7 @@ valor debe ser @code{(rgb-color 1 0 0)} y para blanco debe ser
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(rgb-color 1 1 1)
+  \override Staff.BarLine.color = #(rgb-color 1 1 1)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1362,12 +1361,12 @@ varias gradaciones de gris:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
-  \override Staff.TimeSignature #'color = #(x11-color 'grey60)
-  \override Staff.Clef          #'color = #(x11-color 'grey60)
-  \override Voice.NoteHead      #'color = #(x11-color 'grey85)
-  \override Voice.Stem          #'color = #(x11-color 'grey85)
-  \override Staff.BarLine       #'color = #(x11-color 'grey10)
+  \override Staff.StaffSymbol.color = #(x11-color 'grey30)
+  \override Staff.TimeSignature.color = #(x11-color 'grey60)
+  \override Staff.Clef.color = #(x11-color 'grey60)
+  \override Voice.NoteHead.color = #(x11-color 'grey85)
+  \override Voice.Stem.color = #(x11-color 'grey85)
+  \override Staff.BarLine.color = #(x11-color 'grey10)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1439,8 +1438,8 @@ el sello de cada uno de ellos a @code{#f}, como sigue:
         alignAboveContext = #"main"
       }
       {
-        \override Staff.Clef #'stencil = ##f
-        \override Staff.TimeSignature #'stencil = ##f
+        \override Staff.Clef.stencil = ##f
+        \override Staff.TimeSignature.stencil = ##f
         { f8 f c }
       }
     >>
@@ -1501,9 +1500,9 @@ Así pues, podemos reemplazar el ejemplo anterior con
       \new Staff \with {
         alignAboveContext = #"main"
         % Don't print clefs in this staff
-        \override Clef #'stencil = ##f
+        \override Clef.stencil = ##f
         % Don't print time signatures in this staff
-        \override TimeSignature #'stencil = ##f
+        \override TimeSignature.stencil = ##f
       }
       { f8 f c }
     >>
@@ -1537,7 +1536,7 @@ cambiar el tamaño de las tipografías de cada uno de los tipos de
 objeto como las cabezas (@code{NoteHead}s) con instrucciones como
 
 @example
-\override NoteHead #'font-size = #-2
+\override NoteHead.font-size = #-2
 @end example
 
 o podemos cambiar el tamaño de todas las tipografías estableciendo una
@@ -1570,8 +1569,8 @@ Vamos a probarlo en nuestro ejemplo del ossia:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         % Reduce all font sizes by ~24%
         fontSize = #-2
       }
@@ -1639,11 +1638,11 @@ siguiente forma:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         fontSize = #-2
         % Reduce stem length and line spacing to match
-        \override StaffSymbol #'staff-space = #(magstep -2)
+        \override StaffSymbol.staff-space = #(magstep -2)
       }
       { f8 f c }
     >>
@@ -1817,11 +1816,11 @@ comportamiento predeterminado.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4 g c a |
-\override Stem #'direction = #DOWN
+\override Stem.direction = #DOWN
 a4 g c a |
-\override Stem #'direction = #UP
+\override Stem.direction = #UP
 a4 g c a |
-\revert Stem #'direction
+\revert Stem.direction
 a4 g c a |
 @end lilypond
 
@@ -1910,9 +1909,9 @@ siguiente el efecto de especificar @code{DOWN} y @code{UP}:
 
 @lilypond[quote,verbatim,relative=2]
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #DOWN
+\override Fingering.direction = #DOWN
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #UP
+\override Fingering.direction = #UP
 c4-5 a-3 f-1 c'-5 |
 @end lilypond
 
@@ -2018,7 +2017,7 @@ objeto @code{Fingering} del RFI que es @w{@code{-5}}, así que probaremos
 @w{@code{-7}}:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering #'font-size = #-7
+\override Fingering.font-size = #-7
 \set fingeringOrientations = #'(left)
 <f-2>4
 <c-1 e-2 g-3 b-5>4
@@ -2121,7 +2120,7 @@ de ellos.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
@@ -2172,12 +2171,12 @@ recordando que @code{OttavaBracket} se crea dentro del contexto de
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
 % Place following Ottava Bracket below Text Spanners
-\once \override Staff.OttavaBracket #'outside-staff-priority = #340
+\once \override Staff.OttavaBracket.outside-staff-priority = #340
 % Start Ottava Bracket
 \ottava #1
 c'4 \startTextSpan
@@ -2223,10 +2222,10 @@ que muestra el efecto de los dos métodos:
 @lilypond[quote,verbatim,relative=2]
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 c4(
-\once \override TextScript #'avoid-slur = #'inside
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.avoid-slur = #'inside
+\once \override TextScript.outside-staff-priority = ##f
 c4^\markup { \tiny \sharp } d4.) c8 |
-\once \override Slur #'outside-staff-priority = #500
+\once \override Slur.outside-staff-priority = #500
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 @end lilypond
 
@@ -2245,7 +2244,7 @@ aumentar la prioridad de @qq{Text3} hasta un valor superior:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c2^"Text2" |
-\once \override TextScript #'outside-staff-priority = #500
+\once \override TextScript.outside-staff-priority = #500
 c2^"Text3"
 c2^"Text4" |
 @end lilypond
@@ -2308,12 +2307,12 @@ c,,2^"Text" c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 c,,2^"Long Text   " c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 \textLengthOn        % and turn on textLengthOn
 c,,2^"Long Text   "  % Spaces at end are honored
 c''2 |
@@ -2395,7 +2394,7 @@ sobreescribir este valor de @code{extra-spacing-width} a @code{'(0
 instrucción que lo hace para las indicaciones dinámicas:
 
 @example
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 @end example
 
 @noindent
@@ -2406,7 +2405,7 @@ Veamos si funciona en nuestro ejemplo anterior:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 a4\f b\mf c\mp b\p |
 @end lilypond
 
@@ -2427,7 +2426,7 @@ unidad hacia la derecha, deberíamos conseguirlo:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 staff space
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2724,7 +2723,7 @@ notas.
 
 @lilypond[quote,fragment,relative=1,verbatim]
 c2\fermata
-\override Script #'padding = #3
+\override Script.padding = #3
 b2\fermata
 @end lilypond
 
@@ -2733,11 +2732,11 @@ b2\fermata
 
 @lilypond[quote,fragment,relative=1,verbatim]
 % This will not work, see below
-\override MetronomeMark #'padding = #3
+\override MetronomeMark.padding = #3
 \tempo 4 = 120
 c1 |
 % This works
-\override Score.MetronomeMark #'padding = #3
+\override Score.MetronomeMark.padding = #3
 \tempo 4 = 80
 d1 |
 @end lilypond
@@ -2779,15 +2778,13 @@ sesquisharp = \markup { \sesquisharp }
 \relative c'' {
   c4
   % This prints a sesquisharp but the spacing is too small
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 c
   % This improves the spacing
-  \once \override Score.AccidentalPlacement #'right-padding = #0.6
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Score.AccidentalPlacement.right-padding = #0.6
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 |
 }
 @end lilypond
@@ -2826,9 +2823,9 @@ matiz en el ejemplo de la sección anterior:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 unit
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 % Align dynamics to a base line 2 units above staff
-\override DynamicLineSpanner #'staff-padding = #2
+\override DynamicLineSpanner.staff-padding = #2
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2846,7 +2843,7 @@ de la nota «padre»:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
 <a\2>
-\once \override StringNumber #'self-alignment-X = #RIGHT
+\once \override StringNumber.self-alignment-X = #RIGHT
 <a\2>
 @end lilypond
 
@@ -2880,7 +2877,7 @@ cuatro semi-espacios de pentagrama, al valor @w{@code{-8}}.
 <<
   { c4 c c c }
   \\
-  \override MultiMeasureRest #'staff-position = #-8
+  \override MultiMeasureRest.staff-position = #-8
   { R1 }
 >>
 @end lilypond
@@ -2907,7 +2904,7 @@ a la izquierda, y 1.8 espacios de pentagrama hacia abajo:
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f4-5
-\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
 f4-5
 @end lilypond
 
@@ -2952,7 +2949,7 @@ resuelve la forma algo indecente de la ligadura.
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
-\once \override PhrasingSlur #'positions = #'(-4 . -3)
+\once \override PhrasingSlur.positions = #'(-4 . -3)
 \acciaccatura e8\( d8 c~ c d c d\)
 @end lilypond
 
@@ -2990,7 +2987,7 @@ central hasta, digamos, 1 espacio:
     { c'1 ~ c'2. e'8 f' }
     \\
     {
-      \override Beam #'positions = #'(-1 . -1)
+      \override Beam.positions = #'(-1 . -1)
       e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
     }
   >>
@@ -3053,13 +3050,13 @@ Presentamos a continuación el resultado final:
     \\
     {
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
     \\
     \\
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -3094,7 +3091,7 @@ quitado las indicaciones dinámicas, las digitaciones y el pedal.
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3107,7 +3104,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column
         % so the merge will work
         \shiftOnn
@@ -3119,8 +3116,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3301,7 +3298,7 @@ siguiente colocada justo antes de la primera nota ligada subirá la
 ligadura 3.5 medios espacios de pentagrama por encima de la línea
 central:
 
-@code{\once \override Tie #'staff-position = #3.5}
+@code{\once \override Tie.staff-position = #3.5}
 
 Con esto se completa el compás dos, dando como resultado:
 
@@ -3310,7 +3307,7 @@ Con esto se completa el compás dos, dando como resultado:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3391,7 +3388,7 @@ al final, dando como resultado:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3466,7 +3463,7 @@ aplicar estos cambios obtenemos:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3537,7 +3534,7 @@ final:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3551,7 +3548,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column
         % so the merge will work
         \shiftOnn
@@ -3563,8 +3560,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3648,8 +3645,8 @@ de que la ligadura se cruza entre las voces:
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
     b8~ b\noBeam
   }
 \\
@@ -3664,9 +3661,9 @@ valor de longitud @code{length} a @code{8},
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
-    \tweak Stem #'length #8
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
+    \tweak Stem.length #8
     b8~ b\noBeam
   }
 \\
@@ -3705,7 +3702,7 @@ los dos métodos:
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'transparent = ##t
+    \once \override Score.MetronomeMark.transparent = ##t
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata |
@@ -3727,7 +3724,7 @@ los dos métodos:
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'stencil = ##f
+    \once \override Score.MetronomeMark.stencil = ##f
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata |
@@ -3776,11 +3773,11 @@ alternativa, utilizar las instrucciones @code{\override} y
 @code{\revert}?
 
 @example
-@code{\override Lyrics . LyricText #'font-shape = #'italic}
-@code{\override Lyrics . LyricText #'font-series = #'bold}
+@code{\override Lyrics.LyricText.font-shape = #'italic}
+@code{\override Lyrics.LyricText.font-series = #'bold}
 
-@code{\revert Lyrics . LyricText #'font-shape}
-@code{\revert Lyrics . LyricText #'font-series}
+@code{\revert Lyrics.LyricText.font-shape}
+@code{\revert Lyrics.LyricText.font-series}
 @end example
 
 Estas instrucciones también serían extremadamente tediosas de escribir
@@ -3799,13 +3796,13 @@ más cortos para que fueran más rápidos de teclear:
 
 @lilypond[quote,verbatim]
 emphasize = {
-  \override Lyrics.LyricText #'font-shape = #'italic
-  \override Lyrics.LyricText #'font-series = #'bold
+  \override Lyrics.LyricText.font-shape = #'italic
+  \override Lyrics.LyricText.font-series = #'bold
 }
 
 normal = {
-  \revert Lyrics.LyricText #'font-shape
-  \revert Lyrics.LyricText #'font-series
+  \revert Lyrics.LyricText.font-shape
+  \revert Lyrics.LyricText.font-series
 }
 
 global = { \key c \major \time 4/4 \partial 4 }
@@ -3995,17 +3992,17 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4028,17 +4025,17 @@ inst =
 \layout{
   \context {
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context {
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   }
   \context {
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4081,16 +4078,16 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4114,12 +4111,12 @@ inst =
 
 \layout{
   \context { \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context { \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4246,8 +4243,8 @@ es:
 
 @example
 tieDotted = @{
-  \override Tie #'dash-period = #0.75
-  \override Tie #'dash-fraction = #0.1
+  \override Tie.dash-period = #0.75
+  \override Tie.dash-fraction = #0.1
 @}
 @end example
 
@@ -4350,7 +4347,7 @@ notas un color que depende de su posición dentro del pentagrama.
 
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
-  \override NoteHead #'color = #color-notehead
+  \override NoteHead.color = #color-notehead
   a2 b | c2 d | e2 f | g2 a |
 }
 @end lilypond
diff --git a/Documentation/es/notation/GNUmakefile b/Documentation/es/notation/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 627df0ccf55e44ce198589384d4415bbfbe8a63a..8e3d93bd65accebc0f9fc8e233302cf4ae004870 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Notación antigua
 @section Notación antigua
@@ -309,7 +309,7 @@ muestra en el ejemplo siguiente:
     \context {
       \Staff
       \consists "Custos_engraver"
-      \override Custos #'style = #'mensural
+      \override Custos.style = #'mensural
     }
   }
 }
@@ -402,7 +402,7 @@ escribir el canto, como lo demuestra el siguiente fragmento:
 \score {
   <<
     \new MensuralVoice = "discantus" \transpose c c' {
-      \override Score.BarNumber #'transparent = ##t {
+      \override Score.BarNumber.transparent = ##t {
         c'1\melisma bes a g\melismaEnd
         f\breve
         \[ f1\melisma a c'\breve d'\melismaEnd \]
@@ -460,7 +460,7 @@ clave de Do, mensural
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-c2"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -471,7 +471,7 @@ clave de Fa, mensural
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-f"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -482,7 +482,7 @@ clave de Sol, mensural
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-g"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -506,7 +506,7 @@ de la pauta (el ejemplo muestra la clave de Do en segunda)
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-c2"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -520,7 +520,7 @@ distintas líneas de la pauta
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-f3"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -531,7 +531,7 @@ clave de Sol en el estilo de Petrucci
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-g"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 @end multitable
@@ -622,18 +622,18 @@ que existen entre los estilos:
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter default }
 
-  \override Staff.TimeSignature #'style = #'numbered
+  \override Staff.TimeSignature.style = #'numbered
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter numbered }
 
-  \override Staff.TimeSignature #'style = #'mensural
+  \override Staff.TimeSignature.style = #'mensural
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter mensural }
 
-  \override Staff.TimeSignature #'style = #'neomensural
+  \override Staff.TimeSignature.style = #'neomensural
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter neomensural }
-  \override Staff.TimeSignature #'style = #'single-digit
+  \override Staff.TimeSignature.style = #'single-digit
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter single-digit }
 }
@@ -721,13 +721,13 @@ El ejemplo siguiente muestra el estilo @code{petrucci}:
 @lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
 \autoBeamOff
-\override NoteHead #'style = #'petrucci
+\override NoteHead.style = #'petrucci
 a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a'
-\override NoteHead #'style = #'semipetrucci
+\override NoteHead.style = #'semipetrucci
 a'\breve*5/6
-\override NoteHead #'style = #'blackpetrucci
+\override NoteHead.style = #'blackpetrucci
 a'8*4/3 a'
-\override NoteHead #'style = #'petrucci
+\override NoteHead.style = #'petrucci
 a'\longa
 @end lilypond
 
@@ -756,9 +756,9 @@ Aparte del estilo de corchete por defecto @code{default}, sólo está
 contemplado el estilo @code{mensural}
 
 @lilypond[quote,fragment,ragged-right,verbatim]
-\override Flag #'style = #'mensural
-\override Stem #'thickness = #1.0
-\override NoteHead #'style = #'mensural
+\override Flag.style = #'mensural
+\override Stem.thickness = #1.0
+\override NoteHead.style = #'mensural
 \autoBeamOff
 c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8
 c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32
@@ -811,11 +811,11 @@ El ejemplo siguiente muestra los estilos @code{mensural} y
 
 @lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
-\override Rest #'style = #'classical
+\override Rest.style = #'classical
 r\longa^"classical" r\breve r1 r2 r4 r8 r16 s \break
-\override Rest #'style = #'mensural
+\override Rest.style = #'mensural
 r\longa^"mensural" r\breve r1 r2 r4 r8 r16 s \break
-\override Rest #'style = #'neomensural
+\override Rest.style = #'neomensural
 r\longa^"neomensural" r\breve r1 r2 r4 r8 r16
 @end lilypond
 
@@ -868,7 +868,7 @@ elementos gráficos @code{Accidental} y
 @code{KeySignature}, respectivamente; p.ej.:
 
 @example
-\override Staff.Accidental #'glyph-name-alist =
+\override Staff.Accidental.glyph-name-alist =
   #alteration-mensural-glyph-name-alist
 @end example
 
@@ -984,9 +984,9 @@ Por ejemplo:
 
 @c @example
 @c \set Score.timing = ##f
-@c \set Score.defaultBarType = "empty"
-@c \override NoteHead #'style = #'neomensural
-@c \override Staff.TimeSignature #'style = #'neomensural
+@c \set Score.defaultBarType = "-"
+@c \override NoteHead.style = #'neomensural
+@c \override Staff.TimeSignature.style = #'neomensural
 @c \clef "petrucci-g"
 @c \[ c'\maxima g \]
 @c \[ d\longa c\breve f e d \]
@@ -997,14 +997,14 @@ Por ejemplo:
 \score {
   \transpose c c' {
     \set Score.timing = ##f
-    \set Score.defaultBarType = "empty"
-    \override NoteHead #'style = #'petrucci
-    \override Staff.TimeSignature #'style = #'mensural
+    \set Score.defaultBarType = "-"
+    \override NoteHead.style = #'petrucci
+    \override Staff.TimeSignature.style = #'mensural
     \clef "petrucci-g"
     \[ c'\maxima g \]
     \[ d\longa
-       \override NoteHead #'ligature-flexa = ##t
-       \once \override NoteHead #'flexa-width = #3.2
+       \override NoteHead.ligature-flexa = ##t
+       \once \override NoteHead.flexa-width = #3.2
        c\breve f e d \]
     \[ c'\maxima d'\longa \]
     \[ e'1 a g\breve \]
@@ -1026,14 +1026,14 @@ transcribe de la siguiente manera:
 @lilypond[quote,ragged-right]
 \transpose c c' {
   \set Score.timing = ##f
-  \set Score.defaultBarType = "empty"
-  \override NoteHead #'style = #'petrucci
-  \override Staff.TimeSignature #'style = #'mensural
+  \set Score.defaultBarType = "-"
+  \override NoteHead.style = #'petrucci
+  \override Staff.TimeSignature.style = #'mensural
   \clef "petrucci-g"
   \[ c'\maxima g \]
   \[ d\longa
-     \override NoteHead #'ligature-flexa = ##t
-     \once \override NoteHead #'flexa-width = #3.2
+     \override NoteHead.ligature-flexa = ##t
+     \once \override NoteHead.flexa-width = #3.2
      c\breve f e d \]
   \[ c'\maxima d'\longa \]
   \[ e'1 a g\breve \]
@@ -1158,12 +1158,12 @@ Clave de Do, estilo Editio Vaticana
 @code{vaticana-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'vaticana.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'vaticana.punctum
   \clef "vaticana-do2"
   c
 @end lilypond
@@ -1174,12 +1174,12 @@ Clave de Fa, estilo Editio Vaticana
 @code{vaticana-fa1}, @code{vaticana-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'vaticana.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'vaticana.punctum
   \clef "vaticana-fa2"
   c
 @end lilypond
@@ -1191,12 +1191,12 @@ Clave de Do, estilo Editio Medicaea
 @code{medicaea-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'medicaea.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'medicaea.punctum
   \clef "medicaea-do2"
   c
 @end lilypond
@@ -1207,12 +1207,12 @@ Clave de Fa, estilo Editio Medicaea
 @code{medicaea-fa1}, @code{medicaea-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'medicaea.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'medicaea.punctum
   \clef "medicaea-fa2"
   c
 @end lilypond
@@ -1224,12 +1224,12 @@ Clave de Do, estilo hufnagel
 @code{hufnagel-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-do2"
   c
 @end lilypond
@@ -1240,12 +1240,12 @@ Clave de Fa, estilo hufnagel
 @code{hufnagel-fa1}, @code{hufnagel-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-fa2"
   c
 @end lilypond
@@ -1256,11 +1256,11 @@ Clave combinada de Do y Fa, estilo hufnagel
 @code{hufnagel-do-fa}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-do-fa"
   c
 @end lilypond
@@ -1314,7 +1314,7 @@ gráficos) @rinternals{Accidental} y @rinternals{KeySignature},
 respectivamente; p.ej.:
 
 @example
-\override Staff.Accidental #'glyph-name-alist =
+\override Staff.Accidental.glyph-name-alist =
   #alteration-mensural-glyph-name-alist
 @end example
 
@@ -1368,7 +1368,7 @@ instrucciones @code{\virgula} y @code{\caesura}.
 \score {
   <<
     \context VaticanaVoice {
-      \override TextScript  #'padding = #3
+      \override TextScript.padding = #3
       g a g
       s^\markup { "divisio minima" }
       \divisioMinima
@@ -1437,9 +1437,9 @@ notación en el estilo de la @emph{Editio Vaticana}.
 \include "gregorian.ly"
 \score {
   \new VaticanaVoice {
-    \override TextScript #'font-family = #'typewriter
-    \override TextScript #'font-shape = #'upright
-    \override Script #'padding = #-0.1
+    \override TextScript.font-family = #'typewriter
+    \override TextScript.font-shape = #'upright
+    \override Script.padding = #-0.1
     a\ictus_"ictus " \bar "" \break
     a\circulus_"circulus " \bar "" \break
     a\semicirculus_"semicirculus " \bar "" \break
@@ -2486,7 +2486,7 @@ inmediatamente con la introducción del propio canto:
     \new KievanVoice = "melody" \transpose c c' {
       \cadenzaOn
        c4 c c c c2 b,\longa
-       \bar "kievan"
+       \bar "k"
     }
     \new Lyrics \lyricsto "melody" {
       Го -- спо -- ди по -- ми -- луй.
@@ -2517,7 +2517,7 @@ Tse-fa-ut).  Se utiliza para indicar la posición del Do:
 
 @lilypond[quote,relative=1,notime,verbatim]
   \clef "kievan-do"
-  \override NoteHead #'style = #'kievan
+  \override NoteHead.style = #'kievan
   c
 @end lilypond
 
@@ -2551,7 +2551,7 @@ notas del canto kievano:
 @lilypond[quote,fragment,ragged-right,verbatim]
 \autoBeamOff
 \cadenzaOn
-\override NoteHead #'style = #'kievan
+\override NoteHead.style = #'kievan
 b'1 b'2 b'4 b'8 b'\breve b'\longa
 @end lilypond
 
@@ -2587,8 +2587,8 @@ antiguos.  Se ha incluido principalmente a efectos de compatibilidad.
 
 @lilypond[quote,relative=1,notime,verbatim]
 \clef "kievan-do"
-\override NoteHead #'style = #'kievan
-\override Accidental #'glyph-name-alist =
+\override NoteHead.style = #'kievan
+\override Accidental.glyph-name-alist =
  #alteration-kievan-glyph-name-alist
 bes' dis,
 @end lilypond
@@ -2609,12 +2609,12 @@ Referencia de la notación:
 
 Normalmente se coloca una figura decorativa al final de una pieza de
 notación kievana, que puede denominarse como «doble barra final del
-canto kievano».  Se puede invocar como @code{\bar "kievan"}.
+canto kievano».  Se puede invocar como @code{\bar "k"}.
 
 @lilypond[quote,relative=1,notime,verbatim]
   \clef "kievan-do"
-  \override NoteHead #'style = #'kievan
-  c \bar "kievan"
+  \override NoteHead.style = #'kievan
+  c \bar "k"
 @end lilypond
 
 @seealso
@@ -2705,12 +2705,11 @@ el grabador @code{Stem_engraver} del contexto de voz:
 Sin embargo, en ciertos estilos de transcripción, se usan plicas de
 forma ocasional, por ejemplo para indicar la transición a partir de un
 recitativo monotónico a un gesto melódico fijo.  En estos casos
-podemos usar bien @code{\override Stem #'transparent = ##t} o bien
-@code{\override Stem #'length = #0}, y restaurar la plica cuando se
-necesite con el correspondiente @code{\once \override Stem
-#'transparent = ##f} (véase el ejemplo de abajo).  Al utilizar
+podemos usar bien @code{\override Stem.transparent = ##t} o bien
+@code{\override Stem.length = #0}, y restaurar la plica cuando se
+necesite con el correspondiente @code{\once \override Stem.transparent = ##f} (véase el ejemplo de abajo).  Al utilizar
 plicas que lleven corchetes, asegúrese de establecer también
-@code{\override Flag #'transparent = ##t}.
+@code{\override Flag.transparent = ##t}.
 
 @b{Compás}.  Para el canto no medido, existen diversas alternativas.
 
@@ -2726,7 +2725,7 @@ Otra alternativa es utilizar @code{\CadenzaOn} y @code{\CadenzaOff}.
 Para quitar las barras de compás, el enfoque radical consiste en
 retirar (mediante la instrucción @code{\remove}) el grabador
 Bar_engraver del contexto de pentagrama Staff.  Una vez más, en vez de
-ello podemos usar @code{\override BarLine #'transparent = ##t} si se
+ello podemos usar @code{\override BarLine.transparent = ##t} si se
 necesita ocasionalmente una barra de compás.
 
 Un tipo de transcripción muy común es el canto de recitativo, en el
@@ -2743,9 +2742,9 @@ chant = \relative c' {
 }
 
 verba = \lyricmode {
-  \once \override LyricText #'self-alignment-X = #-1
+  \once \override LyricText.self-alignment-X = #-1
   "Noctem quietam et" fi -- nem per -- fec -- tum
-  \once \override LyricText #'self-alignment-X = #-1
+  \once \override LyricText.self-alignment-X = #-1
   "concedat nobis Dominus" om -- ni -- po -- tens.
 }
 \score {
@@ -2758,8 +2757,8 @@ verba = \lyricmode {
       \Staff
       \remove "Time_signature_engraver"
       \remove "Bar_engraver"
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
   }
 }
@@ -2776,13 +2775,13 @@ plicas:
 chant = \relative c' {
   \clef "G_8"
   \set Score.timing = ##f
-  c\breve \override NoteHead #'transparent = ##t  c c c c c
-  \revert NoteHead #'transparent
-  \override Stem #'transparent = ##f \stemUp c4 b4 a
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t c2 c4  \divisioMaior
-  c\breve \override NoteHead #'transparent = ##t c c c c c c c
-  \revert NoteHead #'transparent c4 c f, f \finalis
+  c\breve \override NoteHead.transparent = ##t  c c c c c
+  \revert NoteHead.transparent
+  \override Stem.transparent = ##f \stemUp c4 b4 a
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t c2 c4  \divisioMaior
+  c\breve \override NoteHead.transparent = ##t c c c c c c c
+  \revert NoteHead.transparent c4 c f, f \finalis
 }
 
 verba = \lyricmode {
@@ -2799,9 +2798,9 @@ verba = \lyricmode {
     \context {
       \Staff
       \remove "Time_signature_engraver"
-      \override BarLine #'transparent = ##t
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override BarLine.transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
   }
 }
@@ -2830,7 +2829,7 @@ más ajustes posteriormente, esto se puede hacer fácilmente con
 @lilypond[verbatim,quote]
 spiritus = \relative c' {
   \time 1/4
-  \override Lyrics.LyricText #'X-extent  = #'(0 . 3)
+  \override Lyrics.LyricText.X-extent  = #'(0 . 3)
   d4 \times 2/3 { f8 a g } g a a4 g f8 e
   d4 f8 g g8 d f g a g f4 g8 a a4  s
   \times 2/3 { g8 f d } e f g a g4
@@ -2850,12 +2849,12 @@ spirLyr = \lyricmode {
     \context {
       \Staff
       \remove "Time_signature_engraver"
-      \override BarLine #'X-extent = #'(-1 . 1)
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
-      \override Beam #'transparent = ##t
-      \override BarLine #'transparent = ##t
-      \override TupletNumber #'transparent = ##t
+      \override BarLine.X-extent = #'(-1 . 1)
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
+      \override Beam.transparent = ##t
+      \override BarLine.transparent = ##t
+      \override TupletNumber.transparent = ##t
     }
   }
 }
index 7993db1a5702f3ff38250dbfb499233557c40cea..b353852f9c2295fd49fa9d5d7b0452611809a454 100644 (file)
@@ -8,7 +8,7 @@ Translation of GIT committish: 44011e382e91f43fb6752b3fbbf8d8984131a565
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Cambiar los valores por omisión
 @chapter Cambiar los valores por omisión
@@ -762,7 +762,7 @@ Una instrucción @code{\override}, pero omitiendo el nombre del contexto
   \layout {
     \context {
       \Staff
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
   }
 }
@@ -788,7 +788,7 @@ Estableciendo una propiedad de contexto directamente
 
 @item
 Una instrucción predefinida tal como @code{\dynamicUp} o una expresión
-musical como @code{\accidentalStyle "dodecaphonic"}
+musical como @code{\accidentalStyle dodecaphonic}
 
 @lilypond[quote,verbatim]
 \score {
@@ -803,7 +803,7 @@ musical como @code{\accidentalStyle "dodecaphonic"}
     }
     \context {
       \Staff
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
     }
   }
 }
@@ -857,9 +857,9 @@ estuviera escrita en el propio flujo musical.
     }
   }
   \layout {
-    \accidentalStyle "dodecaphonic"
+    \accidentalStyle dodecaphonic
     \set fontSize = #-4
-    \override Voice.Stem #'thickness = #4.0
+    \override Voice.Stem.thickness = #4.0
   }
 }
 @end lilypond
@@ -901,7 +901,7 @@ contexto
   \new Staff {
     \new Voice
     \with {
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
     {
       \relative c'' {
@@ -953,7 +953,7 @@ Una instrucción predefinida tal como @code{\dynamicUp}
       }
     }
     \new Staff
-    \with { \accidentalStyle "dodecaphonic" }
+    \with { \accidentalStyle dodecaphonic }
     {
       \new Voice
       \with { \dynamicUp }
@@ -1047,9 +1047,9 @@ de jazz,
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 }
 \context { \Staff
@@ -1116,9 +1116,9 @@ establece sus posiciones verticales al valor de
 Las notas parecen barras inclinadas y no tienen plica:
 
 @example
-\override NoteHead #'style = #'slash
-\override Stem #'transparent = ##t
-\override Flag #'transparent = ##t
+\override NoteHead.style = #'slash
+\override Stem.transparent = ##t
+\override Flag.transparent = ##t
 @end example
 
 Todos estos añadidos tienen que cooperar, y esto se consigue con un
@@ -1139,9 +1139,9 @@ Al juntarlo todo, obtenemos
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 @}
 @end example
@@ -1555,7 +1555,7 @@ digitación de la cabeza de la nota.  La siguiente orden inserta un
 espacio en blanco de 3 espacios de pentagrama entre la nota y la
 digitación:
 @example
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 @end example
 
 Al insertar esta instrucción antes de que se haya creado el objeto
@@ -1563,7 +1563,7 @@ Fingering, es decir, antes del @code{c2}, llegamos al siguiente
 resultado:
 
 @lilypond[quote,relative=2,verbatim]
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 c-2
 \stemUp
 f
@@ -1660,7 +1660,7 @@ funcionalidad des esta instrucción.
 La instrucción
 
 @verbatim
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 @end verbatim
 
 @noindent
@@ -1672,7 +1672,7 @@ Aquí vemos la instrucción en pleno funcionamiento:
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 c4
 c4
 c4
@@ -1689,7 +1689,7 @@ solo paso de tiempo.
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\once \override Stem #'thickness = #4.0
+\once \override Stem.thickness = #4.0
 c4
 c4
 @end lilypond
@@ -1700,9 +1700,9 @@ ligaduras o barras, la instrucción @code{\override} se debe ejecutar
 en el momento en que se crea el objeto.  En este ejemplo:
 
 @lilypond[quote,verbatim,relative=2]
-\override Slur #'thickness = #3.0
+\override Slur.thickness = #3.0
 c8[( c
-\override Beam #'beam-thickness = #0.6
+\override Beam.beam-thickness = #0.6
 c8 c])
 @end lilypond
 
@@ -1718,8 +1718,8 @@ del mismo contexto.  En otras palabras, el @code{\revert} del
 siguiente ejemplo no hace nada.
 
 @example
-\override Voice.Stem #'thickness = #4.0
-\revert Staff.Stem #'thickness
+\override Voice.Stem.thickness = #4.0
+\revert Staff.Stem.thickness
 @end example
 
 Algunas opciones «trucables» se llaman @q{subpropiedades} y residen
@@ -1735,7 +1735,7 @@ instrucciones de la forma
 tales como
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
 @end ignore
@@ -1945,7 +1945,7 @@ sobreescribiendo la propiedad @code{thickness} (grosor) del objeto
 
 @lilypond[quote,verbatim,relative=2]
 c4 c
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
 @end lilypond
 
@@ -1953,11 +1953,11 @@ Si no se ha especificado ningún contexto en la instrucción
 @code{\override}, se utiliza el contexto del nivel inferior:
 
 @lilypond[quote,verbatim,relative=2]
-{ \override Staff.Stem #'thickness = #3.0
+{ \override Staff.Stem.thickness = #3.0
   <<
     {
       e4 e
-      \override Stem #'thickness = #0.5
+      \override Stem.thickness = #0.5
       e4 e
     } \\ {
       c4 c c c
@@ -1975,9 +1975,9 @@ puede deshacer con @code{\revert}:
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
-\revert Voice.Stem #'thickness
+\revert Voice.Stem.thickness
 c4
 @end lilypond
 
@@ -1990,11 +1990,11 @@ adelante:
   <<
     {
       e4
-      \override Staff.Stem #'thickness = #3.0
+      \override Staff.Stem.thickness = #3.0
       e4 e e
     } \\ {
       c4 c c
-      \revert Staff.Stem #'thickness
+      \revert Staff.Stem.thickness
       c4
     }
   >>
@@ -2011,11 +2011,11 @@ al instante de tiempo actual:
 {
   <<
     {
-      \override Stem #'thickness = #3.0
+      \override Stem.thickness = #3.0
       e4 e e e
     } \\ {
       c4
-      \once \override Stem #'thickness = #3.0
+      \once \override Stem.thickness = #3.0
       c4 c c
     }
   >>
@@ -2028,7 +2028,7 @@ Las instrucciones que modifican la salida tienen por lo general un
 aspecto como
 
 @example
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 @end example
 
 @noindent
@@ -2046,7 +2046,7 @@ en el interior de las propiedades normales.  Para modificarlas utilice
 instrucciones de la forma
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
 @cindex documentación interna
@@ -2102,13 +2102,13 @@ por ejemplo
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
--\tweak #'padding #8
+-\tweak padding #8
 -^
 @end lilypond
 
@@ -2137,14 +2137,14 @@ posibilidad de modificarla.
 Así, esto funciona:
 
 @lilypond[relative=2,verbatim,quote]
-<\tweak #'color #red c>4
+<\tweak color #red c>4
 @end lilypond
 
 @noindent
 pero esto no funciona:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
+\tweak color #red c4
 @end lilypond
 
 @end ignore
@@ -2175,10 +2175,10 @@ dentro del mismo acorde:
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
 @end lilypond
@@ -2186,7 +2186,7 @@ dentro del mismo acorde:
 @code{\tweak} se puede usar para modificar ligaduras de expresión:
 
 @lilypond[verbatim,quote,relative=1]
-c-\tweak #'thickness #5 ( d e f)
+c-\tweak thickness #5 ( d e f)
 @end lilypond
 
 
@@ -2198,9 +2198,9 @@ como un contenedor, y todos los objetos de presentación se crean a
 partir de eventos dentro del @code{EventChord}:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
-\tweak #'color #red <c e>4
-<\tweak #'color #red c e>4
+\tweak color #red c4
+\tweak color #red <c e>4
+<\tweak color #red c e>4
 @end lilypond
 
 La instrucción @code{\tweak} sencilla no se puede usar para modificar
@@ -2215,9 +2215,9 @@ Tales objetos de presencaión creados indirectamente se pueden trucar
 usando la forma explícita de la instrucción @code{\tweak}:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak Stem #'color #red
-\tweak Beam #'color #green c8 e
-<c e \tweak Accidental #'font-size #-3 ges>4
+\tweak Stem.color #red
+\tweak Beam.color #green c8 e
+<c e \tweak Accidental.font-size #-3 ges>4
 @end lilypond
 
 No se puede usar @code{\tweak} para modificar las claves o las
@@ -2231,10 +2231,10 @@ elemento de notación; todos le afectan:
 
 @lilypond[verbatim,quote,relative=1]
 c
--\tweak #'style #'dashed-line
--\tweak #'dash-fraction #0.2
--\tweak #'thickness #3
--\tweak #'color #red
+-\tweak style #'dashed-line
+-\tweak dash-fraction #0.2
+-\tweak thickness #3
+-\tweak color #red
  \glissando
 f'
 @end lilypond
@@ -2336,7 +2336,7 @@ anidada}:
 % reduced space between staves
 \new PianoStaff \with {
   % this is the nested declaration
-  \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+  \override StaffGrouper.staff-staff-spacing.basic-distance = #7
 } <<
   \new Staff { \clef treble c''1 }
   \new Staff { \clef bass   c1   }
@@ -2358,7 +2358,7 @@ propiedad con una sola declaración, como una lista-A:
 
 @lilypond[quote,verbatim]
 \new PianoStaff \with {
-  \override StaffGrouper #'staff-staff-spacing =
+  \override StaffGrouper.staff-staff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 0)
        (padding . 0)
@@ -2378,10 +2378,10 @@ de @code{basic-distance} si no se fija).  Así, las dos declaraciones
 siguientes son equivalentes:
 
 @example
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7))
 
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7)
      (minimum-distance . 0)
      (padding . 0)
@@ -2718,7 +2718,7 @@ valores de @code{'line-positions}.}
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7)
+  \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2729,7 +2729,7 @@ resulta afectado por este ajuste.
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'width = #23
+  \override StaffSymbol.width = #23
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2792,7 +2792,7 @@ Works not at all for:
 a~a
 a
 % increase the length of the tie
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ~a
 @end lilypond
 
@@ -2801,7 +2801,7 @@ a1
 \compressFullBarRests
 R1*23
 % increase the length of the rest bar
-\once \override MultiMeasureRest #'minimum-length = #20
+\once \override MultiMeasureRest.minimum-length = #20
 R1*23
 a1
 @end lilypond
@@ -2809,7 +2809,7 @@ a1
 @lilypond[verbatim,quote,relative=2]
 a \< a a a \!
 % increase the length of the hairpin
-\override Hairpin #'minimum-length = #20
+\override Hairpin.minimum-length = #20
 a \< a a a \!
 @end lilypond
 
@@ -2819,12 +2819,12 @@ las ligaduras de expresión y de fraseo:
 @lilypond[verbatim,quote,relative=2]
 a( a)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ( a)
 
 a\( a\)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 \( a\)
 @end lilypond
 
@@ -2841,12 +2841,12 @@ propiedad @code{springs-and-rods}:
 e \glissando c'
 
 % not effective alone
-\once \override Glissando #'minimum-length = #20
+\once \override Glissando.minimum-length = #20
 e, \glissando c'
 
 % effective only when both overrides are present
-\once \override Glissando #'minimum-length = #20
-\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
 e, \glissando c'
 @end lilypond
 
@@ -2854,12 +2854,12 @@ Lo mismo se puede decir del objeto @code{Beam}:
 
 @lilypond[verbatim,quote,relative=1]
 % not effective alone
-\once \override Beam #'minimum-length = #20
+\once \override Beam.minimum-length = #20
 e8 e e e
 
 % effective only when both overrides are present
-\once \override Beam #'minimum-length = #20
-\once \override Beam #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
 e8 e e e
 @end lilypond
 
@@ -2875,7 +2875,7 @@ exactamente sobre la nota:
 
 @lilypond[verbatim,quote,relative=2]
 a \< a a a a \! a a a \break
-\override Hairpin #'to-barline = ##f
+\override Hairpin.to-barline = ##f
 a \< a a a a \! a a a
 @end lilypond
 
@@ -2909,8 +2909,8 @@ jerarquía de propiedades, pero la sintaxis de la instrucción
 
 @lilypond[relative=2,quote,verbatim]
 e2 \glissando b
-\once \override Glissando #'(bound-details left Y) = #3
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.left.Y = #3
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando b
 @end lilypond
 
@@ -2928,8 +2928,8 @@ especifican por las sub-listas @code{left-broken} y
 @code{right-broken} de @code{bound-details}.  Por ejemplo:
 
 @lilypond[relative=2,ragged-right,verbatim,quote]
-\override Glissando #'breakable = ##t
-\override Glissando #'(bound-details right-broken Y) = #-3
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
 c1 \glissando \break
 f1
 @end lilypond
@@ -2969,7 +2969,7 @@ usa para escribir @i{cresc.}, @i{tr} y otros textos sobre los objetos
 de extensión horizontales.
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
 c2\startTextSpan b c a\stopTextSpan
 @end lilypond
@@ -2983,15 +2983,11 @@ subpropiedades @code{X} e @code{Y}.  Si se fijan
 símbolo del borde verticalmente con relación al extremo de la línea:
 
 @lilypond[relative=1,quote,verbatim]
-\override TextSpanner
-  #'(bound-details left stencil-align-dir-y) = #-2
-\override TextSpanner
-  #'(bound-details right stencil-align-dir-y) = #UP
-
-\override TextSpanner
-  #'(bound-details left text) = #"ggg"
-\override TextSpanner
-  #'(bound-details right text) = #"hhh"
+\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
+\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP
+
+\override TextSpanner.bound-details.left.text = #"ggg"
+\override TextSpanner.bound-details.right.text = #"hhh"
 c4^\startTextSpan c c c \stopTextSpan
 @end lilypond
 
@@ -3080,9 +3076,9 @@ predeterminada se puede recuperar con @code{\revert}.
 
 @lilypond[quote,verbatim,relative=1]
 a1 a
-\override Score.BarLine #'stencil = ##f
+\override Score.BarLine.stencil = ##f
 a a
-\revert Score.BarLine #'stencil
+\revert Score.BarLine.stencil
 a a a
 @end lilypond
 
@@ -3100,7 +3096,7 @@ invisible.
 
 @lilypond[quote,verbatim,relative=2]
 a4 a
-\once \override NoteHead #'transparent = ##t
+\once \override NoteHead.transparent = ##t
 a a
 @end lilypond
 
@@ -3126,7 +3122,7 @@ dibujan estos objetos, lo que puede dejar una imagen fantasma del
 objeto blanco, como puede verse aquí:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
+\override Staff.Clef.color = #white
 a1
 @end lilypond
 
@@ -3151,8 +3147,8 @@ sobreimpresionándolas.  Para cambiarlo, se debe dar al objeto
 para que se dibuje antes:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
-\override Staff.Clef #'layer = #-1
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
 a1
 @end lilypond
 
@@ -3250,7 +3246,7 @@ controlar la visibilidad de las líneas divisorias:
 f4 g a b
 f4 g a b
 % Remove bar line at the end of the current line
-\once \override Score.BarLine #'break-visibility = #'#(#f #t #t)
+\once \override Score.BarLine.break-visibility = #'#(#f #t #t)
 \break
 f4 g a b
 f4 g a b
@@ -3297,7 +3293,7 @@ bemol mayor es visible incluso con @code{all-invisible} establecido.
 \key g \major
 f4 g a b
 % Try to remove all key signatures
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b
 \break
@@ -3325,7 +3321,7 @@ objeto correspondiente.
 \key g \major
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3343,7 +3339,7 @@ cambio de tonalidad explícito, establezca la propiedad
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.printKeyCancellation = ##f
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3417,13 +3413,13 @@ cómo aplicarles ajustes finos.
 
 @lilypond[relative=2,ragged-right,verbatim,quote]
 d2 \glissando d'2
-\once \override Glissando #'style = #'dashed-line
+\once \override Glissando.style = #'dashed-line
 d,2 \glissando d'2
-\override Glissando #'style = #'dotted-line
+\override Glissando.style = #'dotted-line
 d,2 \glissando d'2
-\override Glissando #'style = #'zigzag
+\override Glissando.style = #'zigzag
 d,2 \glissando d'2
-\override Glissando #'style = #'trill
+\override Glissando.style = #'trill
 d,2 \glissando d'2
 @end lilypond
 
@@ -3434,7 +3430,7 @@ posible sobreescribirlos:
 @c TODO Complete
 @lilypond[relative=2,ragged-right,verbatim,quote]
 e2 \glissando f
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando f
 @end lilypond
 
@@ -3490,7 +3486,7 @@ serlo:
 
 @lilypond[quote,verbatim,relative=1]
 g4\< e' d' f\!
-\override Hairpin #'rotation = #'(20 -1 0)
+\override Hairpin.rotation = #'(20 -1 0)
 g,,4\< e' d' f\!
 @end lilypond
 
@@ -3510,7 +3506,7 @@ propiedad @code{outside-staff-priority} del texto se establece a
 que empuja al texto a una posición muy alta.
 
 @lilypond[quote,verbatim,relative=1]
-\override TextScript #'outside-staff-priority = ##f
+\override TextScript.outside-staff-priority = ##f
 g4^\markup { \rotate #30 "a G" }
 b^\markup { \rotate #30 "a B" }
 des^\markup { \rotate #30 "a D-Flat" }
@@ -3630,12 +3626,12 @@ valores @code{X-offset} y @code{Y-offset} modificados.
 @lilypond[verbatim,quote,relative=2]
 a-3
 a
--\tweak #'X-offset #0
--\tweak #'Y-offset #0
+-\tweak X-offset #0
+-\tweak Y-offset #0
 -3
 a
--\tweak #'X-offset #-1
--\tweak #'Y-offset #1
+-\tweak X-offset #-1
+-\tweak Y-offset #1
 -3
 @end lilypond
 
@@ -3714,13 +3710,13 @@ sola nota:
 
 @lilypond[quote,verbatim,relative=1]
 a'
--\tweak #'self-alignment-X #-1
+-\tweak self-alignment-X #-1
 ^"left-aligned"
--\tweak #'self-alignment-X #0
+-\tweak self-alignment-X #0
 ^"center-aligned"
--\tweak #'self-alignment-X #RIGHT
+-\tweak self-alignment-X #RIGHT
 ^"right-aligned"
--\tweak #'self-alignment-X #-2.5
+-\tweak self-alignment-X #-2.5
 ^"aligned further to the right"
 @end lilypond
 
@@ -3753,9 +3749,9 @@ se acerque a la cabeza de la nota.
 
 @lilypond[quote,verbatim,relative=2]
 a
--\tweak #'self-alignment-X #0.5  % move horizontally left
--\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
--\tweak #'self-alignment-Y #-1  % move vertically up
+-\tweak self-alignment-X #0.5  % move horizontally left
+-\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self
+-\tweak self-alignment-Y #-1  % move vertically up
 -3  % third finger
 @end lilypond
 
@@ -3807,20 +3803,20 @@ se centran horizontalmente sobre el objeto:
 
 @lilypond[verbatim,quote,relative=1]
 % The rehearsal mark will be centered above the Clef
-\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+\override Score.RehearsalMark.break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The rehearsal mark will be centered above the Time Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
 \key a \major
 \clef treble
 \time 3/4
 \mark "↓"
 e2.
 % The rehearsal mark will be centered above the Breath Mark
-\override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign)
+\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
 \key a \major
 \clef treble
 \time 4/4
@@ -3840,14 +3836,14 @@ con el punto en el que se encontraría la línea divisoria.
 
 @lilypond[verbatim,quote,relative=1]
 % The rehearsal mark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The rehearsal mark will be centered above the Clef
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef bass
 \mark "↓"
@@ -3855,7 +3851,7 @@ gis,,1
 % The rehearsal mark will be centered above the Bar Line
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.explicitClefVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
@@ -3869,19 +3865,19 @@ los pentagramas.
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
 \key a \major
 \clef treble
 \time 4/4
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the Key Signature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
 \mark "↓"
 \key a \major
 e1
 % The RehearsalMark will be aligned with the right edge of the Key Signature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
 e1
@@ -3894,14 +3890,14 @@ pentagrama:
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be aligned with the left edge of the Key Signature
 % and then shifted right by 3.5 staff-spaces
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
-\once \override Score.KeySignature #'break-align-anchor = #3.5
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature.break-align-anchor = #3.5
 \key a \major
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the Key Signature
 % and then shifted left by 2 staff-spaces
-\once \override Score.KeySignature #'break-align-anchor = #-2
+\once \override Score.KeySignature.break-align-anchor = #-2
 \key a \major
 \mark "↓"
 e1
@@ -3954,8 +3950,8 @@ la nota a unas aspas dentro de una circunferencia.
 
 @lilypond[verbatim,quote]
 XinO = {
-  \once \override NoteHead  #'stencil = #ly:text-interface::print
-  \once \override NoteHead #'text = \markup {
+  \once \override NoteHead.stencil = #ly:text-interface::print
+  \once \override NoteHead.text = \markup {
     \combine
       \halign #-0.7 \draw-circle #0.85 #0.2 ##f
       \musicglyph #"noteheads.s2cross"
@@ -4056,8 +4052,7 @@ de unión.
 @lilypond[verbatim,quote,relative=1]
 <<
   {
-    \once \override Tie
-      #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
+    \once \override Tie.control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
      e1 ~ e
   }
 \\
@@ -4153,12 +4148,12 @@ precisión mucho más tardío durante el proceso de espaciado.
                               '(-0.5 . 0.5)))))
 
 squareLineCircleSpace = {
-  \override NoteHead #'stencil = #square-line-circle-space
+  \override NoteHead.stencil = #square-line-circle-space
 }
 
 smartSquareLineCircleSpace = {
   \squareLineCircleSpace
-  \override NoteHead #'Y-extent =
+  \override NoteHead.Y-extent =
    #(ly:make-unpure-pure-container
       ly:grob::stencil-height
       (lambda (grob start end) (ly:grob::stencil-height grob)))
@@ -4167,9 +4162,9 @@ smartSquareLineCircleSpace = {
 \new Voice \with { \remove "Stem_engraver" }
 \relative c'' {
   \squareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
   \smartSquareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
 }
 @end lilypond
 
@@ -4302,7 +4297,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
@@ -4323,10 +4318,10 @@ custosNote =
      (parser location note)
      (ly:music?)
    #{
-     \tweak NoteHead #'stencil #ly:text-interface::print
-     \tweak NoteHead #'text
+     \tweak NoteHead.stencil #ly:text-interface::print
+     \tweak NoteHead.text
         \markup \musicglyph #"custodes.mensural.u0"
-     \tweak Stem #'stencil ##f
+     \tweak Stem.stencil ##f
      #note
    #})
 
@@ -4341,7 +4336,7 @@ tempoPadded =
      (parser location padding tempotext)
      (number? markup?)
    #{
-     \once \override Score.MetronomeMark #'padding = #padding
+     \once \override Score.MetronomeMark.padding = #padding
      \tempo \markup { \bold #tempotext }
    #})
 
index 0051f33b8c0136815b63df5ac34d008310cdde75..05fca8b9b092994b1324a94154d1e7971056d4ed 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c TODO: add tablature.
@@ -29,7 +29,7 @@
 @tab
 @lilypond[relative=2,notime]
 \set Staff.autoBeaming = ##f
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c1 c2 c8 c16
 @end lilypond
 
@@ -37,7 +37,7 @@ c1 c2 c8 c16
 @tab puntillos
 @tab
 @lilypond[relative=2,notime]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c4. c4..
 @end lilypond
 
@@ -69,7 +69,7 @@ s4_" "
 @tab compás
 @tab
 @lilypond[relative=1]
-\override Staff.Clef #'stencil = #empty-stencil
+\override Staff.Clef.stencil = #empty-stencil
 \time 3/4
 s4_" "
 \time 4/4
@@ -81,7 +81,7 @@ s16_" "
 @tab silencio
 @tab
 @lilypond[relative=2,notime]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 r4 r8
 @end lilypond
 
index 37d3bd545191b0b492cf7db8ea7023df045b4942..9f5c6108ce2d37f4419f4e13dd0584f23b13bed8 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Notación de acordes
 @section Notación de acordes
@@ -184,7 +184,7 @@ Acción predeterminada; produce una tríada mayor.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1
 }
 @end lilypond
@@ -196,7 +196,7 @@ Acorde menor.  Este modificador baja la tercera.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:m c:m7
 }
 @end lilypond
@@ -210,7 +210,7 @@ existe, la séptima.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:dim c:dim7
 }
 @end lilypond
@@ -222,7 +222,7 @@ Acorde aumentado.  Este modificador eleva la quinta.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:aug
 }
 @end lilypond
@@ -236,7 +236,7 @@ modificador para crear una tríada mayor.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:maj c:maj7
 }
 @end lilypond
index 425eb8599a7b5f2fc5cd5f7d20874c7ddcfd19de..b58ef05702629357b71ba3ed23c2335fbfe369b9 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Anotaciones editoriales
 @section Anotaciones editoriales
@@ -103,11 +103,11 @@ que queden afectados solamente determinados objetos gráficos.
 @lilypond[verbatim,quote,relative=2]
 \set fontSize = #3
 c4.-> d8---3
-\override NoteHead #'font-size = #-4
+\override NoteHead.font-size = #-4
 c4.-> d8---3
-\override Script #'font-size = #2
+\override Script.font-size = #2
 c4.-> d8---3
-\override Stem #'font-size = #-5
+\override Stem.font-size = #-5
 c4.-> d8---3
 @end lilypond
 
@@ -312,11 +312,11 @@ Se pueden asignar colores a los objetos individuales.  Los nombres de
 color válidos se encuentran relacionados en la @ref{Lista de colores}.
 
 @lilypond[verbatim,quote,relative=2]
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 c4 c
-\override NoteHead #'color = #(x11-color 'LimeGreen)
+\override NoteHead.color = #(x11-color 'LimeGreen)
 d
-\override Stem #'color = #blue
+\override Stem.color = #blue
 e
 @end lilypond
 
@@ -332,20 +332,20 @@ Si @code{x11-color} no entiende el parámetro, el color predeterminado
 que se devuelve es el negro.
 
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
 gis8 a
-\override Beam #'color = #(x11-color "medium turquoise")
+\override Beam.color = #(x11-color "medium turquoise")
 gis a
-\override Accidental #'color = #(x11-color 'DarkRed)
+\override Accidental.color = #(x11-color 'DarkRed)
 gis a
-\override NoteHead #'color = #(x11-color "LimeGreen")
+\override NoteHead.color = #(x11-color "LimeGreen")
 gis a
 % this is deliberate nonsense; note that the stems remain black
-\override Stem #'color = #(x11-color 'Boggle)
+\override Stem.color = #(x11-color 'Boggle)
 b2 cis
 @end lilypond
 
@@ -359,16 +359,16 @@ Se pueden especificar colores RGB exactos utilizando la función de
 Scheme @code{rgb-color}.
 
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
-\override Stem #'color = #(rgb-color 0 0 0)
+\override Stem.color = #(rgb-color 0 0 0)
 gis8 a
-\override Stem #'color = #(rgb-color 1 1 1)
+\override Stem.color = #(rgb-color 1 1 1)
 gis8 a
-\override Stem #'color = #(rgb-color 0 0 0.5)
+\override Stem.color = #(rgb-color 0 0 0.5)
 gis4 a
 @end lilypond
 
index bc3d987adaaecd236fc45eac8758fe9ceef83ec2..e6988b026d1b62dfb4e6bb91ba2424bf2ae29aac 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Expresiones
 @section Expresiones
@@ -177,8 +177,8 @@ multicompás (y sólo a un silencio multicompás).  La instrucción
 crea un objeto @code{MultiMeasureRestText}.
 
 @lilypond[verbatim,quote,relative=2]
-\override Script #'color = #red
-\override MultiMeasureRestText #'color = #blue
+\override Script.color = #red
+\override MultiMeasureRestText.color = #blue
 a2\fermata r\fermata
 R1\fermataMarkup
 @end lilypond
index 46188b7421c22400bf11040faac4ec072e05ca71..58524535d0dc8ebdef9d4b5c5fc19b6f051b83d7 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Instrumentos de cuerda con trastes
 @section Instrumentos de cuerda con trastes
@@ -253,7 +253,7 @@ aire siempre que sea posible.  Este comportamiento se puede cambiar
 fijando @code{restrainOpenStrings} al valor @code{#t}.
 
 @lilypond[quote,ragged-right,verbatim]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 \new StaffGroup <<
    \new Staff \relative c {
      \clef "treble_8"
@@ -396,7 +396,7 @@ Se pueden añadir indicaciones de armónicos a la notación de tablatura
 como sus alturas de sonido:
 
 @lilypond[verbatim,quote]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 firstHarmonic = {
   d'4\4\harmonic
   g'4\3\harmonic
@@ -553,7 +553,7 @@ para bajo, que suena una octava por debajo de lo escrito.
 @lilypond[quote,ragged-right,verbatim]
 <<
   \new Voice \with {
-    \override StringNumber #'stencil = ##f
+    \override StringNumber.stencil = ##f
   } {
     \clef "bass_8"
     \relative c, {
@@ -948,8 +948,7 @@ escueta @code{fret-diagram-terse}
     }
   }
   \context Staff {
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     \clef "treble_8"
     <c e g c' e'>1^\markup {
       \fret-diagram-terse #"x;3-3;2-2;o;1-1;o;"
@@ -1025,8 +1024,7 @@ bajo del diagrama de posición.
     }
   \context Staff {
     \clef "treble_8"
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     <f, c f a c' f'>1^\markup {
       \fret-diagram-verbose #'(
         (place-fret 6 1)
@@ -1720,7 +1718,7 @@ de guitarra:
 \clef "treble_8"
 b16 d g b e
 \textSpannerDown
-\override TextSpanner #'(bound-details left text) = #"XII "
+\override TextSpanner.bound-details.left.text = #"XII "
 g16\startTextSpan
 b16 e g e b g\stopTextSpan
 e16 b g d
@@ -1751,7 +1749,7 @@ con un marcado de texto.
 @lilypond[quote,ragged-right,verbatim]
 \relative c' {
   \clef "treble_8"
-  \override Staff.NoteHead #'style = #'harmonic-mixed
+  \override Staff.NoteHead.style = #'harmonic-mixed
   d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
 }
 @end lilypond
index a56b9c3386e4bb7a3e834007decc58e44bd8843c..519172dae8863feec419925e5fb75ec24e001d96 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Entrada y salida generales
 @chapter Entrada y salida generales
@@ -527,7 +527,7 @@ de Scheme, es decir, todo elemento que comience por un signo@tie{}@code{#}.
 @item Dentro de @code{lyricmode} para separar todos los términos de las instrucciones
 @code{\override} y @code{\set}.  Concretamente, hay que usar espacios
 alrededor del punto y el signo igual en instrucciones como
-@code{\override Score . LyricText #'font-size = #5} y antes y después
+@code{\override Score.LyricText.font-size = #5} y antes y después
 de la instrucción completa.
 
 @end itemize
@@ -1415,7 +1415,7 @@ marca puede suprimirse:
     \footnote \markup { \super "$" } #'(0.5 . 1)
       \markup { \super "$" \italic " The second note" }
     e c4
-    \once \override Score.FootnoteItem #'annotation-line = ##f
+    \once \override Score.FootnoteItem.annotation-line = ##f
     b-\footnote \markup \tiny "+" #'(0.1 . 0.1)
       \markup { \super "+" \italic " Editorial" } \p
   }
@@ -1440,11 +1440,11 @@ nota al pie:
   \header { tagline = ##f }
   \relative c'' {
     % footnotes may be added to chord constituents
-    < \footnote #'(-1 . -3) #'Accidental "Another flat" aes
+    < \single\footnote #'(-1 . -3) "Another flat" Accidental aes
       c
-      \footnote #'(-1 . 0.5) #'Accidental "A flat" ees
+      \single\footnote #'(-1 . 0.5) "A flat" Accidental ees
     >2
-    \footnote #'(-1 . 2) #'Stem "A stem" ees2
+    \single\footnote #'(-1 . 2) "A stem" Stem ees2
   }
 }
 @end lilypond
@@ -1483,13 +1483,13 @@ los objetos más inesperados.
   \header { tagline = ##f }
   \relative c'' {
     r1 |
-    \footnote #'(-0.5 . -1) #'TimeSignature "Meter change" \default
+    \footnote #'(-0.5 . -1) "Meter change" Staff.TimeSignature
     \time 3/4
-    \footnote #'(1 . -1) #'Stem "Chord stem" \default
+    \footnote #'(1 . -1) "Chord stem" Stem
     <c e g>4 q q
-    \footnote #'(-0.5 . 1) #'BarLine "Bar line" \default
+    \footnote #'(-0.5 . 1) "Bar line" Staff.BarLine
     q q
-    \footnote #'(0.5 . -1) #'KeySignature "Key change" \default
+    \footnote #'(0.5 . -1) "Key change" Staff.KeySignature
     \key c\minor
     q
   }
index e5b03081b611eda31f8e29944cd839a6168239a8..2045b9442db36d78a16c8d13b7b98677b249fe5f 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Teclados y otros instrumentos de varios pentagramas
 @section Teclados y otros instrumentos de varios pentagramas
@@ -216,7 +216,7 @@ cruzan de un pentagrama a otro:
   \new Staff = "up" {
     \voiceOne
     % Make space for fingering in the cross-staff voice
-    \once\override DynamicLineSpanner #'staff-padding = #3.4
+    \once\override DynamicLineSpanner.staff-padding = #3.4
     e''2\p\< d''\>
     c''1\!
   }
index e02fe8fa59d22859aef16ec87ea083872f420c26..3a56853d4123aaa6595cc3764110680ff2fdf528 100644 (file)
@@ -1656,7 +1656,6 @@ LilyPond.
 @cindex modo
 @cindex output-count
 @cindex output-suffix
-@cindex parseStringResult
 @cindex partCombineListener
 @cindex pitchnames
 @cindex toplevel-bookparts
@@ -1684,7 +1683,6 @@ LilyPond utiliza las siguientes variables del analizador sintáctico:
 @item mode
 @item output-count
 @item output-suffix
-@item parseStringResult
 @item partCombineListener
 @item pitchnames
 @item toplevel-bookparts
index dc5d3ac1f73ecb0a3ac50fc7fa2cac14af74d166..7ef29e1d9ea0341adeeca92b325d0c674be53624 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Percusión
 @section Percusión
@@ -265,17 +265,17 @@ mus = \drummode {
   << \new DrumStaff \with {
        \remove "Bar_engraver"
        \remove "Time_signature_engraver"
-       \override Stem #'transparent = ##t
-       \override Flag #'transparent = ##t
-       \override Stem #'Y-extent = ##f
+       \override Stem.transparent = ##t
+       \override Flag.transparent = ##t
+       \override Stem.Y-extent = ##f
      } \mus
      \new Lyrics \nam
   >>
   \layout {
     \context {
       \Score
-      \override LyricText #'font-family = #'typewriter
-      \override BarNumber #'transparent =##T
+      \override LyricText.font-family = #'typewriter
+      \override BarNumber.transparent =##T
     }
   }
 }
@@ -298,16 +298,16 @@ mus = \drummode { timh ssh timl ssl cb s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
-    \override StaffSymbol #'line-count = #2
-    \override StaffSymbol #'staff-space = #2
-    \override VerticalAxisGroup #'minimum-Y-extent = #'(-3.0 . 4.0)
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
+    \override StaffSymbol.line-count = #2
+    \override StaffSymbol.staff-space = #2
+    \override VerticalAxisGroup.minimum-Y-extent = #'(-3.0 . 4.0)
     drumStyleTable = #timbales-style
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -325,16 +325,16 @@ mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
     drumStyleTable = #congas-style
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -351,17 +351,17 @@ mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
     drumStyleTable = #bongos-style
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -379,14 +379,14 @@ mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
   \new DrumStaff \with{
     \remove "Bar_engraver"
     drumStyleTable = #percussion-style
-    \override StaffSymbol #'line-count = #1
+    \override StaffSymbol.line-count = #1
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -439,10 +439,10 @@ alto) y wbl (@emph{woodblock-low} bloque bajo)
 woodstaff = {
   % This defines a staff with only two lines.
   % It also defines the positions of the two lines.
-  \override Staff.StaffSymbol #'line-positions = #'(-2 3)
+  \override Staff.StaffSymbol.line-positions = #'(-2 3)
 
   % This is necessary; if not entered, the barline would be too short!
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
 }
 
 \new DrumStaff {
@@ -460,7 +460,7 @@ woodstaff = {
 @end lilypond
 
 Observe que en este caso especial se debe alterar la longitud de la
-línea divisoria con @code{\override Staff.BarLine #'bar-extent #'(de . a)}.
+línea divisoria con @code{\override Staff.BarLine.bar-extent #'(de . a)}.
 En caso contrario resulta demasiado corta.  También debe definir las
 posiciones de las dos líneas del pentagrama.  Para más información
 sobre estos delicados asuntos, consulte @ref{El símbolo del pentagrama}.
@@ -471,8 +471,8 @@ Una pandereta, escrita mediante @q{tamb} (@emph{tambourine}):
 #(define mydrums '((tambourine default #t 0)))
 
 tambustaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tambourine"
 }
 
@@ -498,8 +498,8 @@ Música para gong, introducida con @q{tt} (tam-tam):
 #(define mydrums '((tamtam default #t 0)))
 
 tamtamstaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tamtam"
 }
 
@@ -521,9 +521,9 @@ Dos campanas, introducidas con @q{cb} (@emph{cowbell}, cencerro) y
                    (cowbell  default #t -2)))
 
 bellstaff = {
-  \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)
+  \override DrumStaff.StaffSymbol.line-positions = #'(-2 3)
   \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Different Bells"
 }
 
index 1b3233ea83d5a9fde62abd1831bbd45b7a7b3710..4b7d0d4487dfcd1f0446c92b4d5ddf39de0b46ed 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Alturas
@@ -1463,7 +1463,7 @@ qué estilo de alteraciones usar.  Esta función se invoca como sigue:
 
 @example
 \new Staff <<
-  \accidentalStyle "voice"
+  \accidentalStyle voice
   @{ @dots{} @}
 >>
 @end example
@@ -1477,7 +1477,7 @@ usar el mismo estilo en todos los pentagramas del @code{StaffGroup} en
 curso, use
 
 @example
-\accidentalStyle #'StaffGroup "voice"
+\accidentalStyle StaffGroup.voice
 @end example
 
 Están contemplados los siguientes estilos de alteración.  Para dar una
@@ -1519,11 +1519,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1538,7 +1538,7 @@ dos pentagramas.
   <<
     \context Staff = "up" @{
       %%% cambie la línea siguiente como desee:
-      \accidentalStyle #'Score "default"
+      \accidentalStyle Score.default
       \musicA
     @}
     \context Staff = "down" @{
@@ -1599,11 +1599,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1672,11 +1672,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicB
     }
   >>
@@ -1737,11 +1737,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicB
     }
   >>
@@ -1799,11 +1799,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicB
     }
   >>
@@ -1864,11 +1864,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicB
     }
   >>
@@ -1925,11 +1925,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicB
     }
   >>
@@ -1989,7 +1989,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano"
+      \accidentalStyle piano
       \musicA
     }
     \context Staff = "down" {
@@ -2010,7 +2010,7 @@ musicB = {
 
 @funindex piano-cautionary
 
-Igual que @code{\accidentalStyle "piano"} pero con las
+Igual que @code{\accidentalStyle piano} pero con las
 alteraciones añadidas compuestas como de precaución.
 
 @lilypond[quote]
@@ -2049,7 +2049,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano-cautionary"
+      \accidentalStyle piano-cautionary
       \musicA
     }
     \context Staff = "down" {
@@ -2107,11 +2107,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicB
     }
   >>
@@ -2164,11 +2164,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicB
     }
   >>
@@ -2224,11 +2224,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicB
     }
   >>
@@ -2281,11 +2281,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicB
     }
   >>
@@ -2340,11 +2340,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicB
     }
   >>
@@ -2402,12 +2402,12 @@ musicB = {
   <<
     \context Staff = "up" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicA
     }
     \context Staff = "down" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicB
     }
   >>
@@ -2460,11 +2460,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicB
     }
   >>
@@ -2519,11 +2519,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicB
     }
   >>
@@ -2569,7 +2569,7 @@ natural de la casilla de segunda vez no necesita becuadro:
 
 @lilypond[quote]
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2586,12 +2586,12 @@ cambie localmente el estilo de alteraciones a @code{forget}:
 
 @lilypond[verbatim,quote]
 forget = #(define-music-function (parser location music) (ly:music?) #{
-  \accidentalStyle "forget"
+  \accidentalStyle forget
   #music
-  \accidentalStyle "modern"
+  \accidentalStyle modern
 #})
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2708,13 +2708,13 @@ Se puede modificar la apariencia de la cabeza de las notas:
 
 @lilypond[verbatim,quote,relative=2]
 c4 b
-\override NoteHead #'style = #'cross
+\override NoteHead.style = #'cross
 c4 b
-\revert NoteHead #'style
+\revert NoteHead.style
 a b
-\override NoteHead #'style = #'harmonic
+\override NoteHead.style = #'harmonic
 a b
-\revert NoteHead #'style
+\revert NoteHead.style
 c4 d e f
 @end lilypond
 
index dfeb810371abb34ac2ba8013b210c5932ce34fac..74efac866036ede23a2087fb54672dac84b2edfa 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Duraciones
 @section Duraciones
@@ -547,11 +547,11 @@ Sobreescriba las propiedades de disposición @var{whiteout} y
 objetos del pentagrama.
 
 @lilypond[verbatim,quote,ragged-right,relative=2]
-\override Tie #'layer = #-2
-\override Staff.TimeSignature #'layer = #-1
-\override Staff.KeySignature #'layer = #-1
-\override Staff.TimeSignature #'whiteout = ##t
-\override Staff.KeySignature #'whiteout = ##t
+\override Tie.layer = #-2
+\override Staff.TimeSignature.layer = #-1
+\override Staff.KeySignature.layer = #-1
+\override Staff.TimeSignature.whiteout = ##t
+\override Staff.KeySignature.whiteout = ##t
 b2 b~
 \time 3/4
 \key a \major
@@ -648,7 +648,7 @@ predefinidas que se muestran aquí:
 \new Staff {
   % These two lines are just to prettify this example
   \time 16/1
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   % Print a maxima rest, equal to four breves
   r\maxima
   % Print a longa rest, equal to two breves
@@ -913,10 +913,10 @@ siguiente:}
 
 @lilypond[quote,verbatim,relative=2]
 % This fails, as the wrong object name is specified
-\override TextScript #'padding = #5
+\override TextScript.padding = #5
 R1^"wrong"
 % This is the correct object name to be specified
-\override MultiMeasureRestText #'padding = #5
+\override MultiMeasureRestText.padding = #5
 R1^"right"
 @end lilypond
 
@@ -1519,7 +1519,7 @@ La numeración de compases se continúa al final de la cadencia.
 
 @lilypond[verbatim,relative=2,quote]
 % Show all bar numbers
-\override Score.BarNumber #'break-visibility = #all-visible
+\override Score.BarNumber.break-visibility = #all-visible
 c4 d e d
 \cadenzaOn
 c4 c d8[ d d] f4 g4.
@@ -2600,14 +2600,14 @@ gradualmente.  Las cuatro primeras fusas se aceleran gradualmente,
 mientras que las últimas cuatro fusas están a un tempo constante.
 
 @lilypond[relative=1,verbatim,quote]
-\override Beam #'grow-direction = #LEFT
+\override Beam.grow-direction = #LEFT
 \featherDurations #(ly:make-moment 2 1)
 { c16[ c c c c c c c] }
-\override Beam #'grow-direction = #RIGHT
+\override Beam.grow-direction = #RIGHT
 \featherDurations #(ly:make-moment 2 3)
 { c32[ d e f] }
 % revert to non-feathered beams
-\override Beam #'grow-direction = #'()
+\override Beam.grow-direction = #'()
 { g32[ a b c] }
 @end lilypond
 
@@ -2730,7 +2730,7 @@ f1 \bar "|"
 f1 \bar "."
 g1 \bar "||"
 a1 \bar ".|"
-b1 \bar ".|."
+b1 \bar ".."
 c1 \bar "|.|"
 d1 \bar "|."
 e1
@@ -2740,8 +2740,8 @@ e1
 así como la barra de puntos y la discontinua:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar ":"
-g1 \bar "dashed"
+f1 \bar ";"
+g1 \bar "!"
 a1
 @end lilypond
 
@@ -2749,11 +2749,11 @@ a1
 y cinco tipos de barra de repetición:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar "|:"
-g1 \bar ":|:"
+f1 \bar ".|:"
+g1 \bar ":..:"
 a1 \bar ":|.|:"
 b1 \bar ":|.:"
-c1 \bar ":|"
+c1 \bar ":|."
 e1
 @end lilypond
 
@@ -2778,13 +2778,13 @@ c4 c c c
 c4 c c c \break
 \bar "S"
 c4 c c c
-\bar "|S"
+\bar "S-|"
 c4 c c c \break
-\bar "|S"
+\bar "S-|"
 c4 c c c
-\bar "S|"
+\bar "S-S"
 c4 c c c \break
-\bar "S|"
+\bar "S-S"
 c1
 @end lilypond
 
@@ -2803,9 +2803,9 @@ principio de la línea siguiente.
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar "||:"
+\bar ".|:-||"
 c4 c c c \break
-\bar "||:"
+\bar ".|:-||"
 c4 c c c
 @end lilypond
 
@@ -2814,29 +2814,29 @@ existen seis variantes diferentes:
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar ":|S"
+\bar ":|.S"
 c4 c c c \break
-\bar ":|S"
+\bar ":|.S"
 c4 c c c
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c \break
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c \break
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c \break
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c \break
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c4 c c c \break
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c1
 @end lilypond
 
@@ -2939,7 +2939,7 @@ ejemplo siguiente se imprimen los números de compás en todos los
 sitios posibles:
 
 @lilypond[verbatim,quote,relative=1]
-\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
+\override Score.BarNumber.break-visibility = #'#(#t #t #t)
 \set Score.currentBarNumber = #11
 % Permit first bar number to be printed
 \bar ""
@@ -3440,8 +3440,8 @@ pentagramas con adornos y sin adornos, por ejemplo
 
 @lilypond[quote,relative=2,verbatim]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" d2. }
 >>
 @end lilypond
 
@@ -3452,8 +3452,8 @@ anterior
 
 @lilypond[quote,relative=2,verbatim]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" \grace s16 d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" \grace s16 d2. }
 >>
 @end lilypond
 
index 9ae2583d84de171fda5f0b040f9a11d3c9edf3a0..fbcd784ed80695c05123cfb86321c79fc19f10fc 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translation status: post-GDP
 
@@ -314,7 +314,7 @@ advertencia: demasiadas columnas de notas que chocan entre sí. Se ignoran
 durante la compilación.  Este mensaje se puede suprimir mediante
 
 @example
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 @end example
 
 Sin embargo, esto no solamente suprime la advertencia sino que
@@ -870,14 +870,14 @@ Referencia de funcionamiento interno:
 @cindex colisiones, ignorar
 
 @knownissues
-El uso de @code{\override NoteColumn #'ignore-collision = ##t} hace
+El uso de @code{\override NoteColumn.ignore-collision = ##t} hace
 que las notas con distinta cabeza en voces diferentes se mezclen
 incorrectamente.
 
 @lilypond[quote,relative=1,verbatim]
 \mergeDifferentlyHeadedOn
 << { c16 a' b a } \\ { c,2 } >>
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 << { c16 a' b a } \\ { c,2 } >>
 @end lilypond
 
index 1a705c0419faa700db92a2bb5606495ce0436a76..a7f2ad86d2b1b0a1a4c8c6e11ed55b4dec1e0404 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @ignore
 GDP TODO list
@@ -32,7 +32,7 @@ staff lines."
 
 Could we add a sentence:
 "Use instead the pair               fontSize = #@var{N}
-            \override StaffSymbol #'staff-space = #(magstep
+            \override StaffSymbol.staff-space = #(magstep
 @var{N})
 inside the Staff context to change the size of the font and the
 distance between
@@ -934,21 +934,21 @@ en el archivo @file{ly/paper-defaults-init.ly}
 
 @table @code
 
-@item blank-after-score-page-force
-@funindex blank-after-score-page-force
+@item blank-after-score-page-penalty
+@funindex blank-after-score-page-penalty
 
 Penalización por tener una página vacía después del final de una
 partitura y antes de la siguiente.  De forma predeterminada, es menor
-que @code{blank-page-force}, de manera que preferimos páginas vacías
+que @code{blank-page-penalty}, de manera que preferimos páginas vacías
 después de las partituras que páginas vacías dentro de una partitura.
 
-@item blank-last-page-force
-@funindex blank-last-page-force
+@item blank-last-page-penalty
+@funindex blank-last-page-penalty
 
 Penalización por terminar la partitura sobre una página impar.
 
-@item blank-page-force
-@funindex blank-page-force
+@item blank-page-penalty
+@funindex blank-page-penalty
 
 Penalización por tener una página vacía en medio de una partitura.  No
 se utiliza por parte de @code{ly:optimal-breaking} porque nunca
@@ -1171,12 +1171,12 @@ He aquí un ejemplo de un bloque @code{\layout}:
   indent = 2\cm
   \context @{
     \StaffGroup
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #8
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #8
   @}
   \context @{
     \Voice
-    \override TextScript #'padding = #1
-    \override Glissando #'thickness = #3
+    \override TextScript.padding = #1
+    \override Glissando.thickness = #3
   @}
 @}
 @end example
@@ -1198,8 +1198,8 @@ Por ejemplo: si este bloque:
 \layout @{
   \context @{
     \Voice
-    \override TextScript #'color = #magenta
-    \override Glissando #'thickness = #1.5
+    \override TextScript.color = #magenta
+    \override Glissando.thickness = #1.5
   @}
 @}
 @end example
@@ -1219,7 +1219,7 @@ Si se define una variable de la siguiente manera:
 variable_de_Layout = \layout @{
   \context @{
     \Voice
-    \override NoteHead #'font-size = #4
+    \override NoteHead.font-size = #4
   @}
 @}
 @end example
@@ -1239,7 +1239,7 @@ La variable se puede entonces usar dentro de otro bloque
   \variable_de_layout
   \context @{
     \Voice
-    \override NoteHead #'color = #red
+    \override NoteHead.color = #red
   @}
 @}
 @end example
@@ -1470,11 +1470,11 @@ paralelo con la música:
 
 De forma similar, los saltos de línea están normalmente prohibidos
 cuando hay barras de corchea que cruzan la línea divisoria.  Se puede
-cambiar este comportamiento fijando @code{\override Beam #'breakable =
+cambiar este comportamiento fijando @code{\override Beam.breakable =
 ##t}:
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override Beam #'breakable = ##t
+\override Beam.breakable = ##t
 c2. c8[ c | \break
 c8 c] c2. |
 @end lilypond
@@ -1792,8 +1792,8 @@ Lily a veces rechaza las instrucciones @code{\break} y
 sobreescribir este comportamiento:
 
 @example
-\override NonMusicalPaperColumn #'line-break-permission = ##f
-\override NonMusicalPaperColumn #'page-break-permission = ##f
+\override NonMusicalPaperColumn.line-break-permission = ##f
+\override NonMusicalPaperColumn.page-break-permission = ##f
 @end example
 
 Cuando se sobreescribe el valor de @code{line-break-permission} a
@@ -1825,8 +1825,8 @@ music = \relative c'' { c8 c c c }
   \layout {
     \context {
       \Score
-      \override NonMusicalPaperColumn #'line-break-permission = ##f
-      \override NonMusicalPaperColumn #'page-break-permission = ##f
+      \override NonMusicalPaperColumn.line-break-permission = ##f
+      \override NonMusicalPaperColumn.page-break-permission = ##f
     }
   }
 }
@@ -1897,20 +1897,16 @@ music = \relative c'' { c4 c c c }
 \score {
   \new Staff <<
     \new Voice {
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 0))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
       s1 * 2 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 35))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
       s1 * 3 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 70))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
       s1 * 6 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 105))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
       s1 * 5 \break
     }
     \new Voice {
@@ -2060,14 +2056,14 @@ de estos puntos de referencia:
 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
 
 alignToZero = \with {
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #zero-space
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
 }
 lowerCaseChords = \with {
   chordNameLowercaseMinor = ##t
 }
 staffAffinityDown = \with {
-  \override VerticalAxisGroup #'staff-affinity = #DOWN
+  \override VerticalAxisGroup.staff-affinity = #DOWN
 }
 labelContext =
 #(define-music-function
@@ -2085,13 +2081,13 @@ labelContext =
                          \lowerCaseChords }
   \context { \FretBoards  \alignToZero \staffAffinityDown }
   \context { \Score
-    \override BarLine #'stencil = ##f
-    \override DynamicText #'self-alignment-X = #-1
-    \override FretBoard #'X-offset = #1.75
-    \override InstrumentName #'minimum-Y-extent = #'(-2 . 2)
-    \override InstrumentName #'extra-offset = #'(0 . -0.5)
-    \override TextScript #'minimum-Y-extent = #'(-2 . 3)
-    \override TimeSignature #'stencil = ##f
+    \override BarLine.stencil = ##f
+    \override DynamicText.self-alignment-X = #-1
+    \override FretBoard.X-offset = #1.75
+    \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
+    \override InstrumentName.extra-offset = #'(0 . -0.5)
+    \override TextScript.minimum-Y-extent = #'(-2 . 3)
+    \override TimeSignature.stencil = ##f
   }
 }
 
@@ -2156,12 +2152,11 @@ forma individual, y la segunda redefine la propiedad completamente:
 
 @example
 \new Staff \with @{
-  \override VerticalAxisGroup #'default-staff-staff-spacing
-       #'basic-distance = #10
+  \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
 @} @{ @dots{} @}
 
 \new Staff \with @{
-  \override VerticalAxisGroup #'default-staff-staff-spacing =
+  \override VerticalAxisGroup.default-staff-staff-spacing =
     #'((basic-distance . 10)
        (minimum-distance . 9)
        (padding . 1)
@@ -2176,8 +2171,7 @@ póngalos dentro del bloque @code{\layout}:
 \layout @{
   \context @{
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing
-         #'basic-distance = #10
+    \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
   @}
 @}
 @end example
@@ -2348,7 +2342,7 @@ pautas estuvieran combinadas en un grupo o grupos.
 \layout {
   \context {
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 8)
          (minimum-distance . 7)
          (padding . 1))
@@ -2370,7 +2364,7 @@ pautas estuvieran combinadas en un grupo o grupos.
   % By setting 'padding to a negative value, staves can be made to
   % collide.  The lowest acceptable value for 'basic-distance is 0.
   \new Staff \with {
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 3.5)
          (padding . -10))
   } { \clef bass g2 r | }
@@ -2426,14 +2420,14 @@ grob @code{StaffGrouper} al espaciado de las pautas agrupadas:
 \layout {
   \context {
     \Score
-    \override StaffGrouper #'staff-staff-spacing #'padding = #0
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #1
+    \override StaffGrouper.staff-staff-spacing.padding = #0
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #1
   }
 }
 
 <<
   \new PianoStaff \with {
-    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+    \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
   } <<
     \new Staff { c'1 }
     \new Staff { c'1 }
@@ -2495,24 +2489,23 @@ la línea de letra es capaz de ampliarse mucho más de lo que es usual:
 \layout {
   \context {
     \Lyrics
-    \override VerticalAxisGroup
-      #'nonstaff-nonstaff-spacing #'stretchability = #1000
+    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
   }
 }
 
 \new StaffGroup
 <<
   \new Staff \with {
-    \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance . 30))
+    \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
   } { c'1 }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #UP
+    \override VerticalAxisGroup.staff-affinity = #UP
   } \lyricmode { up }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #CENTER
+    \override VerticalAxisGroup.staff-affinity = #CENTER
   } \lyricmode { center }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #DOWN
+    \override VerticalAxisGroup.staff-affinity = #DOWN
   } \lyricmode { down }
   \new Staff { c'1 }
 >>
@@ -2578,21 +2571,16 @@ sobreescrituras de @code{NonMusicalPaperColumn} de ejemplo con la
 instrucción especial @code{\overrideProperty}:
 
 @example
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((Y-offset . 40))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((alignment-distances . (15)))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40)
                                  (alignment-distances . (15)))
 @end example
@@ -2647,14 +2635,11 @@ grob (objeto gráfico) @code{NonMusicalPaperColumn}:
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 40))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 80))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
           s1*5 \break
         }
         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
@@ -2687,16 +2672,13 @@ usando la subpropiedad @code{alignment-distances} de
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 20)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (15)))
           s1*5 \break
         }
@@ -2729,16 +2711,13 @@ vertical de los pentagramas pero no de los grupos de pentagramas.
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
                                            (alignment-distances . (30 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (10 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (10 30)))
           s1*5 \break
         }
@@ -2815,13 +2794,13 @@ pentagrama.
 @lilypond[quote,ragged-right,relative=2,verbatim]
 c4_"Text"\pp
 r2.
-\once \override TextScript #'outside-staff-priority = #1
+\once \override TextScript.outside-staff-priority = #1
 c4_"Text"\pp % this time the text will be closer to the staff
 r2.
 % by setting outside-staff-priority to a non-number,
 % we disable the automatic collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
-\once \override DynamicLineSpanner #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
+\once \override DynamicLineSpanner.outside-staff-priority = ##f
 c4_"Text"\pp % now they will collide
 @end lilypond
 
@@ -2830,9 +2809,9 @@ posicionados previamente se puede controlar con
 @code{outside-staff-padding}.
 
 @lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
-\once \override TextScript #'outside-staff-padding = #0
+\once \override TextScript.outside-staff-padding = #0
 a'^"This text is placed very close to the note"
-\once \override TextScript #'outside-staff-padding = #3
+\once \override TextScript.outside-staff-padding = #3
 c^"This text is padded away from the previous text"
 c^"This text is placed close to the previous text"
 @end lilypond
@@ -2854,7 +2833,7 @@ c4
 c''2
 % setting outside-staff-horizontal-padding fixes this
 R1
-\once \override TextScript #'outside-staff-horizontal-padding = #1
+\once \override TextScript.outside-staff-horizontal-padding = #1
 c,,4^"Text"
 c4
 c''2
@@ -2964,8 +2943,8 @@ con los valores predeterminados y otra con correcciones exageradas:
 {
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
-  \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
-  \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
+  \override Staff.NoteSpacing.stem-spacing-correction = #1.5
+  \override Staff.StaffSpacing.stem-spacing-correction = #1.5
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
 }
@@ -2994,7 +2973,7 @@ adicional en una partitura, ajustando el valor del relleno en la
 medida necesaria.
 
 @example
- \override Score.NonMusicalPaperColumn #'padding = #10
+ \override Score.NonMusicalPaperColumn.padding = #10
 @end example
 
 No existe ningún rodeo para disminuir la magnitud de la separación.
@@ -3065,8 +3044,7 @@ que @code{ly:make-moment} construye una duración, por lo que @code{1
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'base-shortest-duration = #(ly:make-moment 1 16)
+      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
     }
   }
 }
@@ -3099,7 +3077,7 @@ puede cambiarse al principio de la partitura:
   \layout {
     \context {
       \Score
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -3109,7 +3087,7 @@ Cuando se establece @code{strict-note-spacing}, las notas se separan
 sin tener en cuenta las claves, líneas divisorias ni notas de adorno:
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override Score.SpacingSpanner #'strict-note-spacing = ##t
+\override Score.SpacingSpanner.strict-note-spacing = ##t
 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c]  c32[ c32] }
 @end lilypond
 
@@ -3196,7 +3174,7 @@ proporcional, que se pueden usar solos o combinados:
 @item @code{uniform-stretching}
 @item @code{strict-note-spacing}
 @item @code{\remove "Separating_line_group_engraver"}
-@item @code{\override PaperColumn #'used = ##t}
+@item @code{\override PaperColumn.used = ##t}
 @end itemize
 
 En los ejemplos que siguen, exploramos el uso de estos cinco ajustes
@@ -3435,7 +3413,7 @@ propiedad de @code{SpacingSpanner}.
     \context {
       \Score
       proportionalNotationDuration = #(ly:make-moment 1 20)
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -3540,7 +3518,7 @@ Compare las dos partituras siguientes:
 
 \new Staff {
   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
-  \override Score.SpacingSpanner #'strict-note-spacing = ##t
+  \override Score.SpacingSpanner.strict-note-spacing = ##t
   c''8
   c''8
   c''8
@@ -3562,11 +3540,11 @@ Además de los ajustes dados aquí, hay otros que aparecen con
 frecuencia en las partituras proporcionales.  Entre ellos están:
 
 @itemize
-@item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
+@item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
 @item @code{tupletFullLength = ##t}
-@item @code{\override Beam #'breakable = ##t}
-@item @code{\override Glissando #'breakable = ##t}
-@item @code{\override TextSpanner #'breakable = ##t}
+@item @code{\override Beam.breakable = ##t}
+@item @code{\override Glissando.breakable = ##t}
+@item @code{\override TextSpanner.breakable = ##t}
 @item @code{\remove "Forbid_line_break_engraver" in the Voice context}
 @end itemize
 
@@ -3726,7 +3704,7 @@ pentagrama:
 
 @lilypond[verbatim,quote,relative=1]
 e4 c g\f c
-e4 c g-\tweak #'X-offset #-2.7 -\tweak #'Y-offset #2.5 \f c
+e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
 @end lilypond
 
 @item
@@ -3764,8 +3742,7 @@ duración se produce un efecto de @q{apretujamiento}:
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'common-shortest-duration = #(ly:make-moment 1 2)
+      \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 2)
     }
   }
 }
index f261c3c2b97f51e1ee37adf6b27bcf8625642aac..63eca611b98d2993963e16367d2e085a990a03f0 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Notación de los pentagramas
 @section Notación de los pentagramas
@@ -450,11 +450,11 @@ Se puede cambiar el número de líneas de la pauta:
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-count = #2
+\override Staff.StaffSymbol.line-count = #2
 \startStaff g, e |
 
 f'4 d \stopStaff
-\revert Staff.StaffSymbol #'line-count
+\revert Staff.StaffSymbol.line-count
 \startStaff g, e |
 @end lilypond
 
@@ -467,10 +467,10 @@ la pauta pueden cambiarse con una sola operación de sobreescritura.
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(1 3 5 -1 -3)
+\override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
 \startStaff g, e |
 f'4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(8 6.5 -6 -8 -0.5)
+\override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
 \startStaff g, e
 @end lilypond
 
@@ -484,7 +484,7 @@ plica de las figuras.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #3
+  \override StaffSymbol.thickness = #3
 }
 { f4 d g, e }
 @end lilypond
@@ -497,8 +497,8 @@ las líneas adicionales.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #2
-  \override StaffSymbol #'ledger-line-thickness = #'(0.5 . 0.4)
+  \override StaffSymbol.thickness = #2
+  \override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -507,7 +507,7 @@ Pueden alterarse las posiciones verticales de las líneas adicionales:
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'ledger-positions = #'(-3 -2 -1 2 5 6)
+  \override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -519,7 +519,7 @@ propias líneas adicionales.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'ledger-extra = #4
+  \override StaffSymbol.ledger-extra = #4
 }
 { f'4 a, d, f, }
 @end lilypond
@@ -534,11 +534,11 @@ ejemplo para revertir la instrucción de sobreescritura
 pauta).
 
 @lilypond[fragment,quote,relative=1]
-\override Staff.StaffSymbol #'line-positions =   #'(-8 0 2 4)
+\override Staff.StaffSymbol.line-positions =   #'(-8 0 2 4)
 d4 e f g
 \stopStaff
 \startStaff
-\override Staff.StaffSymbol #'ledger-positions = #'(-8 -6 (-4 -2) 0)
+\override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
 d4 e f g
 @end lilypond
 
@@ -547,7 +547,7 @@ también al espaciado de las líneas adicionales.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'staff-space = #1.5
+  \override StaffSymbol.staff-space = #1.5
 }
 { f'4 d, g, e, }
 @end lilypond
@@ -624,8 +624,8 @@ cuando se necesitan sólo algunos pentagramas de ossia.
       \remove "Time_signature_engraver"
       alignAboveContext = #"main"
       fontSize = #-3
-      \override StaffSymbol #'staff-space = #(magstep -3)
-      \override StaffSymbol #'thickness = #(magstep -3)
+      \override StaffSymbol.staff-space = #(magstep -3)
+      \override StaffSymbol.thickness = #(magstep -3)
       firstClef = ##f
     }
     { e4 d f e }
@@ -646,10 +646,10 @@ en ejemplo siguiente.
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   }
   { \stopStaff s1*6 }
 
@@ -684,10 +684,10 @@ sobre @code{\RemoveEmptyStaves}, consulte @ref{Ocultar pentagramas}.
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   } \relative c'' {
     R1*3
     c4 e8 d c2
@@ -705,7 +705,7 @@ sobre @code{\RemoveEmptyStaves}, consulte @ref{Ocultar pentagramas}.
 \layout {
   \context {
     \Staff \RemoveEmptyStaves
-    \override VerticalAxisGroup #'remove-first = ##t
+    \override VerticalAxisGroup.remove-first = ##t
   }
 }
 @end lilypond
@@ -862,8 +862,8 @@ utilice las siguientes sobreescrituras de valores en vez de quitar el
 grabador:
 
 @example
-\override StaffSymbol #'stencil = ##f
-\override NoteHead #'no-ledgers = ##t
+\override StaffSymbol.stencil = ##f
+\override NoteHead.no-ledgers = ##t
 @end example
 
 Para ver los fallos y problemas conocidos, así como las advertencias
index 4462a6b6d0d4cff2bcbf7d4d41bd4f146a52bffd..3fe1d1c5b2f2ce783b8200b2e35b1eb70f5d4fad 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Texto
 @section Texto
@@ -138,7 +138,7 @@ requiere cálculos adicionales.  En caso de que desee un proceso
 ligeramente más rápido, puede utilizar
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 
@@ -155,7 +155,7 @@ nombre de @q{spanners} u objetos de extensión, se pueden crear desde
 una nota hasta otra usando la siguiente sintaxis:
 
 @lilypond[verbatim,quote,relative=2]
-\override TextSpanner #'(bound-details left text) = "rit."
+\override TextSpanner.bound-details.left.text = "rit."
 b1\startTextSpan
 e,\stopTextSpan
 @end lilypond
@@ -170,7 +170,7 @@ se pueden conseguir distintos efectos de formato utilizando bloques
 @code{\markup}, como se describe en @ref{Formatear el texto}.
 
 @lilypond[quote,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text) =
+\override TextSpanner.bound-details.left.text =
   \markup { \upright "rit." }
 b1\startTextSpan c
 e,\stopTextSpan
@@ -1452,12 +1452,12 @@ series y tamaños alternativos.  El valor que se da a @code{font-size}
 es el cambio requerido a partir del tamaño predeterminado.
 
 @lilypond[quote,verbatim,relative=2]
-\override Score.RehearsalMark #'font-family = #'typewriter
+\override Score.RehearsalMark.font-family = #'typewriter
 \mark \markup "Ouverture"
-\override Voice.TextScript #'font-shape = #'italic
-\override Voice.TextScript #'font-series = #'bold
+\override Voice.TextScript.font-shape = #'italic
+\override Voice.TextScript.font-series = #'bold
 d2.^\markup "Allegro"
-\override Voice.TextScript #'font-size = #-3
+\override Voice.TextScript.font-size = #-3
 c4^smaller
 @end lilypond
 
@@ -1511,8 +1511,8 @@ instalada en el sistema operativo y reconocida por parte de
 FontConfig, usando la siguiente sintaxis:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.TimeSignature #'font-name = #"Bitstream Charter"
-\override Staff.TimeSignature #'font-size = #2
+\override Staff.TimeSignature.font-name = #"Bitstream Charter"
+\override Staff.TimeSignature.font-size = #2
 \time 3/4
 
 a1_\markup {
index f59dd3780f80aa67de17240557efa1a16b8c5ba0..9c4022054a71d7dc898dde5dcead96dab1890fbf 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Música vocal
 @section Música vocal
@@ -174,14 +174,14 @@ dentro de las instrucciones @code{\override}.  @emph{No} escriba lo
 siguiente:
 
 @example
-\override Score.LyricText #'font-shape = #'italic
+\override Score.LyricText.font-shape = #'italic
 @end example
 
 @noindent
 sino lo siguiente:
 
 @example
-\override Score . LyricText #'font-shape = #'italic
+\override Score.LyricText.font-shape = #'italic
 @end example
 
 Los signos de puntuación, las letras con caracteres acentuados o de
@@ -1066,7 +1066,7 @@ referencia, usando @code{\context}, como se ve a continuación:
   <<
     \new Lyrics = "lyrics" \with {
       % lyrics above a staff should have this override
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "melody" {
@@ -1097,7 +1097,7 @@ ejemplo del segundo método:
     \new Lyrics = "sopranos"
     \new Lyrics = "contraltos" \with {
       % lyrics above a staff should have this override
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "contraltos" {
@@ -1147,7 +1147,7 @@ propiedad @code{minimum-distance} de @code{LyricSpace}.
 @lilypond[relative=1,verbatim,quote,ragged-right]
 {
   c c c c
-  \override Lyrics.LyricSpace #'minimum-distance = #1.0
+  \override Lyrics.LyricSpace.minimum-distance = #1.0
   c c c c
 }
 \addlyrics {
@@ -1173,7 +1173,7 @@ la propiedad dentro del bloque @code{\layout}.
   \layout {
     \context {
       \Lyrics
-      \override LyricSpace #'minimum-distance = #1.0
+      \override LyricSpace.minimum-distance = #1.0
     }
   }
 }
@@ -1191,7 +1191,7 @@ acelerar ligeramente el procesado, se puede desactivar esta
 funcionalidad:
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 Para hacer que el texto evite también las líneas divisorias, use
@@ -1202,7 +1202,7 @@ Para hacer que el texto evite también las líneas divisorias, use
     \Lyrics
       \consists "Bar_engraver"
       \consists "Separating_line_group_engraver"
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
   @}
 @}
 @end example
@@ -1937,7 +1937,7 @@ propiedad @code{associatedVoice}:
         \voiceOne
         \times 2/3 {
           % show associations clearly.
-          \override NoteColumn #'force-hshift = #-3
+          \override NoteColumn.force-hshift = #-3
           f8 f g
         }
       }
@@ -2365,8 +2365,8 @@ pautas respectivas, como se muestra aquí:
   \layout {
     \context {
       \Score
-      \override DynamicText #'direction = #UP
-      \override DynamicLineSpanner #'direction = #UP
+      \override DynamicText.direction = #UP
+      \override DynamicLineSpanner.direction = #UP
     }
   }
 }
@@ -2656,7 +2656,7 @@ pianoRH = \relative c'' {
   % position name of cue-ing instrument just before the cue notes,
   % and above the staff
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
     \set instrumentCueName = "Flute"
   }
   \cueDuring "flute" #UP { g4 bes4 }
@@ -2700,8 +2700,8 @@ pianoRH = \relative c'' {
   \transposition c'
   % position name of cue-ing instrument below the staff
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
-    \override InstrumentSwitch #'direction = #DOWN
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
+    \override InstrumentSwitch.direction = #DOWN
     \set instrumentCueName = "Clar."
   }
   \cueDuring "clarinet" #DOWN { c4. g8 }
@@ -2843,8 +2843,8 @@ dialogue = \lyricmode {
 \score {
   <<
     \new Lyrics \with {
-      \override LyricText #'font-shape = #'italic
-      \override LyricText #'self-alignment-X = #LEFT
+      \override LyricText.font-shape = #'italic
+      \override LyricText.self-alignment-X = #LEFT
     }
     { \dialogue }
     \new Staff {
@@ -2914,7 +2914,7 @@ Los cánticos usan con frecuencia figuras negras sin plica para indicar
 la altura, tomando las duraciones del ritmo hablado del texto.
 
 @lilypond[verbatim,quote]
-stemOff = { \override Staff.Stem #'transparent = ##t }
+stemOff = { \override Staff.Stem.transparent = ##t }
 
 \relative c' {
   \stemOff
@@ -3009,9 +3009,9 @@ a4 b c2
 \bar "'"
 a4 b c2
 a4 b c2
-\bar ":"
+\bar ";"
 a4 b c2
-\bar "dashed"
+\bar "!"
 a4 b c2
 \bar "||"
 @end lilypond
@@ -3022,23 +3022,23 @@ Este ejemplo utiliza una marca @code{\breathe} modificada:
 
 @lilypond[verbatim,quote]
 divisioMinima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-minima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-minima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaior = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maior
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maior
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaxima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maxima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maxima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 finalis = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::finalis
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::finalis
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 
@@ -3154,8 +3154,7 @@ global = {
       \layout {
         \context {
           \Score
-          \override SpacingSpanner
-          #'base-shortest-duration = #(ly:make-moment 1 2)
+          \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 2)
         }
         \context {
           \Staff
index 9db212b62347d7df090aab88b2cdaf20e94edf7f..56fb87f9457b5e96038d06ff1c15df2959fdfda7 100644 (file)
@@ -1,24 +1,24 @@
 <!--
-    Translation of GIT committish: 55cabbf80554d813284d7f1dc0e08965e2b3644d
+    Translation of GIT committish: 427bb2b004227f3afc7de10dfd896fc375cbc320
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 
 we depend on an external entity here, which we cannot control.  Suppose
-we go from 2.16.x to 2.17.x and put the documentation under "v2.17".
+we go from 2.15.x to 2.17.x and put the documentation under "v2.17".
 For some time, Google won't have the new location in its index, so the
-search would get nothing.  It would be better to keep "v2.16" in the
-search for a while and have a redirection from "v2.16" to "v2.17".
+search would get nothing.  It would be better to keep "v2.15" in the
+search for a while and have a redirection from "v2.15" to "v2.17".
 -->
 
 <form action="http://google.com/search"
       method="get"
       name="search"
-      onSubmit="search.q.value='site:lilypond.org/doc/v2.16 '
+      onSubmit="search.q.value='site:lilypond.org/doc/v2.17 '
                + search.brute_query.value"
-      onMouseMove="search.q.value='site:lilypond.org/doc/v2.16 '
+      onMouseMove="search.q.value='site:lilypond.org/doc/v2.17 '
                   + search.brute_query.value"
-      onKeyUp="search.q.value='site:lilypond.org/doc/v2.16 '
+      onKeyUp="search.q.value='site:lilypond.org/doc/v2.17 '
               + search.brute_query.value">
   <input type="hidden" name="btnG" value="Búsqueda en Google">
   <input type="text" name="brute_query" onfocus="this.value=''" value="Buscar">
diff --git a/Documentation/es/texidocs/GNUmakefile b/Documentation/es/texidocs/GNUmakefile
deleted file mode 100644 (file)
index 0ffa758..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth=../../..
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.texidoc)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/es/usage/GNUmakefile b/Documentation/es/usage/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 12dc06e7392bf077d8f3abc1669c06851b3f4ba4..4aefc1badb5bffd1887b3d3d952c279c610b7d2c 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Ejecutar LilyPond
@@ -1038,7 +1038,7 @@ permaneciendo el de abajo con las notas en el color negro
 predeterminado.
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.NoteHead #'color = #red
+\override Staff.NoteHead.color = #red
 \new Staff { a }
 @end lilypond
 
@@ -1051,7 +1051,7 @@ las notas de rojo es
 
 @lilypond[quote,verbatim,relative=2]
 \new Staff {
-  \override Staff.NoteHead #'color = #red
+  \override Staff.NoteHead.color = #red
   a
 }
 @end lilypond
@@ -1149,7 +1149,7 @@ mensajes de advertencia se pueden evitar haciendo que uno de los
 contextos se comporte como un pentagrama, insertando
 
 @example
-\override VerticalAxisGroup #'staff-affinity = ##f
+\override VerticalAxisGroup.staff-affinity = ##f
 @end example
 
 @noindent
diff --git a/Documentation/es/web/GNUmakefile b/Documentation/es/web/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 0828e77e3677bf22a42bf92c3f19580b14f3bf6e..018910dc4a1e1891f3d404a486cc92c83fd53c22 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 2b55f813985dd14f8e61011d1c76ecf00e45691e
+    Translation of GIT committish: 6ed88961376f5b129a41114a198342e2e5c2fb82
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 
 @c used for news about the upcoming release; see CG 10.2
 
+@newsItem
+@subsubheading ¡Lanzado LilyPond 2.17.3!  @emph{23 de septiembre de 2012}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.17.3.  Esta
+versión contiene el conjunto habitual de correcciones de fallos.
+Se recomienda enérgicamente a los usuarios normales que
+@strong{no} utilicen esta versión, sino la 2.16 estable en su
+lugar.
+
+
+@newsEnd
+
+@newsItem
+@subsubheading ¡Lanzado LilyPond 2.17.2!  @emph{10 de septiembre de 2012}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.17.2.  Esta
+versión contiene el conjunto habitual de correcciones de fallos.
+Se recomienda enérgicamente a los usuarios normales que
+@strong{no} utilicen esta versión, sino la 2.16 estable en su
+lugar.
+
+@newsEnd
+
+@newsItem
+@subsubheading ¡Lanzado LilyPond 2.17.1!  @emph{28 de agosto de 2012}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.17.1.  Esta
+versión contiene el conjunto habitual de correcciones de fallos.
+Se recomienda enérgicamente a los usuarios normales que
+@strong{no} utilicen esta versión, sino la 2.16 estable en su
+lugar.
+
+@newsEnd
+
+
+@newsItem
+@subsubheading ¡Lanzado LilyPond 2.17.0!  @emph{26 de agosto de 2012}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.17.0.  Esta
+versión contiene el conjunto habitual de correcciones de fallos.
+Se recomienda enérgicamente a los usuarios normales que
+@strong{no} utilicen esta versión, sino la 2.16 estable en su
+lugar.
+
+@newsEnd
+
+
 @newsItem
 @subsubheading ¡Lanzado Lilypond 2.16.0!  @emph{24 de agosto de 2012}
 
@@ -81,54 +128,3 @@ Colaboradores de traducciones:
 Jean-Charles Malahieude, Till Paala, Yoshiki Sawada
 
 @newsEnd
-
-
-@newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.95!  @emph{11 de agosto de 2012}
-
-Estamos encantados de anunciar el lanzamiento de LilyPond 2.15.95.
-Con esta edición, se congela el desarrollo sobre la versión 2.15 para
-la inminente versión estable 2.16 y queda abierta solamente a
-correcciones de fallos.
-
-Urgimos a todos los usuarios a que prueben esta versión para asegurar
-la máxima calidad de la próxima versión estable.  Si descubre
-cualquier problema, le rogamos nos envíe @ref{Informes de fallos}.
-
-Las funcionaliades nuevas desde la versión 2.14.2 están relacionadas
-en el manual de @qq{Cambios} en la sección de la página web sobre
-@ref{Desarrollo}.
-
-@newsEnd
-
-
-@newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.42!  @emph{2 de agosto de 2012}
-
-Nos complace anunciar el lanzamiento de LilyPond 2.15.42.  Esta versión
-contiene el conjunto habitual de correcciones de fallos.
-
-Se recomienda enérgicamente a los usuarios normales que @strong{no}
-utilicen esta versión, sino la 2.14 estable en su lugar.  Tenga en
-cuenta que a causa de algunos bugs críticos, esta versión no es
-candidata al lanzamiento de la próxima versión estable.
-
-@newsEnd
-
-
-@newsItem
-@subsubheading El Informe LilyPond, número 27. @emph{2 de agosto 2012}
-
-Vuelve @emph{El informe LilyPond}, con una interesante incursión en
-las funcionalidades relacionadas con Scheme añadidas recientemente por
-el único desarrollador remunerado de nuestra comunidad, David Kastrup
-(gracias a sus @uref{http://lilypond.org/sponsoring.html, donaciones
-continuas}).  En esta edición también se encuentra una panorámica
-sobre ciertos proyectos poco conocidos colaterales a LilyPond, y
-algunas otras noticias más ligeras.
-
-Acérquese y @uref{http://news.lilynet.net/?The-LilyPond-Report-27,
-lea ya el Informe LilyPond número 27}; ¡todos los comentarios y
-aportaciones serán calurosamente bien recibidos!
-
-@newsEnd
index 6f20190e3a51bf064c007851629264d84379f6e1..f54f12400cbc7b5bf90742447787ef073f8a7c0a 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 488508ff926c03b14d030ffc255ae19fc3ce1f50
+    Translation of GIT committish: 7612daa5e327fe019d441b9d458f88407dca3936
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -33,6 +33,56 @@ NOTE:
   * don't duplicate entries from news-front.itexi
 @end ignore
 
+@newsItem
+@subsubheading ¡Lanzado LilyPond 2.15.95!  @emph{11 de agosto de 2012}
+
+Estamos encantados de anunciar el lanzamiento de LilyPond 2.15.95.
+Con esta edición, se congela el desarrollo sobre la versión 2.15 para
+la inminente versión estable 2.16 y queda abierta solamente a
+correcciones de fallos.
+
+Urgimos a todos los usuarios a que prueben esta versión para asegurar
+la máxima calidad de la próxima versión estable.  Si descubre
+cualquier problema, le rogamos nos envíe @ref{Informes de fallos}.
+
+Las funcionaliades nuevas desde la versión 2.14.2 están relacionadas
+en el manual de @qq{Cambios} en la sección de la página web sobre
+@ref{Desarrollo}.
+
+@newsEnd
+
+
+@newsItem
+@subsubheading ¡Lanzado LilyPond 2.15.42!  @emph{2 de agosto de 2012}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.15.42.  Esta versión
+contiene el conjunto habitual de correcciones de fallos.
+
+Se recomienda enérgicamente a los usuarios normales que @strong{no}
+utilicen esta versión, sino la 2.14 estable en su lugar.  Tenga en
+cuenta que a causa de algunos bugs críticos, esta versión no es
+candidata al lanzamiento de la próxima versión estable.
+
+@newsEnd
+
+
+@newsItem
+@subsubheading El Informe LilyPond, número 27. @emph{2 de agosto 2012}
+
+Vuelve @emph{El informe LilyPond}, con una interesante incursión en
+las funcionalidades relacionadas con Scheme añadidas recientemente por
+el único desarrollador remunerado de nuestra comunidad, David Kastrup
+(gracias a sus @uref{http://lilypond.org/sponsoring.html, donaciones
+continuas}).  En esta edición también se encuentra una panorámica
+sobre ciertos proyectos poco conocidos colaterales a LilyPond, y
+algunas otras noticias más ligeras.
+
+Acérquese y @uref{http://news.lilynet.net/?The-LilyPond-Report-27,
+lea ya el Informe LilyPond número 27}; ¡todos los comentarios y
+aportaciones serán calurosamente bien recibidos!
+
+@newsEnd
+
 
 @newsItem
 @subsubheading Retirada de la versión candidata al lanzamiento @emph{11 de julio de 2012}
diff --git a/Documentation/essay/GNUmakefile b/Documentation/essay/GNUmakefile
deleted file mode 100644 (file)
index 068109c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-depth = ../..
-
-STEPMAKE_TEMPLATES=tex documentation
-LOCALSTEPMAKE_TEMPLATES = lilypond ly
-
-OUT_BIB_FILES = $(addprefix $(outdir)/, $(BIB_FILES))
-EXTRA_DIST_FILES= $(BIB_FILES) $(call src-wildcard,*.bst) 
-BIB_FILES= $(call src-wildcard,*.bib)
-
-include $(depth)/make/stepmake.make
-
-# we no longer create bibliography files in this subdir,
-# since it needs to be done in the main Documentation/ dir.
-# all the below can _probably_ be removed, but I haven't
-# examined it in detail.
-# I think this is just going to wait until we switch to waf.  -gp
-dvi: $(DVI_FILES) $(OUT_BIB_FILES)
-
-ps: $(PS_FILES)
-
-default:
-
-GENHTMLS = engraving colorado computer-notation
-OUTGENHTMLS = $(addprefix $(outdir)/, $(GENHTMLS:%=%.html))
-
-ifeq ($(out),www)
-#   temporary build fix; we don't know yet what's happening
-#   to the literature index.  -gp
-# local-WWW-2: $(addprefix $(outdir)/, $(BIB_FILES:.bib=.html) lit-index.html)
-endif
-
-$(outdir)/%.bib: %.bib
-       ln -f $< $@
-
-$(outdir)/%.html: %.bib
-       BSTINPUTS=$(src-dir) $(buildscript-dir)/bib2html -o $@ $<
-
-local-clean:
-       rm -f fonts.aux fonts.log feta*.tfm feta*.*pk
-
index 9dd71564d9388a55548d7b0f8ab6737469118c87..8c0a3f6941da7465a0ee14f457d6ae1c1a39b13d 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Music engraving
 @chapter Music engraving
@@ -317,9 +317,9 @@ music = {
   \layout {
     \context {
       \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.0
-      \override NoteSpacing #'same-direction-correction = #0.0
-      \override StaffSpacing #'stem-spacing-correction = #0.0
+      \override NoteSpacing.stem-spacing-correction = #0.0
+      \override NoteSpacing.same-direction-correction = #0.0
+      \override StaffSpacing.stem-spacing-correction = #0.0
     }
   }
 }
@@ -345,7 +345,7 @@ music = {
   \layout {
     \context {
       \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.6
+      \override NoteSpacing.stem-spacing-correction = #0.6
     }
   }
 }
@@ -465,8 +465,8 @@ global = {
   <<
     \new Staff \with {
       fontSize = #-4
-      \override StaffSymbol #'staff-space = #(magstep -4)
-      \override StaffSymbol #'thickness = #(magstep -3)
+      \override StaffSymbol.staff-space = #(magstep -4)
+      \override StaffSymbol.thickness = #(magstep -3)
     }
     \relative c' {
       \global
@@ -488,7 +488,7 @@ global = {
         \clef "bass"
         <<
         {
-          \once \override DynamicText #'X-offset = #-3
+          \once \override DynamicText.X-offset = #-3
           <ees g c>2.~->^\f
           <ees g c>4.~ <ees g c>8
         } \\ {
@@ -563,9 +563,9 @@ of the three configurations should we choose for the following slur?
 @lilypond
 \relative c {
   \clef bass
-  \once \override Slur #'positions = #'(1.5 . 1)
+  \once \override Slur.positions = #'(1.5 . 1)
   e8[( f] g[ a b d,)] r4
-  \once \override Slur #'positions = #'(2 . 3)
+  \once \override Slur.positions = #'(2 . 3)
   e8[( f] g[ a b d,)] r4
   e8[( f] g[ a b d,)] r4
 }
@@ -603,7 +603,7 @@ has given each one a score in @q{ugly points}.  The first example gets
 @lilypond
 \relative c {
   \clef bass
-  \once \override Slur #'positions = #'(1.5 . 1)
+  \once \override Slur.positions = #'(1.5 . 1)
   e8[(_"15.39" f] g[ a b d,)] r4
 }
 @end lilypond
@@ -617,7 +617,7 @@ descends for a total of 13.08 ugly points:
 @lilypond
 \relative c {
   \clef bass
-  \once \override Slur #'positions = #'(2 . 3)
+  \once \override Slur.positions = #'(2 . 3)
   e8[(_"13.08" f] g[ a b d,)] r4
 }
 @end lilypond
@@ -830,7 +830,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'staff-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }
@@ -849,7 +849,7 @@ which makes the music extremely difficult to read when the upper and
 lower voices exchange positions temporarily:
 
 @lilypond
-collide = \once \override NoteColumn #'force-hshift = #0
+collide = \once \override NoteColumn.force-hshift = #0
 
 \score {
   <<
@@ -1099,8 +1099,8 @@ consider a more complicated musical example:
         \change Staff = "LH" \oneVoice
         \stemUp g,( c}
       r4
-      \override Stem #'cross-staff = ##t
-      \override Stem #'length = #12
+      \override Stem.cross-staff = ##t
+      \override Stem.length = #12
       <fis, b>) r\fermata
     }
   >>
@@ -1368,14 +1368,14 @@ chord has all directions up (right).
 \score {
   \relative c' {
     \stemDown <e g b>4_>-\arpeggio
-    \override Arpeggio #'direction = #RIGHT
+    \override Arpeggio.direction = #RIGHT
     \stemUp <e g b>4^>-\arpeggio
   }
   \layout {
     \context {
       \Score
-      \override SpacingSpanner #'spacing-increment = #3
-      \override TimeSignature #'transparent = ##t
+      \override SpacingSpanner.spacing-increment = #3
+      \override TimeSignature.transparent = ##t
     }
   }
 }
@@ -1401,12 +1401,12 @@ fragment = {
 <<
    \new Staff \fragment
    \new Staff \with {
-      \override Beam #'beam-thickness = #0.3
-      \override Stem #'thickness = #0.5
-      \override Bar #'thickness = #3.6
-      \override Tie #'thickness = #2.2
-      \override StaffSymbol #'thickness = #3.0
-      \override Tie #'extra-offset = #'(0 .  0.3)
+      \override Beam.beam-thickness = #0.3
+      \override Stem.thickness = #0.5
+      \override Bar.thickness = #3.6
+      \override Tie.thickness = #2.2
+      \override StaffSymbol.thickness = #3.0
+      \override Tie.extra-offset = #'(0 .  0.3)
       }
       \fragment
 >>
@@ -1441,12 +1441,12 @@ note head symbol is changed during the music fragment.
   \set autoBeaming = ##f
   \time 2/4
   <d f g>4
-  \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
-  \once \override NoteHead #'font-size = #-7
-  \once \override NoteHead #'font-family = #'sans
-  \once \override NoteHead #'font-series = #'bold
+  \once \override NoteHead.stencil = #note-head::brew-ez-stencil
+  \once \override NoteHead.font-size = #-7
+  \once \override NoteHead.font-family = #'sans
+  \once \override NoteHead.font-series = #'bold
   <d f g>4
-  \once \override NoteHead #'style = #'cross
+  \once \override NoteHead.style = #'cross
   <d f g>4
   \applyOutput #'Voice #mc-squared
   <d f g>4
@@ -1508,7 +1508,7 @@ following example combines some more exotic constructs.
       \time 4/8
       \key c \minor
       << {
-        \revert Stem #'direction
+        \revert Stem.direction
         \change Staff = down
         \set subdivideBeams = ##t
         g16.[
@@ -1537,16 +1537,16 @@ following example combines some more exotic constructs.
       \clef bass
       \key c \minor
       \set subdivideBeams = ##f
-      \override Stem  #'french-beaming = ##t
-      \override Beam  #'beam-thickness = #0.3
-      \override Stem  #'thickness = #4.0
+      \override Stem.french-beaming = ##t
+      \override Beam.beam-thickness = #0.3
+      \override Stem.thickness = #4.0
       g'16[ b16 fis16 g16]
       << \makeClusters {
         as16 <as b>
         <g b>
         <g cis>
       } \\ {
-        \override Staff.Arpeggio  #'arpeggio-direction =#down
+        \override Staff.Arpeggio.arpeggio-direction =#down
         <cis, e, gis, b, cis>4\arpeggio
       }
     >> }
@@ -1724,7 +1724,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'staff-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }
diff --git a/Documentation/extending/GNUmakefile b/Documentation/extending/GNUmakefile
deleted file mode 100644 (file)
index cab24d6..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-depth = ../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
-
-
index a6109a57740cc52b08dc6839926d66e7fb8499f3..53134bbd8298b66f6404aa0ab09ca02d1aa7b291 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Interfaces for programmers
 @chapter Interfaces for programmers
@@ -359,7 +359,7 @@ manualBeam =
      (parser location beg-end)
      (pair?)
    #@{
-     \once \override Beam #'positions = #beg-end
+     \once \override Beam.positions = #beg-end
    #@})
 
 \relative c' @{
@@ -378,7 +378,7 @@ manualBeam =
      (parser location beg end)
      (number? number?)
    #{
-     \once \override Beam #'positions = #(cons beg end)
+     \once \override Beam.positions = #(cons beg end)
    #})
 
 \relative c' {
@@ -399,14 +399,14 @@ AltOn =
      (parser location mag)
      (number?)
    #{
-     \override Stem #'length = #(* 7.0 mag)
-     \override NoteHead #'font-size =
+     \override Stem.length = #(* 7.0 mag)
+     \override NoteHead.font-size =
        #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
    #})
 
 AltOff = {
-  \revert Stem #'length
-  \revert NoteHead #'font-size
+  \revert Stem.length
+  \revert NoteHead.font-size
 }
 
 \relative c' {
@@ -424,12 +424,12 @@ withAlt =
      (parser location mag music)
      (number? ly:music?)
    #{
-     \override Stem #'length = #(* 7.0 mag)
-     \override NoteHead #'font-size =
+     \override Stem.length = #(* 7.0 mag)
+     \override NoteHead.font-size =
        #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
      #music
-     \revert Stem #'length
-     \revert NoteHead #'font-size
+     \revert Stem.length
+     \revert NoteHead.font-size
    #})
 
 \relative c' {
@@ -458,7 +458,7 @@ displayBarNum =
      (parser location)
      ()
    (if (eq? #t (ly:get-option 'display-bar-numbers))
-       #@{ \once \override Score.BarNumber #'break-visibility = ##f #@}
+       #@{ \once \override Score.BarNumber.break-visibility = ##f #@}
        #@{#@}))
 @end example
 
@@ -1077,13 +1077,13 @@ Properties (like @code{thickness}, @code{direction}, etc.) can be
 set at fixed values with @code{\override}, e.g.
 
 @example
-\override Stem #'thickness = #2.0
+\override Stem.thickness = #2.0
 @end example
 
 Properties can also be set to a Scheme procedure,
 
 @lilypond[fragment,verbatim,quote,relative=2]
-\override Stem #'thickness = #(lambda (grob)
+\override Stem.thickness = #(lambda (grob)
     (if (= UP (ly:grob-property grob 'direction))
         2.0
         7.0))
@@ -1153,7 +1153,7 @@ my-callback = #(lambda (grob)
 
 TODO: the example for this section is ill-chosen since
 @example
-F = -\tweak #'font-size #-3 -\flageolet
+F = -\tweak font-size #-3 -\flageolet
 @end example
 (note the @samp{-} marking it as a post event) will actually work fine
 for the stated purpose.  Until this section gets a rewrite, let's
@@ -1163,7 +1163,7 @@ The main disadvantage of @code{\tweak} is its syntactical
 inflexibility.  For example, the following produces a syntax error.
 
 @example
-F = \tweak #'font-size #-3 -\flageolet
+F = \tweak font-size #-3 -\flageolet
 
 \relative c'' @{
   c4^\F c4_\F
@@ -1258,7 +1258,7 @@ of the broken tie is repositioned.
          (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
 
 \relative c'' {
-  \override Tie #'after-line-breaking =
+  \override Tie.after-line-breaking =
   #my-callback
   c1 ~ \break
   c2 ~ c
@@ -1281,7 +1281,7 @@ and @code{PaperColumn}.  They can be changed with the
 
 @example
 \overrideProperty
-#"Score.NonMusicalPaperColumn"  % Grob name
+Score.NonMusicalPaperColumn  % Grob name
 #'line-break-system-details     % Property name
 #'((next-padding . 20))         % Value
 @end example
index c75f54630001bc8db7b30ec410e067daf0ac9950..65a28c62d272c0cff1d7312901d085e3ec2419d8 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Scheme tutorial
 @chapter Scheme tutorial
@@ -209,7 +209,15 @@ For a complete listing see the Guile reference guide,
 There are also compound data types in Scheme.  The  types commonly used in
 LilyPond programming include pairs, lists, alists, and hash tables.
 
-@subheading Pairs
+@menu
+* Pairs::
+* Lists::
+* Association lists (alists)::
+* Hash tables::
+@end menu
+
+@node Pairs
+@unnumberedsubsubsec Pairs
 
 The foundational compound data type of Scheme is the @code{pair}.  As
 might be expected from its name, a pair is two values glued together.
@@ -264,7 +272,8 @@ Note:  @code{cdr} is pronounced "could-er", according Sussman and
 Abelson, see
 @uref{http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#footnote_Temp_133}
 
-@subheading Lists
+@node Lists
+@unnumberedsubsubsec Lists
 
 A very common Scheme data structure is the @emph{list}.  Formally, a
 list is defined as either the empty list (represented as @code{'()},
@@ -294,7 +303,8 @@ Lists are a central part of Scheme.  In, fact, Scheme is considered
 a dialect of lisp, where @q{lisp} is an abbreviation for
 @q{List Processing}.  Scheme expressions are all lists.
 
-@subheading Association lists (alists)
+@node Association lists (alists)
+@unnumberedsubsubsec Association lists (alists)
 
 A special type of list is an @emph{association list} or @emph{alist}.
 An alist is used to store data for easy retrieval.
@@ -318,7 +328,8 @@ guile>
 
 Alists are widely used in LilyPond to store properties and other data.
 
-@subheading Hash tables
+@node Hash tables
+@unnumberedsubsubsec Hash tables
 
 A data structure that is used occasionally in LilyPond.  A hash table
 is similar to an array, but the indexes to the array can be any type
@@ -488,7 +499,14 @@ Scheme procedures are executable scheme expressions that return a
 value resulting from their execution.  They can also manipulate
 variables defined outside of the procedure.
 
-@subheading Defining procedures
+@menu
+* Defining procedures::
+* Predicates::
+* Return values::
+@end menu
+
+@node Defining procedures
+@unnumberedsubsubsec Defining procedures
 
 Procedures are defined in Scheme with define
 
@@ -514,7 +532,8 @@ guile> (average 3 12)
 15/2
 @end lisp
 
-@subheading Predicates
+@node Predicates
+@unnumberedsubsubsec Predicates
 
 Scheme procedures that return boolean values are often called
 @emph{predicates}.  By convention (but not necessity), predicate names
@@ -528,7 +547,8 @@ guile> (less-than-ten? 15)
 #f
 @end lisp
 
-@subheading Return values
+@node Return values
+@unnumberedsubsubsec Return values
 
 Scheme procedures always return a return value, which is the value
 of the last expression executed in the procedure.  The return
@@ -561,7 +581,13 @@ guile> (let ((x 2) (y 3) (z 4)) (display (+ x y)) (display (- z 4))
 @node Scheme conditionals
 @subsection Scheme conditionals
 
-@subheading if
+@menu
+* if::
+* cond::
+@end menu
+
+@node if
+@unnumberedsubsubsec if
 
 Scheme has an @code{if} procedure:
 
@@ -581,7 +607,8 @@ guile> (if (> a b) "a is greater than b" "a is not greater than b")
 "a is not greater than b"
 @end lisp
 
-@subheading cond
+@node cond
+@unnumberedsubsubsec cond
 
 Another conditional procedure in scheme is @code{cond}:
 
@@ -902,7 +929,7 @@ the alist with both a key and a value.  The LilyPond syntax for doing
 this is:
 
 @example
-\override Stem #'thickness = #2.6
+\override Stem.thickness = #2.6
 @end example
 
 This instruction adjusts the appearance of stems.  An alist entry
@@ -927,14 +954,23 @@ while @code{twentyFour} is a variable.
 @node LilyPond compound variables
 @subsection LilyPond compound variables
 
-@subheading Offsets
+@menu
+* Offsets::
+* Fractions::
+* Extents::
+* Property alists::
+* Alist chains::
+@end menu
+
+@node Offsets
+@unnumberedsubsubsec Offsets
 
 Two-dimensional offsets (X and Y coordinates) are stored as @emph{pairs}.
 The @code{car} of the offset is the X coordinate, and the @code{cdr} is
 the Y coordinate.
 
 @example
-\override TextScript #'extra-offset = #'(1 . 2)
+\override TextScript.extra-offset = #'(1 . 2)
 @end example
 
 This assigns the pair @code{(1 . 2)} to the @code{extra-offset}
@@ -944,7 +980,8 @@ this command moves the object 1 staff space to the right, and 2 spaces up.
 
 Procedures for working with offsets are found in @file{scm/lily-library.scm}.
 
-@subheading Fractions
+@node Fractions
+@unnumberedsubsubsec Fractions
 
 Fractions as used by LilyPond are again stored as @emph{pairs}, this
 time of unsigned integers.  While Scheme can represent rational numbers
@@ -954,7 +991,8 @@ no negative @q{fractions} in LilyPond's mind.  So @code{2/4} in LilyPond
 means @code{(2 . 4)} in Scheme, and @code{#2/4} in LilyPond means
 @code{1/2} in Scheme.
 
-@subheading Extents
+@node Extents
+@unnumberedsubsubsec Extents
 
 Pairs are also used to store intervals, which represent a range of numbers
 from the minimum (the @code{car}) to the maximum (the @code{cdr}).
@@ -967,7 +1005,8 @@ Procedures for working with intervals are found in
 @file{scm/lily-library.scm}.  These procedures should be used when possible
 to ensure consistency of code.
 
-@subheading Property alists
+@node Property alists
+@unnumberedsubsubsec Property alists
 
 A property alist is a LilyPond data structure that is an alist whose
 keys are properties and whose values are Scheme expressions that give
@@ -975,7 +1014,8 @@ the desired value for the property.
 
 LilyPond properties are Scheme symbols, such as @code{'thickness}.
 
-@subheading Alist chains
+@node Alist chains
+@unnumberedsubsubsec Alist chains
 
 An alist chain is a list containing property alists.
 
@@ -1490,7 +1530,7 @@ We may verify that this music function works correctly,
 
 We have seen how LilyPond output can be heavily modified using
 commands like
-@code{\override TextScript #'extra-offset = ( 1 . -1)}.  But
+@code{\override TextScript.extra-offset = ( 1 . -1)}.  But
 we have even more power if we use Scheme.  For a full explanation
 of this, see the @ref{Scheme tutorial}, and
 @ref{Interfaces for programmers}.
@@ -1506,7 +1546,7 @@ TODO Find a simple example
 @lilypond[quote,verbatim,ragged-right]
 padText = #(define-music-function (parser location padding) (number?)
 #{
-  \once \override TextScript #'padding = #padding
+  \once \override TextScript.padding = #padding
 #})
 
 \relative c''' {
@@ -1530,7 +1570,7 @@ We can use it to create new commands:
 tempoPadded = #(define-music-function (parser location padding tempotext)
   (number? markup?)
 #{
-  \once \override Score.MetronomeMark #'padding = #padding
+  \once \override Score.MetronomeMark.padding = #padding
   \tempo \markup { \bold #tempotext }
 #})
 
index d9695cbb766f214c3c5417fe890ae3639b01d118..420c8db9d68c593e99c0c4eeb9ea351ab23238d8 100644 (file)
@@ -1,6 +1,5 @@
 ISOLANG = fr
 depth = ../..
-SUBDIRS = web learning notation texidocs usage included essay extending
 STEPMAKE_TEMPLATES = documentation texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
 
diff --git a/Documentation/fr/essay/GNUmakefile b/Documentation/fr/essay/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 6e4920878f69ea3ef7f28f4a209c9324e589840b..d2e92ee5a77d387a9aff86bdf2ce07401333fc23 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Jean-Charles Malahieude, John Mandereau, Gauvain Pocentek
 
@@ -344,9 +344,9 @@ music = {
   \layout {
     \context {
       \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.0
-      \override NoteSpacing #'same-direction-correction = #0.0
-      \override StaffSpacing #'stem-spacing-correction = #0.0
+      \override NoteSpacing.stem-spacing-correction = #0.0
+      \override NoteSpacing.same-direction-correction = #0.0
+      \override StaffSpacing.stem-spacing-correction = #0.0
     }
   }
 }
@@ -372,7 +372,7 @@ music = {
   \layout {
     \context {
       \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.6
+      \override NoteSpacing.stem-spacing-correction = #0.6
     }
   }
 }
@@ -500,8 +500,8 @@ global = {
   <<
     \new Staff \with {
       fontSize = #-4
-      \override StaffSymbol #'staff-space = #(magstep -4)
-      \override StaffSymbol #'thickness = #(magstep -3)
+      \override StaffSymbol.staff-space = #(magstep -4)
+      \override StaffSymbol.thickness = #(magstep -3)
     }
     \relative c' {
       \global
@@ -523,7 +523,7 @@ global = {
         \clef "bass"
         <<
         {
-          \once \override DynamicText #'X-offset = #-3
+          \once \override DynamicText.X-offset = #-3
           <ees g c>2.~->^\f
           <ees g c>4.~ <ees g c>8
         } \\ {
@@ -615,9 +615,9 @@ choisir pour formater la liaison ?
 @lilypond
 \relative c {
     \clef bass
-    \once \override Slur #'positions = #'(1.5 . 1)
+    \once \override Slur.positions = #'(1.5 . 1)
     e8[( f] g[ a b d,)] r4
-    \once \override Slur #'positions = #'(2 . 3)
+    \once \override Slur.positions = #'(2 . 3)
     e8[( f] g[ a b d,)] r4
     e8[( f] g[ a b d,)] r4
 }
@@ -660,7 +660,7 @@ notamment pour l'effleurement de la tête de note.
 @lilypond
 \relative c {
     \clef bass
-    \once \override Slur #'positions = #'(1.5 . 1)
+    \once \override Slur.positions = #'(1.5 . 1)
     e8[(_"15.39" f] g[ a b d,)] r4
 }
 @end lilypond
@@ -676,7 +676,7 @@ fait un total de 13,08 points de laideur.
 @lilypond
 \relative c {
     \clef bass
-    \once \override Slur #'positions = #'(2 . 3)
+    \once \override Slur.positions = #'(2 . 3)
     e8[(_"13.08" f] g[ a b d,)] r4
 }
 @end lilypond
@@ -900,7 +900,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'staff-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }
@@ -923,7 +923,7 @@ inférieure de croisent temporairement :
 
 @c KEEP LY
 @lilypond
-collide = \once \override NoteColumn #'force-hshift = #0
+collide = \once \override NoteColumn.force-hshift = #0
 
 \score {
   <<
@@ -1183,8 +1183,8 @@ musique se complique :
         \change Staff = "LH" \oneVoice
         \stemUp g,( c}
       r4
-      \override Stem #'cross-staff = ##t
-      \override Stem #'length = #12
+      \override Stem.cross-staff = ##t
+      \override Stem.length = #12
       <fis, b>) r\fermata
     }
   >>
@@ -1470,14 +1470,14 @@ vers le haut (ou la droite) pour le second.
 \score {
   \relative c' {
     \stemDown <e g b>4_>-\arpeggio
-    \override Arpeggio #'direction = #RIGHT
+    \override Arpeggio.direction = #RIGHT
     \stemUp <e g b>4^>-\arpeggio
   }
   \layout {
     \context {
       \Score
-      \override SpacingSpanner #'spacing-increment = #3
-      \override TimeSignature #'transparent = ##t
+      \override SpacingSpanner.spacing-increment = #3
+      \override TimeSignature.transparent = ##t
     }
   }
 }
@@ -1502,12 +1502,12 @@ fragment = {
 <<
    \new Staff \fragment
    \new Staff \with {
-      \override Beam #'beam-thickness = #0.3
-      \override Stem #'thickness = #0.5
-      \override Bar #'thickness = #3.6
-      \override Tie #'thickness = #2.2
-      \override StaffSymbol #'thickness = #3.0
-      \override Tie #'extra-offset = #'(0 .  0.3)
+      \override Beam.beam-thickness = #0.3
+      \override Stem.thickness = #0.5
+      \override Bar.thickness = #3.6
+      \override Tie.thickness = #2.2
+      \override StaffSymbol.thickness = #3.0
+      \override Tie.extra-offset = #'(0 .  0.3)
       }
       \fragment
 >>
@@ -1543,12 +1543,12 @@ musical :
   \set autoBeaming = ##f
   \time 2/4
   <d f g>4
-  \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
-  \once \override NoteHead #'font-size = #-7
-  \once \override NoteHead #'font-family = #'sans
-  \once \override NoteHead #'font-series = #'bold
+  \once \override NoteHead.stencil = #note-head::brew-ez-stencil
+  \once \override NoteHead.font-size = #-7
+  \once \override NoteHead.font-family = #'sans
+  \once \override NoteHead.font-series = #'bold
   <d f g>4
-  \once \override NoteHead #'style = #'cross
+  \once \override NoteHead.style = #'cross
   <d f g>4
   \applyOutput #'Voice #mc-squared
   <d f g>4
@@ -1614,7 +1614,7 @@ constructions@dots{}
       \time 4/8
       \key c \minor
       << {
-        \revert Stem #'direction
+        \revert Stem.direction
         \change Staff = down
         \set subdivideBeams = ##t
         g16.[
@@ -1643,16 +1643,16 @@ constructions@dots{}
       \clef bass
       \key c \minor
       \set subdivideBeams = ##f
-      \override Stem  #'french-beaming = ##t
-      \override Beam  #'beam-thickness = #0.3
-      \override Stem  #'thickness = #4.0
+      \override Stem.french-beaming = ##t
+      \override Beam.beam-thickness = #0.3
+      \override Stem.thickness = #4.0
       g'16[ b16 fis16 g16]
       << \makeClusters {
         as16 <as b>
         <g b>
         <g cis>
       } \\ {
-        \override Staff.Arpeggio  #'arpeggio-direction =#down
+        \override Staff.Arpeggio.arpeggio-direction =#down
         <cis, e, gis, b, cis>4\arpeggio
       }
     >> }
@@ -1835,7 +1835,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'staff-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }
diff --git a/Documentation/fr/extending/GNUmakefile b/Documentation/fr/extending/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 6869d2dc04830dd2fada011fe4df379b8b8f73d0..b2f3916a1ca8f4dce7edc93f5ebbfaca2991ebd7 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: Gilles Thibault
@@ -422,7 +422,7 @@ manualBeam =
      (parser location beg-end)
      (pair?)
    #@{
-     \once \override Beam #'positions = #beg-end
+     \once \override Beam.positions = #beg-end
    #@})
 
 \relative c' @{
@@ -440,7 +440,7 @@ manualBeam =
      (parser location beg end)
      (number? number?)
    #{
-     \once \override Beam #'positions = #(cons beg end)
+     \once \override Beam.positions = #(cons beg end)
    #})
 
 \relative c' {
@@ -462,14 +462,14 @@ AltOn =
      (parser location mag)
      (number?)
    #{
-     \override Stem #'length = #(* 7.0 mag)
-     \override NoteHead #'font-size =
+     \override Stem.length = #(* 7.0 mag)
+     \override NoteHead.font-size =
        #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
    #})
 
 AltOff = {
-  \revert Stem #'length
-  \revert NoteHead #'font-size
+  \revert Stem.length
+  \revert NoteHead.font-size
 }
 
 \relative c' {
@@ -488,12 +488,12 @@ withAlt =
      (parser location mag music)
      (number? ly:music?)
    #{
-     \override Stem #'length = #(* 7.0 mag)
-     \override NoteHead #'font-size =
+     \override Stem.length = #(* 7.0 mag)
+     \override NoteHead.font-size =
        #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
      #music
-     \revert Stem #'length
-     \revert NoteHead #'font-size
+     \revert Stem.length
+     \revert NoteHead.font-size
    #})
 
 \relative c' {
@@ -523,7 +523,7 @@ displayBarNum =
      (parser location)
      ()
    (if (eq? #t (ly:get-option 'display-bar-numbers))
-       #@{ \once \override Score.BarNumber #'break-visibility = ##f #@}
+       #@{ \once \override Score.BarNumber.break-visibility = ##f #@}
        #@{#@}))
 @end example
 
@@ -1195,14 +1195,14 @@ peuvent voir leur valeur figée à l'aide d'un @code{\override} comme
 ici@tie{}:
 
 @example
-\override Stem #'thickness = #2.0
+\override Stem.thickness = #2.0
 @end example
 
 Une procédure Scheme peut aussi se charger de modifier des
 propriétés@tie{}:
 
 @lilypond[fragment,verbatim,quote,relative=2]
-\override Stem #'thickness = #(lambda (grob)
+\override Stem.thickness = #(lambda (grob)
     (if (= UP (ly:grob-property grob 'direction))
         2.0
         7.0))
@@ -1280,7 +1280,7 @@ my-callback = #(lambda (grob)
 
 À REVOIR : l'exemple de cette rubrique n'est pas des plus judicieux puisque
 @example
-F = -\tweak #'font-size #-3 -\flageolet
+F = -\tweak font-size #-3 -\flageolet
 @end example
 (notez le @samp{-} qui qualifie d'événement postérieur) fonctionne
 correctement dans ce cas d'espèce.  En attendant un remaniement de cette
@@ -1290,7 +1290,7 @@ L'inconvénient principal de la commande @code{\tweak} est la rigidité de
 sa syntaxe.  Par exemple, le code suivant produit une erreur.
 
 @example
-F = \tweak #'font-size #-3 -\flageolet
+F = \tweak font-size #-3 -\flageolet
 
 \relative c'' @{
   c4^\F c4_\F
@@ -1393,7 +1393,7 @@ rehaussé.
          (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
 
 \relative c'' {
-  \override Tie #'after-line-breaking =
+  \override Tie.after-line-breaking =
   #my-callback
   c1 ~ \break
   c2 ~ c
@@ -1417,7 +1417,7 @@ modifiés par @code{\override}.  Parmi ceux-là, les objets
 
 @example
 \overrideProperty
-#"Score.NonMusicalPaperColumn"  % Nom de l'objet
+Score.NonMusicalPaperColumn  % Nom de l'objet
 #'line-break-system-details     % Nom de la propriété
 #'((next-padding . 20))         % Valeur
 @end example
index c63427f72e0a3333457fc054a9ef571aabbd4de5..5b512bcd9dfb62b48c6a776f7373b9856202dce5 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Jean-Charles Malahieude
 
@@ -986,7 +986,7 @@ la valeur associée.  Voici comment procéder selon la syntaxe de
 LilyPond :
 
 @example
-\override Stem #'thickness = #2.6
+\override Stem.thickness = #2.6
 @end example
 
 Cette instruction ajuste l'apparence des hampes.  Une entrée
@@ -1021,7 +1021,7 @@ correspond à l'abscisse (coordonnée X) et le @code{cdr} à l'ordonnée
 (coordonnée Y).
 
 @example
-\override TextScript #'extra-offset = #'(1 . 2)
+\override TextScript.extra-offset = #'(1 . 2)
 @end example
 
 Cette clause affecte la paire @code{(1 . 2)} à la propriété
@@ -1618,7 +1618,7 @@ Par acquis de conscience, vérifions que tout ceci fonctione :
 
 We have seen how LilyPond output can be heavily modified using
 commands like
-@code{\override TextScript #'extra-offset = ( 1 . -1)}.  But
+@code{\override TextScript.extra-offset = ( 1 . -1)}.  But
 we have even more power if we use Scheme.  For a full explanation
 of this, see the @ref{Scheme tutorial}, and
 @ref{Interfaces for programmers}.
@@ -1634,7 +1634,7 @@ TODO Find a simple example
 @lilypond[quote,verbatim,ragged-right]
 padText = #(define-music-function (parser location padding) (number?)
 #{
-  \once \override TextScript #'padding = #padding
+  \once \override TextScript.padding = #padding
 #})
 
 \relative c''' {
@@ -1658,7 +1658,7 @@ We can use it to create new commands:
 tempoPadded = #(define-music-function (parser location padding tempotext)
   (number? markup?)
 #{
-  \once \override Score.MetronomeMark #'padding = #padding
+  \once \override Score.MetronomeMark.padding = #padding
   \tempo \markup { \bold #tempotext }
 #})
 
diff --git a/Documentation/fr/included/GNUmakefile b/Documentation/fr/included/GNUmakefile
deleted file mode 100644 (file)
index afe7a4d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth = ../../..
-
-STEPMAKE_TEMPLATES=documentation
-
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ly)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/fr/learning/GNUmakefile b/Documentation/fr/learning/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index de1d02fcbc33f32d7dc0ad2c4f31654ddb5d7af4..d9fabfad0742c8441f8035413d0dc7e884874984 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: John Mandereau
@@ -827,15 +827,15 @@ les voix -- ce qui est plus compliqué sera décortiqué plus tard.
   \\  % Voice two
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No voice three
   \\  % Voice four
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -875,15 +875,15 @@ que vous ne comprendriez pas.
   \\  % Voice two
     { \voiceTwoStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No Voice three (we want stems down)
   \\  % Voice four
     { \voiceThreeStyle
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -2954,8 +2954,7 @@ fichier @file{scm/define-grobs.scm}, en examinant la définition du
         @}
       >>  % fin du contexte de la portée ManuelUn
       \new Staff = "ManuelDeux" \with @{
-        \override VerticalAxisGroup
-          #'staff-staff-spacing  #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       @} <<
         \ArmureMetrique
         \clef "bass"
@@ -3019,8 +3018,7 @@ PedalOrganMusic = \relative c {
         }
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with {
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       } <<
         \keyTime
         \clef "bass"
@@ -3087,7 +3085,7 @@ l'utilisateur) -- pour des retouches :
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
 
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
 fthenp =_\markup {
   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
 }
@@ -3119,7 +3117,7 @@ lire, et particulièrement la dernière ligne.
 violin = \relative c'' @{
   \repeat volta 2 @{
     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
-    \once \override TextScript #'padding = #5.0
+    \once \override TextScript.padding = #5.0
     c4.^"hi there!" d8 e' f g d |
     c,4.\markup @{
       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
@@ -3145,7 +3143,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
index 36e5232f733f26aa5e2e23878a76e0aaa186fac1..1b60a1b2ece46c2e878c9f0fa2d9d973c054a6d4 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave, Nicolas Klutchnikoff, Damien Heurtebise
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -255,9 +255,9 @@ notes :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a b c |
 @end lilypond
 
@@ -291,11 +291,11 @@ couleur des deux dernières notes à leur valeur par défaut :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b4 c |
 @end lilypond
 
@@ -319,11 +319,11 @@ d'une seule note :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\once \override NoteHead #'color = #green
+\once \override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b c |
 @end lilypond
 
@@ -365,7 +365,7 @@ d'abord ce que donnerait @code{\once \override} :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-\once \override NoteHead #'font-size = #-3
+\once \override NoteHead.font-size = #-3
 <c e g>4
 <c e g>4
 @end lilypond
@@ -391,7 +391,7 @@ accord peut être modifiée de cette manière :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-<c \tweak #'font-size #-3 e g>4
+<c \tweak font-size #-3 e g>4
 @end lilypond
 
 Vous noterez que la syntaxe de @code{\tweak} est différente de
@@ -414,8 +414,8 @@ une série d'articulations, n'en modifier qu'une seule.  Ainsi :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4^"Black"
-  -\tweak #'color #red ^"Red"
-  -\tweak #'color #green _"Green"
+  -\tweak color #red ^"Red"
+  -\tweak color #green _"Green"
 @end lilypond
 
 @noindent
@@ -434,8 +434,8 @@ explicitement l'objet de rendu, si tant est que LilyPond puisse remonter
 jusqu'à l'événement originel :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<\tweak Accidental #'color #red   cis4
- \tweak Accidental #'color #green es
+<\tweak Accidental.color #red   cis4
+ \tweak Accidental.color #green es
                                   g>
 @end lilypond
 
@@ -468,9 +468,9 @@ crochet de triolet court.
 @cindex couleur, exemple d'utilisation de la propriété
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\tweak #'direction #up
+\tweak direction #up
 \times 4/3 {
-  \tweak #'color #red
+  \tweak color #red
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
@@ -490,12 +490,11 @@ avec la commande @code{\override} :
 @c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \times 2/3 { c8[ c c] }
-\once \override TupletNumber
-  #'text = #tuplet-number::calc-fraction-text
+\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
 \times 2/3 {
   c8[ c]
   c8[ c]
-  \once \override TupletNumber #'transparent = ##t
+  \once \override TupletNumber.transparent = ##t
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
 }
@@ -634,7 +633,7 @@ dans un premier temps, pour nous assurer que la commande fonctionne.
 Nous obtenons :
 
 @example
-\override Slur #'thickness = #5.0
+\override Slur.thickness = #5.0
 @end example
 
 N'oublions pas le @code{#'} qui doit précéder le nom de la propriété et
@@ -654,7 +653,7 @@ proche d'elle.}  Essayons :
   \time 6/8
   {
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     r4 bes8 bes[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -729,7 +728,7 @@ simplement ignorée.  Il faut donc que la commande introduite par
   {
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes8[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -774,10 +773,10 @@ débute la liaison :
   {
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes[( g]) g |
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     g8[( es]) es d[( f]) as |
     as8 g
   }
@@ -804,11 +803,11 @@ la seconde liaison la commande @code{\revert}, qui ramène la propriété
   {
     r4 bes8
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     bes[( g]) g |
     g8[( es]) es
     % Revert thickness of all following slurs to default of 1.2
-    \revert Slur #'thickness
+    \revert Slur.thickness
     d8[( f]) as |
     as8 g
   }
@@ -907,7 +906,7 @@ Ainsi, la commande @code{\override} pour mettre les paroles en italique
 est :
 
 @example
-\override LyricText #'font-shape = #'italic
+\override LyricText.font-shape = #'italic
 @end example
 
 @noindent
@@ -929,7 +928,7 @@ comme ceci :
     as8 g
   }
   \addlyrics {
-    \override LyricText #'font-shape = #'italic
+    \override LyricText.font-shape = #'italic
     The man who | feels love's sweet e -- | mo -- tion
   }
 }
@@ -958,7 +957,7 @@ joints et l'interpréteur ne pourra pas les reconnaître.  La formulation
 correcte est donc :
 
 @example
-\override Lyrics . LyricText #'font-shape = #'italic
+\override Lyrics.LyricText.font-shape = #'italic
 @end example
 
 @warning{Dans la saisie des paroles, pensez à toujours laisser une
@@ -1111,7 +1110,7 @@ encore, le contexte concerné (@code{Voice} en l'occurrence) :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override BarLine #'stencil = ##f
+  \override BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1137,7 +1136,7 @@ mentionnant le bon contexte :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'stencil = ##f
+  \override Staff.BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1157,7 +1156,7 @@ zéro :
 @lilypond[quote,verbatim,relative=2]
 {
   c4 c
-  \once \override NoteHead #'stencil = #point-stencil
+  \once \override NoteHead.stencil = #point-stencil
   c4 c
 }
 @end lilypond
@@ -1187,7 +1186,7 @@ vecteur, et le premier @code{#} est là, comme toujours avec la commande
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
+  \override Staff.BarLine.break-visibility = #'#(#f #f #f)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1223,7 +1222,7 @@ pour rendre la métrique transparente est :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'transparent = ##t
+  \override Staff.TimeSignature.transparent = ##t
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1243,7 +1242,7 @@ attribuons plutôt au stencil des métriques la valeur @code{#f} :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1285,7 +1284,7 @@ Pour mettre les barres de mesure en blanc, on écrit :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #white
+  \override Staff.BarLine.color = #white
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1319,7 +1318,7 @@ comme ceci :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(x11-color 'white)
+  \override Staff.BarLine.color = #(x11-color 'white)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1350,7 +1349,7 @@ Ainsi, pour choisir la couleur rouge, la valeur serait
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(rgb-color 1 1 1)
+  \override Staff.BarLine.color = #(rgb-color 1 1 1)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1374,12 +1373,12 @@ notre exemple différentes nuances de gris :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
-  \override Staff.TimeSignature #'color = #(x11-color 'grey60)
-  \override Staff.Clef          #'color = #(x11-color 'grey60)
-  \override Voice.NoteHead      #'color = #(x11-color 'grey85)
-  \override Voice.Stem          #'color = #(x11-color 'grey85)
-  \override Staff.BarLine       #'color = #(x11-color 'grey10)
+  \override Staff.StaffSymbol.color = #(x11-color 'grey30)
+  \override Staff.TimeSignature.color = #(x11-color 'grey60)
+  \override Staff.Clef.color = #(x11-color 'grey60)
+  \override Voice.NoteHead.color = #(x11-color 'grey85)
+  \override Voice.Stem.color = #(x11-color 'grey85)
+  \override Staff.BarLine.color = #(x11-color 'grey10)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1450,8 +1449,8 @@ régler le stencil de chacun sur @code{#f}, comme ceci :
         alignAboveContext = #"main"
       }
       {
-        \override Staff.Clef #'stencil = ##f
-        \override Staff.TimeSignature #'stencil = ##f
+        \override Staff.Clef.stencil = ##f
+        \override Staff.TimeSignature.stencil = ##f
         { f8 f c }
       }
     >>
@@ -1511,9 +1510,9 @@ Remplaçons donc l'exemple ci-dessus par celui-ci :
       \new Staff \with {
         alignAboveContext = #"main"
         % Don't print clefs in this staff
-        \override Clef #'stencil = ##f
+        \override Clef.stencil = ##f
         % Don't print time signatures in this staff
-        \override TimeSignature #'stencil = ##f
+        \override TimeSignature.stencil = ##f
       }
       { f8 f c }
     >>
@@ -1544,7 +1543,7 @@ taille de police de chaque type d'objet avec des commandes comme
 celle-ci pour les têtes de notes (@code{NoteHead}) :
 
 @example
-\override NoteHead #'font-size = #-2
+\override NoteHead.font-size = #-2
 @end example
 
 soit nous changeons la taille de toutes les polices à la fois grâce à la
@@ -1576,8 +1575,8 @@ Essayons sur l'exemple d'ossia :
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         % Reduce all font sizes by ~24%
         fontSize = #-2
       }
@@ -1647,11 +1646,11 @@ augmente, les objets en question.  Voici comment elle s'utilise :
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         fontSize = #-2
         % Reduce stem length and line spacing to match
-        \override StaffSymbol #'staff-space = #(magstep -2)
+        \override StaffSymbol.staff-space = #(magstep -2)
       }
       { f8 f c }
     >>
@@ -1814,11 +1813,11 @@ notes de nouveau avec le comportement par défaut.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4 g c a |
-\override Stem #'direction = #DOWN
+\override Stem.direction = #DOWN
 a4 g c a |
-\override Stem #'direction = #UP
+\override Stem.direction = #UP
 a4 g c a |
-\revert Stem #'direction
+\revert Stem.direction
 a4 g c a |
 @end lilypond
 
@@ -1909,9 +1908,9 @@ les deux suivantes montrent l'effet lorsqu'on indique @code{DOWN} et
 
 @lilypond[quote,verbatim,relative=2]
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #DOWN
+\override Fingering.direction = #DOWN
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #UP
+\override Fingering.direction = #UP
 c4-5 a-3 f-1 c'-5 |
 @end lilypond
 
@@ -2013,7 +2012,7 @@ par défaut donnée dans la RPI à la page de l'objet
 @code{Fingering} étant @code{-5}, essayons @code{-7} :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering #'font-size = #-7
+\override Fingering.font-size = #-7
 \set fingeringOrientations = #'(left)
 <f-2>4
 <c-1 e-2 g-3 b-5>4
@@ -2118,7 +2117,7 @@ d'entre eux.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
@@ -2170,12 +2169,12 @@ créé dans le contexte @code{Staff} :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
 % Place following Ottava Bracket below Text Spanners
-\once \override Staff.OttavaBracket #'outside-staff-priority = #340
+\once \override Staff.OttavaBracket.outside-staff-priority = #340
 % Start Ottava Bracket
 \ottava #1
 c'4 \startTextSpan
@@ -2219,10 +2218,10 @@ L'exemple suivant illustre ces deux différentes méthodes.
 @lilypond[quote,verbatim,relative=2]
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 c4(
-\once \override TextScript #'avoid-slur = #'inside
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.avoid-slur = #'inside
+\once \override TextScript.outside-staff-priority = ##f
 c4^\markup { \tiny \sharp } d4.) c8 |
-\once \override Slur #'outside-staff-priority = #500
+\once \override Slur.outside-staff-priority = #500
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 @end lilypond
 
@@ -2241,7 +2240,7 @@ de @qq{Text3} jusqu'à une valeur très haute :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c2^"Text2" |
-\once \override TextScript #'outside-staff-priority = #500
+\once \override TextScript.outside-staff-priority = #500
 c2^"Text3"
 c2^"Text4" |
 @end lilypond
@@ -2306,12 +2305,12 @@ c,,2^"Text" c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 c,,2^"Long Text   " c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 \textLengthOn        % and turn on textLengthOn
 c,,2^"Long Text   "  % Spaces at end are honored
 c''2 |
@@ -2392,7 +2391,7 @@ leur vraie largeur se manifeste.  La commande pour y parvenir avec des
 indications de nuances est :
 
 @example
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 @end example
 
 @noindent
@@ -2403,7 +2402,7 @@ Voyons si ça marche sur notre exemple précédent :
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 a4\f b\mf c\mp b\p |
 @end lilypond
 
@@ -2424,7 +2423,7 @@ et le bord droit d'une demie unité, on obtient :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 staff space
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2722,7 +2721,7 @@ des symboles qui sont imprimés au-dessus ou en dessous des notes.
 
 @lilypond[quote,fragment,relative=1,verbatim]
 c2\fermata
-\override Script #'padding = #3
+\override Script.padding = #3
 b2\fermata
 @end lilypond
 
@@ -2731,11 +2730,11 @@ b2\fermata
 
 @lilypond[quote,fragment,relative=1,verbatim]
 % This will not work, see below:
-\override MetronomeMark #'padding = #3
+\override MetronomeMark.padding = #3
 \tempo 4=120
 c1 |
 % This works:
-\override Score.MetronomeMark #'padding = #3
+\override Score.MetronomeMark.padding = #3
 \tempo 4=80
 d1 |
 @end lilypond
@@ -2776,15 +2775,13 @@ sesquisharp = \markup { \sesquisharp }
 \relative c'' {
   c4
   % This prints a sesquisharp but the spacing is too small
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 c
   % This improves the spacing
-  \once \override Score.AccidentalPlacement #'right-padding = #0.6
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Score.AccidentalPlacement.right-padding = #0.6
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 |
 }
 @end lilypond
@@ -2825,9 +2822,9 @@ précédente :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 unit
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 % Align dynamics to a base line 2 units above staff
-\override DynamicLineSpanner #'staff-padding = #2
+\override DynamicLineSpanner.staff-padding = #2
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2845,7 +2842,7 @@ de référence de la note parente :
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
 <a\2>
-\once \override StringNumber #'self-alignment-X = #RIGHT
+\once \override StringNumber.self-alignment-X = #RIGHT
 <a\2>
 @end lilypond
 
@@ -2882,7 +2879,7 @@ de quatre demi-intervalles vers le bas, ce qui donne @code{-8}.
 <<
   { c4 c c c }
   \\
-  \override MultiMeasureRest #'staff-position = #-8
+  \override MultiMeasureRest.staff-position = #-8
   { R1 }
 >>
 @end lilypond
@@ -2913,7 +2910,7 @@ légèrement vers la gauche et de 1,8 intervalle de lignes vers le bas :
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f4-5
-\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
 f4-5
 @end lilypond
 
@@ -2960,7 +2957,7 @@ disgracieuse de la liaison.
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
-\once \override PhrasingSlur #'positions = #'(-4 . -3)
+\once \override PhrasingSlur.positions = #'(-4 . -3)
 \acciaccatura e8\( d8 c~ c d c d\)
 @end lilypond
 
@@ -2998,7 +2995,7 @@ au-dessous de la ligne médiane mais, disons, à 1 :
     { c'1 ~ c'2. e'8 f' }
     \\
     {
-      \override Beam #'positions = #'(-1 . -1)
+      \override Beam.positions = #'(-1 . -1)
       e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
     }
   >>
@@ -3064,13 +3061,13 @@ Et voici le résultat final :
     \\
     {
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
     \\
     \\
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -3106,7 +3103,7 @@ pas fait apparaître les indications de nuance, de doigté ni de pédale.
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3119,7 +3116,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column
         % so the merge will work
         \shiftOnn
@@ -3131,8 +3128,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3312,7 +3309,7 @@ insérer juste devant la première note liée ; elle est censée déplacer la
 liaison vers le haut de 3,5 demi-intervalles de lignes au-dessus de la
 ligne médiane :
 
-@code{\once \override Tie #'staff-position = #3.5}
+@code{\once \override Tie.staff-position = #3.5}
 
 Cela s'adjoint à la deuxième mesure, pour donner :
 
@@ -3321,7 +3318,7 @@ Cela s'adjoint à la deuxième mesure, pour donner :
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3402,7 +3399,7 @@ au début de cette section et
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3477,7 +3474,7 @@ Voici ce que donnent ces modifications :
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3548,7 +3545,7 @@ hampe transparente et déplacer le do avec la propriété
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3562,7 +3559,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column
         % so the merge will work
         \shiftOnn
@@ -3574,8 +3571,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3663,8 +3660,8 @@ on a alors l'impression que la liaison couvre les deux voix.
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
     b8~ b\noBeam
   }
 \\
@@ -3679,9 +3676,9 @@ réglant la longueur (@code{length}) sur @code{8},
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
-    \tweak Stem #'length #8
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
+    \tweak Stem.length #8
     b8~ b8\noBeam
   }
 \\
@@ -3721,7 +3718,7 @@ Nous montrons ci-dessous le résultat des deux méthodes :
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'transparent = ##t
+    \once \override Score.MetronomeMark.transparent = ##t
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata |
@@ -3743,7 +3740,7 @@ Nous montrons ci-dessous le résultat des deux méthodes :
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'stencil = ##f
+    \once \override Score.MetronomeMark.stencil = ##f
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata |
@@ -3790,11 +3787,11 @@ enchâssées dans un @code{\markup} -- ce qui les rend pénibles à saisir
 @code{\revert} ?
 
 @example
-@code{\override Lyrics . LyricText #'font-shape = #'italic}
-@code{\override Lyrics . LyricText #'font-series = #'bold}
+@code{\override Lyrics.LyricText.font-shape = #'italic}
+@code{\override Lyrics.LyricText.font-series = #'bold}
 
-@code{\revert Lyrics . LyricText #'font-shape}
-@code{\revert Lyrics . LyricText #'font-series}
+@code{\revert Lyrics.LyricText.font-shape}
+@code{\revert Lyrics.LyricText.font-series}
 @end example
 
 Là encore, ce serait extrêmement pénible à saisir, surtout s'il y avait
@@ -3812,13 +3809,13 @@ milieu d'un bloc @code{\lyricmode} !
 
 @lilypond[quote,verbatim]
 emphasize = {
-  \override Lyrics.LyricText #'font-shape = #'italic
-  \override Lyrics.LyricText #'font-series = #'bold
+  \override Lyrics.LyricText.font-shape = #'italic
+  \override Lyrics.LyricText.font-series = #'bold
 }
 
 normal = {
-  \revert Lyrics.LyricText #'font-shape
-  \revert Lyrics.LyricText #'font-series
+  \revert Lyrics.LyricText.font-shape
+  \revert Lyrics.LyricText.font-series
 }
 
 global = { \key c \major \time 4/4 \partial 4 }
@@ -4010,17 +4007,17 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4043,17 +4040,17 @@ inst =
 \layout{
   \context {
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context {
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   }
   \context {
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4096,16 +4093,16 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4129,12 +4126,12 @@ inst =
 
 \layout{
   \context { \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context { \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4265,8 +4262,8 @@ est défini comme :
 
 @example
 tieDotted = @{
-  \override Tie #'dash-period = #0.75
-  \override Tie #'dash-fraction = #0.1
+  \override Tie.dash-period = #0.75
+  \override Tie.dash-fraction = #0.1
 @}
 @end example
 
@@ -4370,7 +4367,7 @@ fonction de leur position sur la portée.
 
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
-  \override NoteHead #'color = #color-notehead
+  \override NoteHead.color = #color-notehead
   a2 b | c2 d | e2 f | g2 a |
 }
 @end lilypond
diff --git a/Documentation/fr/notation/GNUmakefile b/Documentation/fr/notation/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index ba56e9560374a1f5bfc3089a40cc60e56348698a..683d56657db0791df224154ebbe6257f5f538c59 100644 (file)
@@ -8,7 +8,8 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+
+@c \version "2.17.6"
 
 @c Translators: Jean-Charles Malahieude
 
@@ -314,7 +315,7 @@ L'impression de guidons s'obtient en affectant, dans un bloc
     \context {
       \Staff
       \consists "Custos_engraver"
-      \override Custos #'style = #'mensural
+      \override Custos.style = #'mensural
     }
   }
 }
@@ -406,7 +407,7 @@ lancer dans la saisie de votre chant comme ci-après :
 \score {
   <<
     \new MensuralVoice = "discantus" \transpose c c' {
-      \override Score.BarNumber #'transparent = ##t {
+      \override Score.BarNumber.transparent = ##t {
         c'1\melisma bes a g\melismaEnd
         f\breve
         \[ f1\melisma a c'\breve d'\melismaEnd \]
@@ -465,7 +466,7 @@ Clef d'ut, style mensural historique
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-c2"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -476,7 +477,7 @@ Clef de fa, style mensural historique
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-f"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -487,7 +488,7 @@ Clef de sol, style mensural historique
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-g"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -511,7 +512,7 @@ lignes (clef d'ut seconde pour l'exemple)
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-c2"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -524,7 +525,7 @@ lignes (clef de fa troisième pour l'exemple)
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-f3"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -535,7 +536,7 @@ Clef de sol, style mensural Petrucci
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-g"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 @end multitable
@@ -635,18 +636,18 @@ Voici les différences entre les styles :
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter default }
 
-  \override Staff.TimeSignature #'style = #'numbered
+  \override Staff.TimeSignature.style = #'numbered
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter numbered }
 
-  \override Staff.TimeSignature #'style = #'mensural
+  \override Staff.TimeSignature.style = #'mensural
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter mensural }
 
-  \override Staff.TimeSignature #'style = #'neomensural
+  \override Staff.TimeSignature.style = #'neomensural
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter neomensural }
-  \override Staff.TimeSignature #'style = #'single-digit
+  \override Staff.TimeSignature.style = #'single-digit
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter single-digit }
 }
@@ -731,13 +732,13 @@ L'exemple suivant illustre le style @code{petrucci}.
 @lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
 \autoBeamOff
-\override NoteHead #'style = #'petrucci
+\override NoteHead.style = #'petrucci
 a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a'
-\override NoteHead #'style = #'semipetrucci
+\override NoteHead.style = #'semipetrucci
 a'\breve*5/6
-\override NoteHead #'style = #'blackpetrucci
+\override NoteHead.style = #'blackpetrucci
 a'8*4/3 a'
-\override NoteHead #'style = #'petrucci
+\override NoteHead.style = #'petrucci
 a'\longa
 @end lilypond
 
@@ -766,9 +767,9 @@ styles actuellement pris en charge sont @code{default} et
 @code{mensural}.
 
 @lilypond[quote,fragment,ragged-right,verbatim]
-\override Flag #'style = #'mensural
-\override Stem #'thickness = #1.0
-\override NoteHead #'style = #'mensural
+\override Flag.style = #'mensural
+\override Stem.thickness = #1.0
+\override NoteHead.style = #'mensural
 \autoBeamOff
 c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8
 c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32
@@ -820,11 +821,11 @@ L'exemple suivant illustre les styles @code{mensural} et
 
 @lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
-\override Rest #'style = #'classical
+\override Rest.style = #'classical
 r\longa^"classical" r\breve r1 r2 r4 r8 r16 s \break
-\override Rest #'style = #'mensural
+\override Rest.style = #'mensural
 r\longa^"mensural" r\breve r1 r2 r4 r8 r16 s \break
-\override Rest #'style = #'neomensural
+\override Rest.style = #'neomensural
 r\longa^"neomensural" r\breve r1 r2 r4 r8 r16
 @end lilypond
 
@@ -877,7 +878,7 @@ Pour disposer des formes anciennes d'altération, utilisez la propriété
 et @code{KeySignature}, comme ceci :
 
 @example
-\override Staff.Accidental #'glyph-name-alist =
+\override Staff.Accidental.glyph-name-alist =
   #alteration-mensural-glyph-name-alist
 @end example
 
@@ -993,9 +994,9 @@ Par exemple,
 
 @c @example
 @c \set Score.timing = ##f
-@c \set Score.defaultBarType = "empty"
-@c \override NoteHead #'style = #'neomensural
-@c \override Staff.TimeSignature #'style = #'neomensural
+@c \set Score.defaultBarType = "-"
+@c \override NoteHead.style = #'neomensural
+@c \override Staff.TimeSignature.style = #'neomensural
 @c \clef "petrucci-g"
 @c \[ c'\maxima g \]
 @c \[ d\longa c\breve f e d \]
@@ -1006,14 +1007,14 @@ Par exemple,
 \score {
   \transpose c c' {
     \set Score.timing = ##f
-    \set Score.defaultBarType = "empty"
-    \override NoteHead #'style = #'petrucci
-    \override Staff.TimeSignature #'style = #'mensural
+    \set Score.defaultBarType = "-"
+    \override NoteHead.style = #'petrucci
+    \override Staff.TimeSignature.style = #'mensural
     \clef "petrucci-g"
     \[ c'\maxima g \]
     \[ d\longa
-       \override NoteHead #'ligature-flexa = ##t
-       \once \override NoteHead #'flexa-width = #3.2
+       \override NoteHead.ligature-flexa = ##t
+       \once \override NoteHead.flexa-width = #3.2
        c\breve f e d \]
     \[ c'\maxima d'\longa \]
     \[ e'1 a g\breve \]
@@ -1034,14 +1035,14 @@ par le @code{Mensural_ligature_engraver}, on obtient
 @lilypond[quote,ragged-right]
 \transpose c c' {
   \set Score.timing = ##f
-  \set Score.defaultBarType = "empty"
-  \override NoteHead #'style = #'petrucci
-  \override Staff.TimeSignature #'style = #'mensural
+  \set Score.defaultBarType = "-"
+  \override NoteHead.style = #'petrucci
+  \override Staff.TimeSignature.style = #'mensural
   \clef "petrucci-g"
   \[ c'\maxima g \]
   \[ d\longa
-     \override NoteHead #'ligature-flexa = ##t
-     \once \override NoteHead #'flexa-width = #3.2
+     \override NoteHead.ligature-flexa = ##t
+     \once \override NoteHead.flexa-width = #3.2
      c\breve f e d \]
   \[ c'\maxima d'\longa \]
   \[ e'1 a g\breve \]
@@ -1160,12 +1161,12 @@ Clef d'ut, style des éditions vaticanes
 @code{vaticana-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'vaticana.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'vaticana.punctum
   \clef "vaticana-do2"
   c
 @end lilypond
@@ -1176,12 +1177,12 @@ Clef de fa, style des éditions vaticanes
 @code{vaticana-fa1}, @code{vaticana-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'vaticana.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'vaticana.punctum
   \clef "vaticana-fa2"
   c
 @end lilypond
@@ -1193,12 +1194,12 @@ Clef d'ut, style Editio Medicaea
 @code{medicaea-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'medicaea.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'medicaea.punctum
   \clef "medicaea-do2"
   c
 @end lilypond
@@ -1209,12 +1210,12 @@ Clef de fa, style Editio Medicaea
 @code{medicaea-fa1}, @code{medicaea-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'medicaea.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'medicaea.punctum
   \clef "medicaea-fa2"
   c
 @end lilypond
@@ -1226,12 +1227,12 @@ Clef d'ut, style historique Hufnagel
 @code{hufnagel-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-do2"
   c
 @end lilypond
@@ -1242,12 +1243,12 @@ Clef de fa, style historique Hufnagel
 @code{hufnagel-fa1}, @code{hufnagel-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-fa2"
   c
 @end lilypond
@@ -1258,11 +1259,11 @@ Clef combinée ut/fa, style historique Hufnagel
 @code{hufnagel-do-fa}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-do-fa"
   c
 @end lilypond
@@ -1315,7 +1316,7 @@ Pour disposer des formes anciennes d'altération, utilisez la propriété
 et @code{KeySignature}, comme ceci :
 
 @example
-\override Staff.Accidental #'glyph-name-alist =
+\override Staff.Accidental.glyph-name-alist =
   #alteration-mensural-glyph-name-alist
 @end example
 
@@ -1369,7 +1370,7 @@ pourquoi @file{gregorian-init.ly} définit aussi @code{\virgula} et
 \score {
   <<
     \context VaticanaVoice {
-      \override TextScript  #'padding = #3
+      \override TextScript.padding = #3
       g a g
       s^\markup { "divisio minima" }
       \divisioMinima
@@ -1436,9 +1437,9 @@ spécifiquement destinées au style des éditions vaticanes.
 \include "gregorian.ly"
 \score {
   \new VaticanaVoice {
-    \override TextScript #'font-family = #'typewriter
-    \override TextScript #'font-shape = #'upright
-    \override Script #'padding = #-0.1
+    \override TextScript.font-family = #'typewriter
+    \override TextScript.font-shape = #'upright
+    \override Script.padding = #-0.1
     a\ictus_"ictus " \bar "" \break
     a\circulus_"circulus " \bar "" \break
     a\semicirculus_"semicirculus " \bar "" \break
@@ -2489,7 +2490,7 @@ lancer dans la saisie de votre chant, comme ci-dessous :
     \new KievanVoice = "melody" \transpose c c' {
       \cadenzaOn
        c4 c c c c2 b,\longa
-       \bar "kievan"
+       \bar "k"
     }
     \new Lyrics \lyricsto "melody" {
       Го -- спо -- ди по -- ми -- луй.
@@ -2521,7 +2522,7 @@ La notation kiévienne n'utilise qu'une seule clef -- la clef
 
 @lilypond[quote,relative=1,notime,verbatim]
   \clef "kievan-do"
-  \override NoteHead #'style = #'kievan
+  \override NoteHead.style = #'kievan
   c
 @end lilypond
 
@@ -2553,7 +2554,7 @@ kiéviennes :
 @lilypond[quote,fragment,ragged-right,verbatim]
 \autoBeamOff
 \cadenzaOn
-\override NoteHead #'style = #'kievan
+\override NoteHead.style = #'kievan
 b'1 b'2 b'4 b'8 b'\breve b'\longa
 @end lilypond
 
@@ -2589,8 +2590,8 @@ anciens.
 
 @lilypond[quote,relative=1,notime,verbatim]
 \clef "kievan-do"
-\override NoteHead #'style = #'kievan
-\override Accidental #'glyph-name-alist =
+\override NoteHead.style = #'kievan
+\override Accidental.glyph-name-alist =
  #alteration-kievan-glyph-name-alist
 bes' dis,
 @end lilypond
@@ -2612,12 +2613,12 @@ Manuel de notation :
 
 Les pièces en notation kiévienne sont habituellement terminées par une
 décoration qui fait office de barre finale.  Elle s'obtient à l'aide
-d'un @code{\bar "kievan"}.
+d'un @code{\bar "k"}.
 
 @lilypond[quote,relative=1,notime,verbatim]
   \clef "kievan-do"
-  \override NoteHead #'style = #'kievan
-  c \bar "kievan"
+  \override NoteHead.style = #'kievan
+  c \bar "k"
 @end lilypond
 
 @seealso
@@ -2756,9 +2757,9 @@ chant = \relative c' {
 }
 
 verba = \lyricmode {
-  \once \override LyricText #'self-alignment-X = #-1
+  \once \override LyricText.self-alignment-X = #-1
   "Noctem quietam et" fi -- nem per -- fec -- tum
-  \once \override LyricText #'self-alignment-X = #-1
+  \once \override LyricText.self-alignment-X = #-1
   "concedat nobis Dominus" om -- ni -- po -- tens.
 }
 \score {
@@ -2771,8 +2772,8 @@ verba = \lyricmode {
       \Staff
       \remove "Time_signature_engraver"
       \remove "Bar_engraver"
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
   }
 }
@@ -2787,13 +2788,13 @@ masquées, ici en jouant aussi sur la visibilité des hampes :
 chant = \relative c' {
   \clef "G_8"
   \set Score.timing = ##f
-  c\breve \override NoteHead #'transparent = ##t  c c c c c
-  \revert NoteHead #'transparent
-  \override Stem #'transparent = ##f \stemUp c4 b4 a
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t c2 c4  \divisioMaior
-  c\breve \override NoteHead #'transparent = ##t c c c c c c c
-  \revert NoteHead #'transparent c4 c f, f \finalis
+  c\breve \override NoteHead.transparent = ##t  c c c c c
+  \revert NoteHead.transparent
+  \override Stem.transparent = ##f \stemUp c4 b4 a
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t c2 c4  \divisioMaior
+  c\breve \override NoteHead.transparent = ##t c c c c c c c
+  \revert NoteHead.transparent c4 c f, f \finalis
 }
 
 verba = \lyricmode {
@@ -2810,9 +2811,9 @@ verba = \lyricmode {
     \context {
       \Staff
       \remove "Time_signature_engraver"
-      \override BarLine #'transparent = ##t
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override BarLine.transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
   }
 }
@@ -2840,7 +2841,7 @@ peuvent se réaliser avec des @qq{notes silencieuses} (@code{s}).
 @lilypond[verbatim,quote]
 spiritus = \relative c' {
   \time 1/4
-  \override Lyrics.LyricText #'X-extent  = #'(0 . 3)
+  \override Lyrics.LyricText.X-extent  = #'(0 . 3)
   d4 \times 2/3 { f8 a g } g a a4 g f8 e
   d4 f8 g g8 d f g a g f4 g8 a a4  s
   \times 2/3 { g8 f d } e f g a g4
@@ -2860,12 +2861,12 @@ spirLyr = \lyricmode {
     \context {
       \Staff
       \remove "Time_signature_engraver"
-      \override BarLine #'X-extent = #'(-1 . 1)
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
-      \override Beam #'transparent = ##t
-      \override BarLine #'transparent = ##t
-      \override TupletNumber #'transparent = ##t
+      \override BarLine.X-extent = #'(-1 . 1)
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
+      \override Beam.transparent = ##t
+      \override BarLine.transparent = ##t
+      \override TupletNumber.transparent = ##t
     }
   }
 }
index 8f71f56ec34cfcb10c6847f22aca03b0a5f024ed..e1573087fb80ed8a936b94f280ad7109ba12d436 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: Gilles Thibault
@@ -818,7 +818,7 @@ contexte :
   \layout {
     \context {
       \Staff
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
   }
 }
@@ -862,7 +862,7 @@ expression musicale telle que @code{\accidentalStyle "dodecaphonic"} :
     }
     \context {
       \Staff
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
     }
   }
 }
@@ -917,9 +917,9 @@ musical.
     }
   }
   \layout {
-    \accidentalStyle "dodecaphonic"
+    \accidentalStyle dodecaphonic
     \set fontSize = #-4
-    \override Voice.Stem #'thickness = #4.0
+    \override Voice.Stem.thickness = #4.0
   }
 }
 @end lilypond
@@ -961,7 +961,7 @@ contexte :
   \new Staff {
     \new Voice
     \with {
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
     {
       \relative c'' {
@@ -1014,7 +1014,7 @@ en définissant directement une propriété de contexte :
       }
     }
     \new Staff
-    \with { \accidentalStyle "dodecaphonic" }
+    \with { \accidentalStyle dodecaphonic }
     {
       \new Voice
       \with { \dynamicUp }
@@ -1109,9 +1109,9 @@ jazz.
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 }
 \context { \Staff
@@ -1179,9 +1179,9 @@ On veut que les notes aient la forme d'une barre oblique, sans
 aucune hampe :
 
 @example
-\override NoteHead #'style = #'slash
-\override Stem #'transparent = ##t
-\override Flag #'transparent = ##t
+\override NoteHead.style = #'slash
+\override Stem.transparent = ##t
+\override Flag.transparent = ##t
 @end example
 
 Afin que tous ces graveurs puissent travailler de concert, on leur
@@ -1202,9 +1202,9 @@ Récapitulons ; on se retrouve avec le bloc suivant :
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 @}
 @end example
@@ -1690,7 +1690,7 @@ doigté de la note.  La commande suivante insère trois unités d'espace
 vide entre la note et le doigté :
 
 @example
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 @end example
 
 En ajoutant cette commande avant la création du doigté (de l'objet
@@ -1698,7 +1698,7 @@ En ajoutant cette commande avant la création du doigté (de l'objet
 suivant :
 
 @lilypond[quote,relative=2,verbatim]
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 c-2
 \stemUp
 f
@@ -1815,7 +1815,7 @@ n'est ici que d'examiner l'emploi de cette commande.
 La commande suivante :
 
 @verbatim
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 @end verbatim
 
 @noindent
@@ -1827,7 +1827,7 @@ autres portées demeureront intactes.
 
 @lilypond[quote,verbatim,relative=2,fragment]
 c4
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 c4
 c4
 c4
@@ -1844,7 +1844,7 @@ qu'une seule fois.
 
 @lilypond[quote,fragment,verbatim,relative=2]
 c4
-\once \override Stem #'thickness = #4.0
+\once \override Stem.thickness = #4.0
 c4
 c4
 @end lilypond
@@ -1856,9 +1856,9 @@ la commande @code{\override} doit être saisie avant que l'objet soit
 créé.
 
 @lilypond[quote,fragment,verbatim,relative=2]
-\override Slur #'thickness = #3.0
+\override Slur.thickness = #3.0
 c8[( c
-\override Beam #'beam-thickness = #0.6
+\override Beam.beam-thickness = #0.6
 c8 c])
 @end lilypond
 
@@ -1874,8 +1874,8 @@ même contexte.  Ainsi dans l'exemple suivant, la commande @code{\revert}
 est sans effet.
 
 @example
-\override Voice.Stem #'thickness = #4.0
-\revert Staff.Stem #'thickness
+\override Voice.Stem.thickness = #4.0
+\revert Staff.Stem.thickness
 @end example
 
 Il existe, à l'intérieur même de certaines propriétés, des options que
@@ -1890,7 +1890,7 @@ l'on nomme @qq{sous-propriétés}.  La syntaxe est alors
 Ainsi, par exemple :
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
 @end ignore
@@ -2107,7 +2107,7 @@ sur la propriété @code{thickness} de l'objet @code{stem} :
 
 @lilypond[quote,verbatim,relative=2]
 c4 c
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
 @end lilypond
 
@@ -2115,11 +2115,11 @@ Lorsqu'aucun contexte n'est spécifié dans une clause @code{\override},
 celle-ci s'appliquera au contexte le plus bas :
 
 @lilypond[quote,verbatim,relative=2]
-{ \override Staff.Stem #'thickness = #3.0
+{ \override Staff.Stem.thickness = #3.0
   <<
     {
       e4 e
-      \override Stem #'thickness = #0.5
+      \override Stem.thickness = #0.5
       e4 e
     } \\ {
       c4 c c c
@@ -2137,9 +2137,9 @@ Les effets d'un @code{\override} prennent fin à l'aide de l'instruction
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
-\revert Voice.Stem #'thickness
+\revert Voice.Stem.thickness
 c4
 @end lilypond
 
@@ -2152,11 +2152,11 @@ mentionné :
   <<
     {
       e4
-      \override Staff.Stem #'thickness = #3.0
+      \override Staff.Stem.thickness = #3.0
       e4 e e
     } \\ {
       c4 c c
-      \revert Staff.Stem #'thickness
+      \revert Staff.Stem.thickness
       c4
     }
   >>
@@ -2174,11 +2174,11 @@ la suit directement :
 {
   <<
     {
-      \override Stem #'thickness = #3.0
+      \override Stem.thickness = #3.0
       e4 e e e
     } \\ {
       c4
-      \once \override Stem #'thickness = #3.0
+      \once \override Stem.thickness = #3.0
       c4 c c
     }
   >>
@@ -2190,7 +2190,7 @@ Les commandes permettant de modifier l'apparence de la partition
 ressemblent en général à
 
 @example
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 @end example
 
 @noindent
@@ -2209,7 +2209,7 @@ Certaines @qq{sous-propriétés} sont parfois contenues dans une
 propriété.  La commande devient alors :
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
 @cindex documentation exhaustive
@@ -2267,13 +2267,13 @@ Dans l'accord suivant, les notes sont modifiées une par une :
 @lilypond[relative=2,verbatim,ragged-right]
 <
   c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1 
+  \tweak duration-log #1 
    a
 >4
--\tweak #'padding #8
+-\tweak padding #8
 -^
 @end lilypond
 
@@ -2303,7 +2303,7 @@ d'un traitement et n'est donc pas directement rendue ; c'est
 pourquoi le code suivant ne sera d'aucun effet :
 
 @example
-\tweak #'color #red c4
+\tweak color #red c4
 @end example
 
 @noindent
@@ -2335,10 +2335,10 @@ colorisée, et l'aspect d'une autre est changé.
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
 @end lilypond
@@ -2347,7 +2347,7 @@ L'instruction @code{\tweak} permet aussi de modifier l'aspect d'une
 liaison :
 
 @lilypond[verbatim,quote,relative=1]
-c-\tweak #'thickness #5 ( d e f)
+c-\tweak thickness #5 ( d e f)
 @end lilypond
 
 La commande @code{\tweak} ne sera pleinement fonctionnelle que si elle
@@ -2359,9 +2359,9 @@ objets seront créés à partir d'événements appartenant à un
 @code{EventChord} (un événement d'accord) :
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
-\tweak #'color #red <c e>4
-<\tweak #'color #red c>4
+\tweak color #red c4
+\tweak color #red <c e>4
+<\tweak color #red c>4
 @end lilypond
 
 La commande @code{\tweak} simple ne saurait servir à modifier un élément
@@ -2375,9 +2375,9 @@ De tels objets créés indirectement peuvent être ajustés que par une
 forme dévelppée de la commande @code{\tweak} :
 
 @lilypond[relative=2,verbatim,quote]
-\tweak Stem #'color #red
-\tweak Beam #'color #green c8 e
-<c e \tweak Accidental #'font-size #-3 ges>4
+\tweak Stem.color #red
+\tweak Beam.color #green c8 e
+<c e \tweak Accidental.font-size #-3 ges>4
 @end lilypond
 
 La commande @code{\tweak} ne peut non plus servir à modifier clefs ou
@@ -2390,10 +2390,10 @@ même élément de notation :
 
 @lilypond[verbatim,quote,relative=1]
 c
--\tweak #'style #'dashed-line
--\tweak #'dash-fraction #0.2
--\tweak #'thickness #3
--\tweak #'color #red
+-\tweak style #'dashed-line
+-\tweak dash-fraction #0.2
+-\tweak thickness #3
+-\tweak color #red
  \glissando
 f'
 @end lilypond
@@ -2495,7 +2495,7 @@ imbriquée} :
 % reduced space between staves
 \new PianoStaff \with {
   % this is the nested declaration
-  \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+  \override StaffGrouper.staff-staff-spacing.basic-distance = #7
 } <<
   \new Staff { \clef treble c''1 }
   \new Staff { \clef bass   c1   }
@@ -2515,7 +2515,7 @@ forme d'une liste associative :
 
 @lilypond[quote,verbatim]
 \new PianoStaff \with {
-  \override StaffGrouper #'staff-staff-spacing =
+  \override StaffGrouper.staff-staff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 0)
        (padding . 0)
@@ -2535,10 +2535,10 @@ non mentionnées seront ramenées à zéro -- à l'exception de
 équivalentes.
 
 @example
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7))
 
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7)
      (minimum-distance . 0)
      (padding . 0)
@@ -2888,7 +2888,7 @@ défini par le nombre d'éléments dans la liste des valeurs de
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7)
+  \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2899,7 +2899,7 @@ par ce réglage.
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'width = #23
+  \override StaffSymbol.width = #23
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2963,7 +2963,7 @@ Cette propriété est sans effet sur :
 a~a
 a
 % increase the length of the tie
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ~a
 @end lilypond
 
@@ -2972,7 +2972,7 @@ a1
 \compressFullBarRests
 R1*23
 % increase the length of the rest bar
-\once \override MultiMeasureRest #'minimum-length = #20
+\once \override MultiMeasureRest.minimum-length = #20
 R1*23
 a1
 @end lilypond
@@ -2980,7 +2980,7 @@ a1
 @lilypond[verbatim,quote,relative=2]
 a \< a a a \!
 % increase the length of the hairpin
-\override Hairpin #'minimum-length = #20
+\override Hairpin.minimum-length = #20
 a \< a a a \!
 @end lilypond
 
@@ -2990,12 +2990,12 @@ d'articulation ou de phrasé.
 @lilypond[verbatim,quote,relative=2]
 a( a)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ( a)
 
 a\( a\)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 \( a\)
 @end lilypond
 
@@ -3011,12 +3011,12 @@ propriété @code{springs-and-rods} n'est pas définie :
 e \glissando c'
 
 % not effective alone
-\once \override Glissando #'minimum-length = #20
+\once \override Glissando.minimum-length = #20
 e, \glissando c'
 
 % effective only when both overrides are present
-\once \override Glissando #'minimum-length = #20
-\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
 e, \glissando c'
 @end lilypond
 
@@ -3024,12 +3024,12 @@ Il en va de même pour l'objet @code{Beam} (ligature) :
 
 @lilypond[verbatim,quote,relative=1]
 % not effective alone
-\once \override Beam #'minimum-length = #20
+\once \override Beam.minimum-length = #20
 e8 e e e
 
 % effective only when both overrides are present
-\once \override Beam #'minimum-length = #20
-\once \override Beam #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
 e8 e e e
 @end lilypond
 
@@ -3045,7 +3045,7 @@ la note qui le borne :
 
 @lilypond[verbatim,quote,relative=2]
 a \< a a a a \! a a a \break
-\override Hairpin #'to-barline = ##f
+\override Hairpin.to-barline = ##f
 a \< a a a a \! a a a
 @end lilypond
 
@@ -3080,8 +3080,8 @@ demeure relativement simple :
 
 @lilypond[relative=2,quote,verbatim]
 e2 \glissando b
-\once \override Glissando #'(bound-details left Y) = #3
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.left.Y = #3
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando b
 @end lilypond
 
@@ -3100,8 +3100,8 @@ terminaisons à cet endroit se gèrent grâce aux sous-clés
 ci-dessous :
 
 @lilypond[relative=2,ragged-right,verbatim,quote]
-\override Glissando #'breakable = ##t
-\override Glissando #'(bound-details right-broken Y) = #-3
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
 c1 \glissando \break
 f1
 @end lilypond
@@ -3140,7 +3140,7 @@ sous-propriété utilisée pour ajouter @i{cresc.}, @i{tr} ou autre texte à
 un extenseur horizontal.
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
 c2\startTextSpan b c a\stopTextSpan
 @end lilypond
@@ -3154,15 +3154,11 @@ définie par les sous-propriétés @code{X} et @code{Y}.  L'utilisation de
 le symbole verticalement par rapport au coin de la ligne :
 
 @lilypond[relative=1,quote,verbatim]
-\override TextSpanner
-  #'(bound-details left stencil-align-dir-y) = #-2
-\override TextSpanner
-  #'(bound-details right stencil-align-dir-y) = #UP
-
-\override TextSpanner
-  #'(bound-details left text) = #"ggg"
-\override TextSpanner
-  #'(bound-details right text) = #"hhh"
+\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
+\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP
+
+\override TextSpanner.bound-details.left.text = #"ggg"
+\override TextSpanner.bound-details.right.text = #"hhh"
 c4^\startTextSpan c c c \stopTextSpan
 @end lilypond
 
@@ -3254,9 +3250,9 @@ s'opère à l'aide d'un @code{\revert}.
 
 @lilypond[quote,verbatim,relative=1]
 a1 a
-\override Score.BarLine #'stencil = ##f
+\override Score.BarLine.stencil = ##f
 a a
-\revert Score.BarLine #'stencil
+\revert Score.BarLine.stencil
 a a a
 @end lilypond
 
@@ -3273,7 +3269,7 @@ transparent tout en préservant la place qu'il occupe.
 
 @lilypond[quote,verbatim,relative=2]
 a4 a
-\once \override NoteHead #'transparent = ##t
+\once \override NoteHead.transparent = ##t
 a a
 @end lilypond
 
@@ -3299,7 +3295,7 @@ l'ordre dans lequel ils sont dessinés, ce qui peut laisser apparaître
 un fantôme de l'objet blanchi comme ci-dessous :
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
+\override Staff.Clef.color = #white
 a1
 @end lilypond
 
@@ -3321,8 +3317,8 @@ avoir un @code{layer} de valeur inférieure, disons @w{@code{-1}}, pour
 pouvoir être dessiné avant.
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
-\override Staff.Clef #'layer = #-1
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
 a1
 @end lilypond
 
@@ -3416,7 +3412,7 @@ visibilité des barres de mesure :
 f4 g a b
 f4 g a b
 % Remove bar line at the end of the current line
-\once \override Score.BarLine #'break-visibility = #'#(#f #t #t)
+\once \override Score.BarLine.break-visibility = #'#(#f #t #t)
 \break
 f4 g a b
 f4 g a b
@@ -3464,7 +3460,7 @@ le passage en si bémol majeur malgré l'activation de
 \key g \major
 f4 g a b
 % Try to remove all key signatures
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b
 \break
@@ -3490,7 +3486,7 @@ cas forcer la @code{break-visibility} de ces objets pour les supprimer.
 \key g \major
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3508,7 +3504,7 @@ propriété @code{printKeyCancellation} du contexte @code{Staff} :
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.printKeyCancellation = ##f
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3581,13 +3577,13 @@ ainsi que la manière de les spécifier.
 
 @lilypond[relative=2,ragged-right,verbatim,quote]
 d2 \glissando d'2
-\once \override Glissando #'style = #'dashed-line
+\once \override Glissando.style = #'dashed-line
 d,2 \glissando d'2
-\override Glissando #'style = #'dotted-line
+\override Glissando.style = #'dotted-line
 d,2 \glissando d'2
-\override Glissando #'style = #'zigzag
+\override Glissando.style = #'zigzag
 d,2 \glissando d'2
-\override Glissando #'style = #'trill
+\override Glissando.style = #'trill
 d,2 \glissando d'2
 @end lilypond
 
@@ -3597,7 +3593,7 @@ objet graphique, mais rien ne vous empêche de les forcer :
 @c TODO Complete
 @lilypond[relative=2,ragged-right,verbatim,quote]
 e2 \glissando f
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando f
 @end lilypond
 
@@ -3649,7 +3645,7 @@ forme soit réellement opportun ; en voici une :
 
 @lilypond[quote,verbatim,relative=1]
 g4\< e' d' f\!
-\override Hairpin #'rotation = #'(20 -1 0)
+\override Hairpin.rotation = #'(20 -1 0)
 g,,4\< e' d' f\!
 @end lilypond
 
@@ -3671,7 +3667,7 @@ textes trop haut.
 
 @c KEEP LY
 @lilypond[quote,verbatim,relative=1]
-\override TextScript #'outside-staff-priority = ##f
+\override TextScript.outside-staff-priority = ##f
 g4^\markup { \rotate #30 "un sol" }
 b^\markup { \rotate #30 "un si" }
 des^\markup { \rotate #30 "un ré bémol" }
@@ -3790,12 +3786,12 @@ défaut, puis repositionnement par modification successive du
 @lilypond[verbatim,quote,relative=2]
 a-3
 a
--\tweak #'X-offset #0
--\tweak #'Y-offset #0
+-\tweak X-offset #0
+-\tweak Y-offset #0
 -3
 a
--\tweak #'X-offset #-1
--\tweak #'Y-offset #1
+-\tweak X-offset #-1
+-\tweak Y-offset #1
 -3
 @end lilypond
 
@@ -3875,13 +3871,13 @@ affectées à une même note :
 
 @lilypond[quote,verbatim,relative=1]
 a'
--\tweak #'self-alignment-X #-1
+-\tweak self-alignment-X #-1
 ^"left-aligned"
--\tweak #'self-alignment-X #0
+-\tweak self-alignment-X #0
 ^"center-aligned"
--\tweak #'self-alignment-X #RIGHT
+-\tweak self-alignment-X #RIGHT
 ^"right-aligned"
--\tweak #'self-alignment-X #-2.5
+-\tweak self-alignment-X #-2.5
 ^"aligned further to the right"
 @end lilypond
 
@@ -3917,9 +3913,9 @@ sorte qu'elle se place au plus près de la tête de note.
 
 @lilypond[quote,verbatim,relative=2]
 a
--\tweak #'self-alignment-X #0.5  % move horizontally left
--\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
--\tweak #'self-alignment-Y #-1  % move vertically up
+-\tweak self-alignment-X #0.5  % move horizontally left
+-\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self
+-\tweak self-alignment-Y #-1  % move vertically up
 -3  % third finger
 @end lilypond
 
@@ -3973,20 +3969,20 @@ horizontalement au-dessus de l'objet :
 
 @lilypond[verbatim,quote,relative=1]
 % The rehearsal mark will be centered above the Clef
-\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+\override Score.RehearsalMark.break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The rehearsal mark will be centered above the Time Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
 \key a \major
 \clef treble
 \time 3/4
 \mark "↓"
 e2.
 % The rehearsal mark will be centered above the Breath Mark
-\override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign)
+\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
 \key a \major
 \clef treble
 \time 4/4
@@ -4006,14 +4002,14 @@ de mesure est invisible, à l'endroit même où la barre prendrait place.
 
 @lilypond[verbatim,quote,relative=1]
 % The rehearsal mark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The rehearsal mark will be centered above the Clef
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef bass
 \mark "↓"
@@ -4021,7 +4017,7 @@ gis,,1
 % The rehearsal mark will be centered above the Bar Line
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.explicitClefVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
@@ -4034,19 +4030,19 @@ plusieurs portées, ce réglage devra apparaître dans chacune des portées.
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
 \key a \major
 \clef treble
 \time 4/4
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the Key Signature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
 \mark "↓"
 \key a \major
 e1
 % The RehearsalMark will be aligned with the right edge of the Key Signature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
 e1
@@ -4058,14 +4054,14 @@ ou la droite.  La valeur est exprimée en espaces de portée.
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be aligned with the left edge of the Key Signature
 % and then shifted right by 3.5 staff-spaces
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
-\once \override Score.KeySignature #'break-align-anchor = #3.5
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature.break-align-anchor = #3.5
 \key a \major
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the Key Signature
 % and then shifted left by 2 staff-spaces
-\once \override Score.KeySignature #'break-align-anchor = #-2
+\once \override Score.KeySignature.break-align-anchor = #-2
 \key a \major
 \mark "↓"
 e1
@@ -4118,8 +4114,8 @@ remplacée par une croix inscrite dans un cercle :
 
 @lilypond[verbatim,quote]
 XinO = {
-  \once \override NoteHead  #'stencil = #ly:text-interface::print
-  \once \override NoteHead #'text = \markup {
+  \once \override NoteHead.stencil = #ly:text-interface::print
+  \once \override NoteHead.text = \markup {
     \combine
       \halign #-0.7 \draw-circle #0.85 #0.2 ##f
       \musicglyph #"noteheads.s2cross"
@@ -4216,8 +4212,7 @@ liaison.
 @lilypond[verbatim,quote,relative=1]
 <<
   {
-    \once \override Tie
-      #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
+    \once \override Tie.control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
      e1 ~ e
   }
 \\
@@ -4312,12 +4307,12 @@ initiale aux fins d'ajustement lors des phases ultérieures d'espacement.
                               '(-0.5 . 0.5)))))
 
 squareLineCircleSpace = {
-  \override NoteHead #'stencil = #square-line-circle-space
+  \override NoteHead.stencil = #square-line-circle-space
 }
 
 smartSquareLineCircleSpace = {
   \squareLineCircleSpace
-  \override NoteHead #'Y-extent =
+  \override NoteHead.Y-extent =
    #(ly:make-unpure-pure-container
       ly:grob::stencil-height
       (lambda (grob start end) (ly:grob::stencil-height grob)))
@@ -4326,9 +4321,9 @@ smartSquareLineCircleSpace = {
 \new Voice \with { \remove "Stem_engraver" }
 \relative c'' {
   \squareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
   \smartSquareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
 }
 @end lilypond
 
@@ -4463,7 +4458,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
@@ -4484,10 +4479,10 @@ custosNote =
      (parser location note)
      (ly:music?)
    #{
-     \tweak NoteHead #'stencil #ly:text-interface::print
-     \tweak NoteHead #'text
+     \tweak NoteHead.stencil #ly:text-interface::print
+     \tweak NoteHead.text
         \markup \musicglyph #"custodes.mensural.u0"
-     \tweak Stem #'stencil ##f
+     \tweak Stem.stencil ##f
      #note
    #})
 
@@ -4502,7 +4497,7 @@ tempoPadded =
      (parser location padding tempotext)
      (number? markup?)
    #{
-     \once \override Score.MetronomeMark #'padding = #padding
+     \once \override Score.MetronomeMark.padding = #padding
      \tempo \markup { \bold #tempotext }
    #})
 
index 802ce793449cf57f6a5295e1415edf269dce2edc..9014bf92e0abad918a0ca5691f0e151a0da2efdc 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave
 @c Translation checkers: Jean-Charles Malahieude
@@ -31,7 +31,7 @@
 @tab
 @lilypond[relative=2,notime]
 \set Staff.autoBeaming = ##f
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c1 c2 c8 c16
 @end lilypond
 
@@ -39,7 +39,7 @@ c1 c2 c8 c16
 @tab notes pointées
 @tab
 @lilypond[relative=2,notime]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c4. c4..
 @end lilypond
 
@@ -71,7 +71,7 @@ s4_" "
 @tab chiffre de mesure, métrique
 @tab
 @lilypond[relative=1]
-\override Staff.Clef #'stencil = #empty-stencil
+\override Staff.Clef.stencil = #empty-stencil
 \time 3/4
 s4_" "
 \time 4/4
@@ -83,7 +83,7 @@ s16_" "
 @tab silences
 @tab
 @lilypond[relative=2,notime]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 r4 r8
 @end lilypond
 
index 31539509077eaffebda43cfeafbac2de8d413f0f..4b779159626ecfa2748dffd2ee2e3ba23279e7a4 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave,Jean-Charles Malahieude
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -183,7 +183,7 @@ Action par défaut ; produit une triade majeure.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1
 }
 @end lilypond
@@ -196,7 +196,7 @@ en a une.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:m c:m7
 }
 @end lilypond
@@ -209,7 +209,7 @@ la septième s'il y en a.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:dim c:dim7
 }
 @end lilypond
@@ -221,7 +221,7 @@ Accord augmenté.  Ce modificateur augmente la quinte.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:aug
 }
 @end lilypond
@@ -235,7 +235,7 @@ sert pas à créer une triade majeure.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:maj c:maj7
 }
 @end lilypond
index bfb51401292423175f7f2af69d47dfa7b793b968..1495ca24a2009f5ae15c1ebbefd8fcaffd6625e8 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Jean-Charles Malahieude
 
@@ -106,11 +106,11 @@ manière à n'affecter seulement que certains objets de rendu.
 @lilypond[verbatim,quote,relative=2]
 \set fontSize = #3
 c4.-> d8---3
-\override NoteHead #'font-size = #-4
+\override NoteHead.font-size = #-4
 c4.-> d8---3
-\override Script #'font-size = #2
+\override Script.font-size = #2
 c4.-> d8---3
-\override Stem #'font-size = #-5
+\override Stem.font-size = #-5
 c4.-> d8---3
 @end lilypond
 
@@ -315,11 +315,11 @@ noms des couleurs disponibles se trouvent à l'annexe
 @ref{Liste des couleurs}.
 
 @lilypond[verbatim,quote,relative=2]
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 c4 c
-\override NoteHead #'color = #(x11-color 'LimeGreen)
+\override NoteHead.color = #(x11-color 'LimeGreen)
 d
-\override Stem #'color = #blue
+\override Stem.color = #blue
 e
 @end lilypond
 
@@ -336,20 +336,20 @@ elle revient à la couleur par défaut, le noir.  Le problème ressort de
 façon évidente au vu de la partition finale.
 
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
 gis8 a
-\override Beam #'color = #(x11-color "medium turquoise")
+\override Beam.color = #(x11-color "medium turquoise")
 gis a
-\override Accidental #'color = #(x11-color 'DarkRed)
+\override Accidental.color = #(x11-color 'DarkRed)
 gis a
-\override NoteHead #'color = #(x11-color "LimeGreen")
+\override NoteHead.color = #(x11-color "LimeGreen")
 gis a
 % this is deliberate nonsense; note that the stems remain black
-\override Stem #'color = #(x11-color 'Boggle)
+\override Stem.color = #(x11-color 'Boggle)
 b2 cis
 @end lilypond
 
@@ -367,16 +367,16 @@ les composantes de la couleur exacte au format rouge-vert-bleu
 l'exemple suivant correspond à 128).
 
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
-\override Stem #'color = #(rgb-color 0 0 0)
+\override Stem.color = #(rgb-color 0 0 0)
 gis8 a
-\override Stem #'color = #(rgb-color 1 1 1)
+\override Stem.color = #(rgb-color 1 1 1)
 gis8 a
-\override Stem #'color = #(rgb-color 0 0 0.5)
+\override Stem.color = #(rgb-color 0 0 0.5)
 gis4 a
 @end lilypond
 
index 7316a7cee5263e3f5239ca5eb31fa61d95314279..5ec461870f443e6caf97c1c9598b1de6f3bad908 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -173,8 +173,8 @@ objet @code{MultiMeasureRestText} rattaché à ce @qq{silence
 multimesures}.
 
 @lilypond[verbatim,quote,relative=2]
-\override Script #'color = #red
-\override MultiMeasureRestText #'color = #blue
+\override Script.color = #red
+\override MultiMeasureRestText.color = #blue
 a2\fermata r\fermata
 R1\fermataMarkup
 @end lilypond
index 314d67033e8ec0c9a18722cfc61e7514bffaef29..79060ed35dbe79e94d7ebe1583e2b03ca72154dc 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Matthieu Jacquot
 @c Translation checkers: Jean-Charles Malahieude
@@ -252,7 +252,7 @@ corde à vide aura toujours préséance.  Ce comportement se modifie par
 l'activation de @code{restrainOpenStrings}.
 
 @lilypond[quote,ragged-right,verbatim]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 \new StaffGroup <<
    \new Staff \relative c {
      \clef "treble_8"
@@ -396,7 +396,7 @@ Les indications de sons harmoniques ainsi que les glissandos
 peuvent être ajoutés aux tablatures.
 
 @lilypond[verbatim,quote]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 firstHarmonic = {
   d'4\4\harmonic
   g'4\3\harmonic
@@ -548,7 +548,7 @@ basse, il sonnera donc une octave en dessous de ce qui est écrit.
 @lilypond[quote,ragged-right,verbatim]
 <<
   \new Voice \with {
-    \override StringNumber #'stencil = ##f
+    \override StringNumber.stencil = ##f
   } {
     \clef "bass_8"
     \relative c, {
@@ -935,8 +935,7 @@ Les indications de doigtés peuvent être inclus dans l'interface
     }
   }
   \context Staff {
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     \clef "treble_8"
     <c e g c' e'>1^\markup {
       \fret-diagram-terse #"x;3-3;2-2;o;1-1;o;"
@@ -1012,8 +1011,7 @@ la plus basse du diagramme d'accord.
     }
   \context Staff {
     \clef "treble_8"
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     <f, c f a c' f'>1^\markup {
       \fret-diagram-verbose #'(
         (place-fret 6 1)
@@ -1677,7 +1675,7 @@ Cet exemple montre comment indiquer les positions et les barrés :
 \clef "treble_8"
 b16 d g b e
 \textSpannerDown
-\override TextSpanner #'(bound-details left text) = #"XII "
+\override TextSpanner.bound-details.left.text = #"XII "
 g16\startTextSpan
 b16 e g e b g\stopTextSpan
 e16 b g d
@@ -1708,7 +1706,7 @@ détaillés grâce à des indications textuelles.
 @lilypond[quote,ragged-right,verbatim]
 \relative c' {
   \clef "treble_8"
-  \override Staff.NoteHead #'style = #'harmonic-mixed
+  \override Staff.NoteHead.style = #'harmonic-mixed
   d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
 }
 @end lilypond
index f2cf87f7596ac32bd0a27f458d7988d23a88b957..76e808101d02d1bf87eb11f928a2cd9fc8e332e4 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Jean-Charles Malahieude, Valentin Villenave
 
@@ -1419,11 +1419,11 @@ avant le texte de l'annotation :
   \header { tagline = ##f }
   \relative c'' {
     % footnotes may be added to chord constituents
-    < \footnote #'(-1 . -3) #'Accidental "Un autre bémol" aes
+    < \single\footnote #'(-1 . -3) "Un autre bémol" Accidental aes
       c
-      \footnote #'(-1 . 0.5) #'Accidental "Un bémol" ees
+      \single\footnote #'(-1 . 0.5) "Un bémol" Accidental ees
     >2
-    \footnote #'(-1 . 2) #'Stem "Une hampe" ees2
+    \single\footnote #'(-1 . 2) "Une hampe" Stem ees2
   }
 }
 @end lilypond
index 67cfcac0de67d8f2dbc50dfe791b4302b9cae1d5..0ca087a0cb402c816d8846d026ef3413c8886e39 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -228,7 +228,7 @@ Une voix qui change de portée peut entraîner des collisions :
   \new Staff = "up" {
     \voiceOne
     % Make space for fingering in the cross-staff voice
-    \once\override DynamicLineSpanner #'staff-padding = #3.4
+    \once\override DynamicLineSpanner.staff-padding = #3.4
     e''2\p\< d''\>
     c1\!
   }
index c8400fc9aef7606b93d14686cc66876cdb945b7e..e4a351455fbeb0aa261cf842f78dddfb7abfeb97 100644 (file)
@@ -1648,7 +1648,6 @@ programmes binaires de LilyPond.
 @cindex mode
 @cindex output-count
 @cindex output-suffix
-@cindex parseStringResult
 @cindex partCombineListener
 @cindex pitchnames
 @cindex toplevel-bookparts
@@ -1676,7 +1675,6 @@ LilyPond utilise les variables suivantes :
 @item mode
 @item output-count
 @item output-suffix
-@item parseStringResult
 @item partCombineListener
 @item pitchnames
 @item toplevel-bookparts
index eb84aa3c52b6158cbfdfc611ca99c81de77d8a31..5805413fd602d134bdf6c789196869d21dc6b109 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: John Mandereau
@@ -272,17 +272,17 @@ mus = \drummode {
   << \new DrumStaff \with {
        \remove "Bar_engraver"
        \remove "Time_signature_engraver"
-       \override Stem #'transparent = ##t
-       \override Flag #'transparent = ##t
-       \override Stem #'Y-extent = ##f
+       \override Stem.transparent = ##t
+       \override Flag.transparent = ##t
+       \override Stem.Y-extent = ##f
      } \mus
      \new Lyrics \nam
   >>
   \layout {
     \context {
       \Score
-      \override LyricText #'font-family = #'typewriter
-      \override BarNumber #'transparent =##T
+      \override LyricText.font-family = #'typewriter
+      \override BarNumber.transparent =##T
     }
   }
 }
@@ -305,16 +305,16 @@ mus = \drummode { timh ssh timl ssl cb s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
-    \override StaffSymbol #'line-count = #2
-    \override StaffSymbol #'staff-space = #2
-    \override VerticalAxisGroup #'minimum-Y-extent = #'(-3.0 . 4.0)
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
+    \override StaffSymbol.line-count = #2
+    \override StaffSymbol.staff-space = #2
+    \override VerticalAxisGroup.minimum-Y-extent = #'(-3.0 . 4.0)
     drumStyleTable = #timbales-style
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -332,16 +332,16 @@ mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
     drumStyleTable = #congas-style
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -358,17 +358,17 @@ mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
     drumStyleTable = #bongos-style
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -386,14 +386,14 @@ mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
   \new DrumStaff \with{
     \remove "Bar_engraver"
     drumStyleTable = #percussion-style
-    \override StaffSymbol #'line-count = #1
+    \override StaffSymbol.line-count = #1
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -445,10 +445,10 @@ Deux @emph{woodblocks} saisis comme @code{wbh} (woodblock aigu) et
 woodstaff = {
   % This defines a staff with only two lines.
   % It also defines the positions of the two lines.
-  \override Staff.StaffSymbol #'line-positions = #'(-2 3)
+  \override Staff.StaffSymbol.line-positions = #'(-2 3)
 
   % This is necessary; if not entered, the barline would be too short!
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
 }
 
 \new DrumStaff {
@@ -467,7 +467,7 @@ woodstaff = {
 
 Vous aurez remarqué ici l'allongement des barres de mesures par
 l'instruction
-@w{@code{\override Staff.BarLine #'bar-extent #'(de . à)}}.  Il faut
+@w{@code{\override Staff.BarLine.bar-extent #'(de . à)}}.  Il faut
 aussi définir la position des deux lignes de la portée -- voir à ce
 sujet la rubrique @ref{Symbole de la portée}.
 
@@ -477,8 +477,8 @@ Un tambourin, saisi avec un @qq{tamb} :
 #(define mydrums '((tambourine default #t 0)))
 
 tambustaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tambourine"
 }
 
@@ -503,8 +503,8 @@ Un peu de tam tam, abrégé @qq{tt} :
 #(define mydrums '((tamtam default #t 0)))
 
 tamtamstaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tamtam"
 }
 
@@ -526,9 +526,9 @@ cloche de quart -- @qq{rb} pour @emph{ridebell} :
                    (cowbell  default #t -2)))
 
 bellstaff = {
-  \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)
+  \override DrumStaff.StaffSymbol.line-positions = #'(-2 3)
   \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Different Bells"
 }
 
index 3b192aff41ea9f1981c068b59ab8239bfa52c0e8..1ab654a7250c76349087c2d6915525230e5bd7cc 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Frédéric Chiasson
 @c Translation checkers: Valentin Villenave, Jean-Charles Malahieude
@@ -1411,7 +1411,7 @@ suivante :
 
 @example
 \new Staff <<
-  \accidentalStyle "voice"
+  \accidentalStyle voice
   @{ @dots{} @}
 >>
 @end example
@@ -1425,7 +1425,7 @@ utiliser, pour que toutes les portées d'un même système -- contexte
 @code{StaffGroup} -- soient soumises à la même règle :
 
 @example
-\accidentalStyle #'StaffGroup "voice"
+\accidentalStyle StaffGroup.voice
 @end example
 
 Nous vous présentons ci-après les différentes règles d'altération prises
@@ -1468,11 +1468,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1487,7 +1487,7 @@ dernières lignes de cet exemple nous intéressent.
   <<
     \context Staff = "haut" @{
       %%% voici la ligne à modifier en conséquence :
-      \accidentalStyle #'Score "default"
+      \accidentalStyle Score.default
       \musicA
     @}
     \context Staff = "bas" @{
@@ -1549,11 +1549,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1621,11 +1621,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicB
     }
   >>
@@ -1685,11 +1685,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicB
     }
   >>
@@ -1747,11 +1747,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicB
     }
   >>
@@ -1814,11 +1814,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicB
     }
   >>
@@ -1874,11 +1874,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicB
     }
   >>
@@ -1937,7 +1937,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano"
+      \accidentalStyle piano
       \musicA
     }
     \context Staff = "down" {
@@ -1994,7 +1994,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano-cautionary"
+      \accidentalStyle piano-cautionary
       \musicA
     }
     \context Staff = "down" {
@@ -2052,11 +2052,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicB
     }
   >>
@@ -2109,11 +2109,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicB
     }
   >>
@@ -2172,11 +2172,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicB
     }
   >>
@@ -2227,11 +2227,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicB
     }
   >>
@@ -2286,11 +2286,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicB
     }
   >>
@@ -2348,12 +2348,12 @@ musicB = {
   <<
     \context Staff = "up" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicA
     }
     \context Staff = "down" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicB
     }
   >>
@@ -2406,11 +2406,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicB
     }
   >>
@@ -2465,11 +2465,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicB
     }
   >>
@@ -2516,7 +2516,7 @@ la seconde alternative ne nécessite pas son bécarre.
 
 @lilypond[quote]
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2533,12 +2533,12 @@ L'astuce suivante, qui définit temporairement le recours au style
 
 @lilypond[verbatim,quote]
 forget = #(define-music-function (parser location music) (ly:music?) #{
-  \accidentalStyle "forget"
+  \accidentalStyle forget
   #music
-  \accidentalStyle "modern"
+  \accidentalStyle modern
 #})
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2648,13 +2648,13 @@ L'apparence des têtes de note peut évoluer au cours de la partition :
 
 @lilypond[verbatim,quote,relative=2]
 c4 b
-\override NoteHead #'style = #'cross
+\override NoteHead.style = #'cross
 c4 b
-\revert NoteHead #'style
+\revert NoteHead.style
 a b
-\override NoteHead #'style = #'harmonic
+\override NoteHead.style = #'harmonic
 a b
-\revert NoteHead #'style
+\revert NoteHead.style
 c4 d e f
 @end lilypond
 
index 4af7fb85cc77d9270c06786109cc6f3d8a4611af..3868be3ec39651cfe33b6c15d748dd4566fe9062 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Frédéric Chiasson, Jean-Charles Malahieude
 @c Translation checkers: Valentin Villenave, François Martin, Xavier Scheuer
@@ -551,11 +551,11 @@ portée, une adaptation des propriétés @var{whiteout} et @var{layer}
 permet d'obtenir une meilleure lisibilité.
 
 @lilypond[verbatim,quote,ragged-right,relative=2]
-\override Tie #'layer = #-2
-\override Staff.TimeSignature #'layer = #-1
-\override Staff.KeySignature #'layer = #-1
-\override Staff.TimeSignature #'whiteout = ##t
-\override Staff.KeySignature #'whiteout = ##t
+\override Tie.layer = #-2
+\override Staff.TimeSignature.layer = #-1
+\override Staff.KeySignature.layer = #-1
+\override Staff.TimeSignature.whiteout = ##t
+\override Staff.KeySignature.whiteout = ##t
 b2 b~
 \time 3/4
 \key a \major
@@ -651,7 +651,7 @@ s'indiquent à l'aide de commandes prédéfinies :
 \new Staff {
   % These two lines are just to prettify this example
   \time 16/1
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   % Print a maxima rest, equal to four breves
   r\maxima
   % Print a longa rest, equal to two breves
@@ -916,10 +916,10 @@ dans l'exemple suivant.}
 @c KEEP LY
 @lilypond[quote,verbatim,relative=2]
 % Ceci échouera : il y a erreur quant à l'objet spécifié
-\override TextScript #'padding = #5
+\override TextScript.padding = #5
 R1^"pas bon !"
 % Formulation correcte, qui fonctionnera
-\override MultiMeasureRestText #'padding = #5
+\override MultiMeasureRestText.padding = #5
 R1^"ça marche !"
 @end lilypond
 
@@ -1510,7 +1510,7 @@ La numérotation reprend dès la fin d'une cadence.
 
 @lilypond[verbatim,relative=2,quote]
 % Show all bar numbers
-\override Score.BarNumber #'break-visibility = #all-visible
+\override Score.BarNumber.break-visibility = #all-visible
 c4 d e d
 \cadenzaOn
 c4 c d8[ d d] f4 g4.
@@ -2603,14 +2603,14 @@ quatre triples croches qui suivent vont s'accélérant, alors que les
 quatre dernières gardent un tempo régulier.
 
 @lilypond[relative=1,verbatim,quote]
-\override Beam #'grow-direction = #LEFT
+\override Beam.grow-direction = #LEFT
 \featherDurations #(ly:make-moment 2 1)
 { c16[ c c c c c c c] }
-\override Beam #'grow-direction = #RIGHT
+\override Beam.grow-direction = #RIGHT
 \featherDurations #(ly:make-moment 2 3)
 { c32[ d e f] }
 % revert to non-feathered beams
-\override Beam #'grow-direction = #'()
+\override Beam.grow-direction = #'()
 { g32[ a b c] }
 @end lilypond
 
@@ -2719,7 +2719,7 @@ f1 \bar "|"
 f1 \bar "."
 g1 \bar "||"
 a1 \bar ".|"
-b1 \bar ".|."
+b1 \bar ".."
 c1 \bar "|.|"
 d1 \bar "|."
 e1
@@ -2729,8 +2729,8 @@ e1
 ainsi que d'une barre en pointillé et d'une discontinue :
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar ":"
-g1 \bar "dashed"
+f1 \bar ";"
+g1 \bar "!"
 a1
 @end lilypond
 
@@ -2738,11 +2738,11 @@ a1
 et de cinq types de barre de reprise :
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar "|:"
-g1 \bar ":|:"
+f1 \bar ".|:"
+g1 \bar ":..:"
 a1 \bar ":|.|:"
 b1 \bar ":|.:"
-c1 \bar ":|"
+c1 \bar ":|."
 e1
 @end lilypond
 
@@ -2768,13 +2768,13 @@ c4 c c c
 c4 c c c \break
 \bar "S"
 c4 c c c
-\bar "|S"
+\bar "S-|"
 c4 c c c \break
-\bar "|S"
+\bar "S-|"
 c4 c c c
-\bar "S|"
+\bar "S-S"
 c4 c c c \break
-\bar "S|"
+\bar "S-S"
 c1
 @end lilypond
 
@@ -2794,9 +2794,9 @@ nouvelle.
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar "||:"
+\bar ".|:-||"
 c4 c c c \break
-\bar "||:"
+\bar ".|:-||"
 c4 c c c
 @end lilypond
 
@@ -2805,29 +2805,29 @@ reprise avec un signe @emph{segno} :
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar ":|S"
+\bar ":|.S"
 c4 c c c \break
-\bar ":|S"
+\bar ":|.S"
 c4 c c c
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c \break
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c \break
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c \break
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c \break
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c4 c c c \break
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c1
 @end lilypond
 
@@ -2928,7 +2928,7 @@ visible ou non.  Les valeurs sont rangées dans l'ordre suivant :
 numéros de mesure :
 
 @lilypond[verbatim,quote,relative=1]
-\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
+\override Score.BarNumber.break-visibility = #'#(#t #t #t)
 \set Score.currentBarNumber = #11
 % Permit first bar number to be printed
 \bar ""
@@ -3406,8 +3406,8 @@ mêlez des portées comprenant des petites notes et d'autres sans :
 
 @lilypond[quote,relative=2,verbatim]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" d2. }
 >>
 @end lilypond
 
@@ -3418,8 +3418,8 @@ correspondant à la durée des petites notes :
 
 @lilypond[quote,relative=2,verbatim]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" \grace s16 d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" \grace s16 d2. }
 >>
 @end lilypond
 
index 1e6693e693819edd72a3e67f8e2e74118f6efcd6..f218a961a8caf0f47879325f08668655e9ffcc73 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Frédéric Chiasson, Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -323,7 +323,7 @@ lors de la compilation.  Le déclenchement de cet avertissement peut être
 désactivé par une clause
 
 @example
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 @end example
 
 Ceci n'aura pas pour seule conséquence que ce message ne sera plus
@@ -884,14 +884,14 @@ Référence des propriétés internes :
 @cindex collisions, ignorer
 
 @knownissues
-Une clause @code{\override NoteColumn #'ignore-collision = ##t} aura
+Une clause @code{\override NoteColumn.ignore-collision = ##t} aura
 pour effet une fusion incorrecte des têtes de note différentes à partir
 de voix différentes.
 
 @lilypond[quote,relative=1,verbatim]
 \mergeDifferentlyHeadedOn
 << { c16 a' b a } \\ { c,2 } >>
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 << { c16 a' b a } \\ { c,2 } >>
 @end lilypond
 
index a9389f591bd5d56ed1fdb15a41b6c98fcfdf1496..3a0be28909c8314eac670b84402956f759e245f9 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Frédéric Chiasson, Jean-Charles Malahieude
 
@@ -31,7 +31,7 @@ the staff lines."
 
 Could we add a sentence:
 "Use instead the pair fontSize = #@var{N}
-        \override StaffSymbol #'staff-space = #(magstep @var{N})
+        \override StaffSymbol.staff-space = #(magstep @var{N})
 inside the Staff context to change the size of the font and the
 distance between staff lines accordingly."
 
@@ -933,22 +933,22 @@ Les valeurs par défaut sont définies dans le fichier
 
 @table @code
 
-@item blank-after-score-page-force
-@funindex blank-after-score-page-force
+@item blank-after-score-page-penalty
+@funindex blank-after-score-page-penalty
 
 Pénalité pour apparition d'une page blanche entre deux partitions.  Sa
 valeur est par défaut inférieure à celle de
-@code{blank-page-force} ; nous préférons qu'une page blanche
+@code{blank-page-penalty} ; nous préférons qu'une page blanche
 s'insère après la fin de la partition plutôt qu'au milieu.
 
-@item blank-last-page-force
-@funindex blank-last-page-force
+@item blank-last-page-penalty
+@funindex blank-last-page-penalty
 
 Pénalité pour fin de partition intervenant sur une page impaire.  La
 valeur par défaut est de @code{0}.
 
-@item blank-page-force
-@funindex blank-page-force
+@item blank-page-penalty
+@funindex blank-page-penalty
 
 Pénalité pour apparition d'une page blanche en cours de partition.
 L'algorithme @code{ly:optimal-breaking} n'en tiendra pas compte
@@ -1177,12 +1177,12 @@ Voici un exemple de bloc @code{\layout} :
   indent = 2\cm
   \context @{
     \StaffGroup
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #8
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #8
   @}
   \context @{
     \Voice
-    \override TextScript #'padding = #1
-    \override Glissando #'thickness = #3
+    \override TextScript.padding = #1
+    \override Glissando.thickness = #3
   @}
 @}
 @end example
@@ -1204,8 +1204,8 @@ Par exemple, placer le bloc suivant
 \layout @{
   \context @{
     \Voice
-    \override TextScript #'color = #magenta
-    \override Glissando #'thickness = #1.5
+    \override TextScript.color = #magenta
+    \override Glissando.thickness = #1.5
   @}
 @}
 @end example
@@ -1227,7 +1227,7 @@ Lorsque nous définissons la variable suivante,
 layoutVariable = \layout @{
   \context @{
     \Voice
-    \override NoteHead #'font-size = #4
+    \override NoteHead.font-size = #4
   @}
 @}
 @end example
@@ -1247,7 +1247,7 @@ Notre variable peut alors être utilisée au sein d'un autre bloc
   \layoutVariable
   \context @{
     \Voice
-    \override NoteHead #'color = #red
+    \override NoteHead.color = #red
   @}
 @}
 @end example
@@ -1477,10 +1477,10 @@ forcés doivent être saisis au sein d'une expression polyphonique :
 
 Selon le même principe, un saut de ligne ne peut intervenir alors qu'une
 ligature s'étend sur deux mesures consécutives.  Il faut en ce cas là
-introduire la dérogation @w{@code{\override Beam #'breakable = ##t}}.
+introduire la dérogation @w{@code{\override Beam.breakable = ##t}}.
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override Beam #'breakable = ##t
+\override Beam.breakable = ##t
 c2. c8[ c | \break
 c8 c] c2. |
 @end lilypond
@@ -1799,8 +1799,8 @@ Il arrive parfois que LilyPond rejette des @code{\break} ou des
 avec ces deux instructions dérogatoires :
 
 @example
-\override NonMusicalPaperColumn #'line-break-permission = ##f
-\override NonMusicalPaperColumn #'page-break-permission = ##f
+\override NonMusicalPaperColumn.line-break-permission = ##f
+\override NonMusicalPaperColumn.page-break-permission = ##f
 @end example
 
 Lorsque vous désactivez @code{line-break-permission}, LilyPond
@@ -1833,8 +1833,8 @@ musique = \relative c'' { c8 c c c }
   \layout {
     \context {
       \Score
-      \override NonMusicalPaperColumn #'line-break-permission = ##f
-      \override NonMusicalPaperColumn #'page-break-permission = ##f
+      \override NonMusicalPaperColumn.line-break-permission = ##f
+      \override NonMusicalPaperColumn.page-break-permission = ##f
     }
   }
 }
@@ -1905,20 +1905,16 @@ music = \relative c'' { c4 c c c }
 \score {
   \new Staff <<
     \new Voice {
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 0))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
       s1 * 2 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 35))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
       s1 * 3 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 70))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
       s1 * 6 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 105))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
       s1 * 5 \break
     }
     \new Voice {
@@ -2053,14 +2049,14 @@ En voici une représentation graphique :
 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
 
 alignToZero = \with {
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #zero-space
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
 }
 lowerCaseChords = \with {
   chordNameLowercaseMinor = ##t
 }
 staffAffinityDown = \with {
-  \override VerticalAxisGroup #'staff-affinity = #DOWN
+  \override VerticalAxisGroup.staff-affinity = #DOWN
 }
 labelContext =
 #(define-music-function
@@ -2078,13 +2074,13 @@ labelContext =
                           \lowerCaseChords }
   \context { \FretBoards  \alignToZero \staffAffinityDown }
   \context { \Score
-    \override BarLine #'stencil = ##f
-    \override DynamicText #'self-alignment-X = #-1
-    \override FretBoard #'X-offset = #1.75
-    \override InstrumentName #'minimum-Y-extent = #'(-2 . 2)
-    \override InstrumentName #'extra-offset = #'(0 . -0.5)
-    \override TextScript #'minimum-Y-extent = #'(-2 . 3)
-    \override TimeSignature #'stencil = ##f
+    \override BarLine.stencil = ##f
+    \override DynamicText.self-alignment-X = #-1
+    \override FretBoard.X-offset = #1.75
+    \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
+    \override InstrumentName.extra-offset = #'(0 . -0.5)
+    \override TextScript.minimum-Y-extent = #'(-2 . 3)
+    \override TimeSignature.stencil = ##f
   }
 }
 
@@ -2150,11 +2146,11 @@ alors que la seconde redéfinit la propriété dans son intégralité.
 
 @example
 \new Staff \with @{
-  \override VerticalAxisGroup #'staff-staff-spacing #'basic-distance = #10
+  \override VerticalAxisGroup.staff-staff-spacing.basic-distance = #10
 @} @{ @dots{} @}
 
 \new Staff \with @{
-  \override VerticalAxisGroup #'staff-staff-spacing =
+  \override VerticalAxisGroup.staff-staff-spacing =
     #'(('basic-distance  . 10)
        (minimum-distance . 9)
        (padding . 1)
@@ -2169,7 +2165,7 @@ bloc @code{\layout} :
 \layout @{
   \context @{
     \Staff
-    \override VerticalAxisGroup #'staff-staff-spacing #'basic-distance = #10
+    \override VerticalAxisGroup.staff-staff-spacing.basic-distance = #10
   @}
 @}
 @end example
@@ -2328,7 +2324,7 @@ sein de regroupements.
 \layout {
   \context {
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 8)
          (minimum-distance . 7)
          (padding . 1))
@@ -2350,7 +2346,7 @@ sein de regroupements.
   % By setting 'padding to a negative value, staves can be made to
   % collide.  The lowest acceptable value for 'basic-distance is 0.
   \new Staff \with {
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 3.5)
          (padding . -10))
   } { \clef bass g2 r | }
@@ -2408,14 +2404,14 @@ regroupées, à l'aide des propriétés de l'objet graphique
 \layout {
   \context {
     \Score
-    \override StaffGrouper #'staff-staff-spacing #'padding = #0
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #1
+    \override StaffGrouper.staff-staff-spacing.padding = #0
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #1
   }
 }
 
 <<
   \new PianoStaff \with {
-    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+    \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
   } <<
     \new Staff { c'1 }
     \new Staff { c'1 }
@@ -2476,24 +2472,23 @@ Vous noterez que la valeur élevée attribuée à la clé
 \layout {
   \context {
     \Lyrics
-    \override VerticalAxisGroup
-      #'nonstaff-nonstaff-spacing #'stretchability = #1000
+    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
   }
 }
 
 \new StaffGroup
 <<
   \new Staff \with {
-    \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance . 30))
+    \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
   } { c'1 }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #UP
+    \override VerticalAxisGroup.staff-affinity = #UP
   } \lyricmode { up }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #CENTER
+    \override VerticalAxisGroup.staff-affinity = #CENTER
   } \lyricmode { center }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #DOWN
+    \override VerticalAxisGroup.staff-affinity = #DOWN
   } \lyricmode { down }
   \new Staff { c'1 }
 >>
@@ -2558,21 +2553,16 @@ quelques exemples de réglages de @code{NonMusicalPaperColumn} à l'aide
 de la commande @code{\overrideProperty} :
 
 @example
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((Y-offset . 40))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((alignment-distances . (15)))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40)
                                  (alignment-distances . (15)))
 @end example
@@ -2626,14 +2616,11 @@ de l'objet @code{NonMusicalPaperColumn} :
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 40))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 80))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
           s1*5 \break
         }
         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
@@ -2665,16 +2652,13 @@ jouer sur la distance séparant les portées de chacun des systèmes, grâce
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 20)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (15)))
           s1*5 \break
         }
@@ -2706,16 +2690,13 @@ d'un regroupement de portées.
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
                                            (alignment-distances . (30 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (10 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (10 30)))
           s1*5 \break
         }
@@ -2793,13 +2774,13 @@ près de la portée.
 @lilypond[quote,ragged-right,relative=2,verbatim]
 c4_"Text"\pp
 r2.
-\once \override TextScript #'outside-staff-priority = #1
+\once \override TextScript.outside-staff-priority = #1
 c4_"Text"\pp % this time the text will be closer to the staff
 r2.
 % by setting outside-staff-priority to a non-number,
 % we disable the automatic collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
-\once \override DynamicLineSpanner #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
+\once \override DynamicLineSpanner.outside-staff-priority = ##f
 c4_"Text"\pp % now they will collide
 @end lilypond
 
@@ -2808,9 +2789,9 @@ le précède se contrôle par la propriété @code{outside-staff-padding}.
 
 @c KEEP LY
 @lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
-\once \override TextScript #'outside-staff-padding = #0
+\once \override TextScript.outside-staff-padding = #0
 a'^"Ce texte est placé au plus près de la note"
-\once \override TextScript #'outside-staff-padding = #3
+\once \override TextScript.outside-staff-padding = #3
 c^"Ce texte est décalé par rapport au texte précédent"
 c^"Ce texte est accolé au texte précédent"
 @end lilypond
@@ -2831,7 +2812,7 @@ c4
 c''2
 % setting outside-staff-horizontal-padding fixes this
 R1
-\once \override TextScript #'outside-staff-horizontal-padding = #1
+\once \override TextScript.outside-staff-horizontal-padding = #1
 c,,4^"Text"
 c4
 c''2
@@ -2940,8 +2921,8 @@ les réglages par défaut, puis avec des corrections forcées.
 {
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
-  \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
-  \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
+  \override Staff.NoteSpacing.stem-spacing-correction = #1.5
+  \override Staff.StaffSpacing.stem-spacing-correction = #1.5
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
 }
@@ -2970,7 +2951,7 @@ cependant @qq{d'aérer} artificiellement une partition ; il vous
 suffit d'ajuster la valeur du décalage @emph{(padding)} autant que de
 besoin.
 @example
- \override Score.NonMusicalPaperColumn #'padding = #10
+ \override Score.NonMusicalPaperColumn.padding = #10
 @end example
 
 Il n'y a aucun moyen de diminuer l'espacement.
@@ -3045,8 +3026,7 @@ resserrée.  En effet, @code{ly:make-moment} construit une durée :
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'base-shortest-duration = #(ly:make-moment 1 16)
+      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
     }
   }
 }
@@ -3080,7 +3060,7 @@ s'appliquera à toute la partition, puisque mentionnée au sein d'un bloc
   \layout {
     \context {
       \Score
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -3091,7 +3071,7 @@ les notes sans tenir compte des clefs, barres de mesure ou notes
 d'ornement qui pourraient apparaître :
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override Score.SpacingSpanner #'strict-note-spacing = ##t
+\override Score.SpacingSpanner.strict-note-spacing = ##t
 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c]  c32[ c32] }
 @end lilypond
 
@@ -3184,7 +3164,7 @@ point cette notation proportionnelle.
 
 @item @code{\remove "Separating_line_group_engraver"}
 
-@item @code{\override PaperColumn #'used = ##t}
+@item @code{\override PaperColumn.used = ##t}
 
 @end itemize
 
@@ -3421,7 +3401,7 @@ allons activer le @code{uniform-stretching}, propriété attachée au
     \context {
       \Score
       proportionalNotationDuration = #(ly:make-moment 1 20)
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -3525,7 +3505,7 @@ les deux portées suivantes :
 
 \new Staff {
   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
-  \override Score.SpacingSpanner #'strict-note-spacing = ##t
+  \override Score.SpacingSpanner.strict-note-spacing = ##t
   c''8
   c''8
   c''8
@@ -3548,12 +3528,12 @@ En plus de ceux que nous venons de voir, vous trouverez d'autres
 réglages en usage dans la notation proportionnelle comme, entre autres,
 
 @itemize
-@item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
+@item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
 @item @code{tupletFullLength = ##t}
-@item @code{\override Beam #'breakable = ##t}
-@item @code{\override Glissando #'breakable = ##t}
-@item @code{\override TextSpanner #'breakable = ##t}
-@item @code{\remove "Forbid_line_break_engraver" dans le contexte de voix}
+@item @code{\override Beam.breakable = ##t}
+@item @code{\override Glissando.breakable = ##t}
+@item @code{\override TextSpanner.breakable = ##t}
+@item @code{\remove "Forbid_line_break_engraver"} (dans un contexte de voix)
 @end itemize
 
 Ces différents réglages permettent un espacement strict des notes
@@ -3710,7 +3690,7 @@ se @qq{détachent} d'un système peuvent être rapprochés de la portée :
 
 @lilypond[verbatim,quote,relative=1]
 e4 c g\f c
-e4 c g-\tweak #'X-offset #-2.7 -\tweak #'Y-offset #2.5 \f c
+e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
 @end lilypond
 
 @item
@@ -3749,8 +3729,7 @@ valeur plus longue -- donnera un effet @qq{resserré} à la musique :
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'common-shortest-duration = #(ly:make-moment 1 2)
+      \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 2)
     }
   }
 }
index 7f1d0208c14e030fad9b197006d48eb7d278388a..c74b5454956448e6ce7911f8b25e0b923b7d6161 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: John Mandereau
@@ -460,11 +460,11 @@ Vous pouvez modifier le nombre de lignes d'une portée.
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-count = #2
+\override Staff.StaffSymbol.line-count = #2
 \startStaff g, e |
 
 f'4 d \stopStaff
-\revert Staff.StaffSymbol #'line-count
+\revert Staff.StaffSymbol.line-count
 \startStaff g, e |
 @end lilypond
 
@@ -477,10 +477,10 @@ d'une seule commande.
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(1 3 5 -1 -3)
+\override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
 \startStaff g, e |
 f'4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(8 6.5 -6 -8 -0.5)
+\override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
 \startStaff g, e
 @end lilypond
 
@@ -493,7 +493,7 @@ les lignes supplémentaires et les hampes seront aussi modifiées.
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #3
+  \override StaffSymbol.thickness = #3
 }
 { e4 d c b }
 @end lilypond
@@ -506,8 +506,8 @@ déterminer l'épaisseur des lignes supplémentaires.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #2
-  \override StaffSymbol #'ledger-line-thickness = #'(0.5 . 0.4)
+  \override StaffSymbol.thickness = #2
+  \override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -516,7 +516,7 @@ L'emplacement des lignes supplémentaires est réglable :
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'ledger-positions = #'(-3 -2 -1 2 5 6)
+  \override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -528,7 +528,7 @@ supplémentaires.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'ledger-extra = #4
+  \override StaffSymbol.ledger-extra = #4
 }
 { f'4 a, d, f, }
 @end lilypond
@@ -542,11 +542,11 @@ rendue nécessaire pour annuler les effets de la commande
 @code{\override} qui s'applique à l'intégralité du @code{StaffSymbol}.
 
 @lilypond[fragment,quote,relative=1]
-\override Staff.StaffSymbol #'line-positions =   #'(-8 0 2 4)
+\override Staff.StaffSymbol.line-positions =   #'(-8 0 2 4)
 d4 e f g
 \stopStaff
 \startStaff
-\override Staff.StaffSymbol #'ledger-positions = #'(-8 -6 (-4 -2) 0)
+\override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
 d4 e f g
 @end lilypond
 
@@ -555,7 +555,7 @@ lignes supplémentaires.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'staff-space = #1.5
+  \override StaffSymbol.staff-space = #1.5
 }
 { f'4 d, g, e, }
 @end lilypond
@@ -633,8 +633,8 @@ lorsqu'il y a un nombre restreint d'ossias.
       \remove "Time_signature_engraver"
       alignAboveContext = #"main"
       fontSize = #-3
-      \override StaffSymbol #'staff-space = #(magstep -3)
-      \override StaffSymbol #'thickness = #(magstep -3)
+      \override StaffSymbol.staff-space = #(magstep -3)
+      \override StaffSymbol.thickness = #(magstep -3)
       firstClef = ##f
     }
     { e4 d f e }
@@ -655,10 +655,10 @@ procéder, bien plus que dans l'exemple suivant.
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   }
   { \stopStaff s1*6 }
 
@@ -694,10 +694,10 @@ début de ligne.  Pour plus d'information au sujet de la commande
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   } \relative c'' {
     R1*3
     c4 e8 d c2
@@ -715,7 +715,7 @@ début de ligne.  Pour plus d'information au sujet de la commande
 \layout {
   \context {
     \Staff \RemoveEmptyStaves
-    \override VerticalAxisGroup #'remove-first = ##t
+    \override VerticalAxisGroup.remove-first = ##t
   }
 }
 @end lilypond
@@ -862,8 +862,8 @@ de formatage.  En pareil cas il vaut mieux, au lieu de supprimer le
 graveur, recourir aux dérogations suivantes :
 
 @example
-\override StaffSymbol #'stencil = ##f
-\override NoteHead #'no-ledgers = ##t
+\override StaffSymbol.stencil = ##f
+\override NoteHead.no-ledgers = ##t
 @end example
 
 En ce qui concerne les désagréments et messages liés à l'utilisation de
index ceb31c381ee9fa14bdd5de1afe243be77c9f0471..1d149116cf69703ba587215335a0202a680df284 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Jean-Charles Malahieude
 @c Translation checkers: Valentin Villenave, John Mandereau
@@ -137,7 +137,7 @@ les marges du document requiert des calculs relativement lourds ;
 vous pouvez toutefois vous en affranchir en ajoutant
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 
@@ -156,7 +156,7 @@ ou ondulée.  Ces objets, que l'on appelle @qq{extenseurs}, se dessinent
 entre deux notes à l'aide de la syntaxe suivante :
 
 @lilypond[verbatim,quote,relative=2]
-\override TextSpanner #'(bound-details left text) = "rit."
+\override TextSpanner.bound-details.left.text = "rit."
 b1\startTextSpan
 e,\stopTextSpan
 @end lilypond
@@ -173,7 +173,7 @@ faites appel à un bloc @code{\markup} --
 voir @ref{Mise en forme du texte}.
 
 @lilypond[quote,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text) =
+\override TextSpanner.bound-details.left.text =
   \markup { \upright "rit." }
 b1\startTextSpan c
 e,\stopTextSpan
@@ -1465,12 +1465,12 @@ style, la graisse ou la taille.  Notez bien que l'argument fourni à
 défaut.
 
 @lilypond[quote,verbatim,relative=2]
-\override Score.RehearsalMark #'font-family = #'typewriter
+\override Score.RehearsalMark.font-family = #'typewriter
 \mark \markup "Ouverture"
-\override Voice.TextScript #'font-shape = #'italic
-\override Voice.TextScript #'font-series = #'bold
+\override Voice.TextScript.font-shape = #'italic
+\override Voice.TextScript.font-series = #'bold
 d2.^\markup "Allegro"
-\override Voice.TextScript #'font-size = #-3
+\override Voice.TextScript.font-size = #-3
 c4^smaller
 @end lilypond
 
@@ -1525,8 +1525,8 @@ système, dès lors qu'elle est accessible par Fontconfig et que vous
 respectez la syntaxe suivante :
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.TimeSignature #'font-name = #"Bitstream Charter"
-\override Staff.TimeSignature #'font-size = #2
+\override Staff.TimeSignature.font-name = #"Bitstream Charter"
+\override Staff.TimeSignature.font-size = #2
 \time 3/4
 
 a1_\markup {
index 73a0f8631011533dd79d11eec9fc0bf2ec2dd6f3..4ee597198bcee15684b300560fa7f110d8fccc46 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: Jean-Jacques Gerbaud
@@ -168,14 +168,14 @@ impératif d'insérer des espaces lorsque vous modifiez les propriétés
 d'une commande.  En d'autres termes, @strong{ne saisissez pas}
 
 @example
-\override Score.LyricText #'font-shape = #'italic
+\override Score.LyricText.font-shape = #'italic
 @end example
 
 @noindent
 mais plutôt
 
 @example
-\override Score . LyricText #'font-shape = #'italic
+\override Score.LyricText.font-shape = #'italic
 @end example
 
 Pour utiliser des lettres accentuées ou des caractères spéciaux
@@ -1053,7 +1053,7 @@ question.  Voici comment cela se présente :
   <<
     \new Lyrics = "lyrics" \with {
       % lyrics above a staff should have this override
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "melody" {
@@ -1085,7 +1085,7 @@ deuxième méthode :
     \new Lyrics = "sopranos"
     \new Lyrics = "contraltos" \with {
       % lyrics above a staff should have this override
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "contraltos" {
@@ -1137,7 +1137,7 @@ permet d'accroître l'espacement des paroles.
 @lilypond[relative=1,verbatim,quote,ragged-right]
 {
   c c c c
-  \override Lyrics.LyricSpace #'minimum-distance = #1.0
+  \override Lyrics.LyricSpace.minimum-distance = #1.0
   c c c c
 }
 \addlyrics {
@@ -1163,7 +1163,7 @@ dans le bloc @code{\layout}.
   \layout {
     \context {
       \Lyrics
-      \override LyricSpace #'minimum-distance = #1.0
+      \override LyricSpace.minimum-distance = #1.0
     }
   }
 }
@@ -1181,7 +1181,7 @@ Afin de réduire le temps de traitement, vous pouvez désactiver cette
 fonctionnalité en ajoutant
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 Pour s'assurer que les paroles ne seront pas traversées par des barres
@@ -1193,7 +1193,7 @@ de mesure, il faut ajouter
     \Lyrics
       \consists "Bar_engraver"
       \consists "Separating_line_group_engraver"
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
   @}
 @}
 @end example
@@ -1928,7 +1928,7 @@ modifie la propriété @code{associatedVoice}.  Dans cet exemple,
         \voiceOne
         \times 2/3 {
           % show associations clearly.
-          \override NoteColumn #'force-hshift = #-3
+          \override NoteColumn.force-hshift = #-3
           f8 f g
         }
       }
@@ -2364,8 +2364,8 @@ du chœur.
   \layout {
     \context {
       \Score
-      \override DynamicText #'direction = #UP
-      \override DynamicLineSpanner #'direction = #UP
+      \override DynamicText.direction = #UP
+      \override DynamicLineSpanner.direction = #UP
     }
   }
 }
@@ -2660,7 +2660,7 @@ pianoRH = \relative c'' {
   % position name of cue-ing instrument just before the cue notes,
   % and above the staff
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
     \set instrumentCueName = "Flute"
   }
   \cueDuring "flute" #UP { g4 bes4 }
@@ -2704,8 +2704,8 @@ pianoRH = \relative c'' {
   \transposition c'
   % position name of cue-ing instrument below the staff
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
-    \override InstrumentSwitch #'direction = #DOWN
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
+    \override InstrumentSwitch.direction = #DOWN
     \set instrumentCueName = "Clar."
   }
   \cueDuring "clarinet" #DOWN { c4. g8 }
@@ -2847,8 +2847,8 @@ dialogue = \lyricmode {
 \score {
   <<
     \new Lyrics \with {
-      \override LyricText #'font-shape = #'italic
-      \override LyricText #'self-alignment-X = #LEFT
+      \override LyricText.font-shape = #'italic
+      \override LyricText.self-alignment-X = #LEFT
     }
     { \dialogue }
     \new Staff {
@@ -2922,7 +2922,7 @@ indiquer les hauteurs ; le rythme de la mélodie est donné par le
 rythme et l'accentuation des paroles elles-mêmes.
 
 @lilypond[verbatim,quote]
-stemOff = { \override Staff.Stem #'transparent = ##t }
+stemOff = { \override Staff.Stem.transparent = ##t }
 
 \relative c' {
   \stemOff
@@ -3016,9 +3016,9 @@ a4 b c2
 \bar "'"
 a4 b c2
 a4 b c2
-\bar ":"
+\bar ";"
 a4 b c2
-\bar "dashed"
+\bar "!"
 a4 b c2
 \bar "||"
 @end lilypond
@@ -3030,23 +3030,23 @@ besoins :
 
 @lilypond[verbatim,quote]
 divisioMinima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-minima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-minima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaior = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maior
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maior
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaxima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maxima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maxima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 finalis = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::finalis
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::finalis
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 
@@ -3162,8 +3162,7 @@ global = {
       \layout {
         \context {
           \Score
-          \override SpacingSpanner
-          #'base-shortest-duration = #(ly:make-moment 1 2)
+          \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 2)
         }
         \context {
           \Staff
index f22e11f2d053fe528084ef24963f9af719659394..8a667800599398ca64b1b9e08d41f046ab83d999 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-    Translation of GIT committish: 5198521ee5e91631a2cbf236d79489b12624797b
+    Translation of GIT committish: a278b3a9015f156998816868f09929a4c07d698c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -7,20 +7,20 @@
 
 <!--
 we depend on an external entity here, which we cannot control.  Suppose
-we go from 2.16.x to 2.17.x and put the documentation under "v2.17".
+we go from 2.15.x to 2.17.x and put the documentation under "v2.17".
 For some time, Google won't have the new location in its index, so the
-search would get nothing.  It would be better to keep "v2.16" in the
-search for a while and have a redirection from "v2.16" to "v2.17".
+search would get nothing.  It would be better to keep "v2.15" in the
+search for a while and have a redirection from "v2.15" to "v2.17".
 -->
 
 <form action="http://google.com/search"
       method="get"
       name="search"
-      onSubmit="search.q.value='site:lilypond.org/doc/v2.16 '
+      onSubmit="search.q.value='site:lilypond.org/doc/v2.17 '
                + search.brute_query.value"
-      onMouseMove="search.q.value='site:lilypond.org/doc/v2.16 '
+      onMouseMove="search.q.value='site:lilypond.org/doc/v2.17 '
                   + search.brute_query.value"
-      onKeyUp="search.q.value='site:lilypond.org/doc/v2.16 '
+      onKeyUp="search.q.value='site:lilypond.org/doc/v2.17 '
               + search.brute_query.value">
   <input type="hidden" name="btnG" value="Recherche sur Google">
   <input type="text" name="brute_query" onfocus="this.value=''" value="Rechercher">
diff --git a/Documentation/fr/texidocs/GNUmakefile b/Documentation/fr/texidocs/GNUmakefile
deleted file mode 100644 (file)
index 0ffa758..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth=../../..
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.texidoc)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/fr/usage/GNUmakefile b/Documentation/fr/usage/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index fed75db4b2741e862ca8a8893742223d83e51239..93b5649f3f11eb9477417fa1af61ed213399db4e 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Jean-Charles Malahieude
 @c Translation checkers:
@@ -1051,7 +1051,7 @@ soient en rouge, alors que le résultat nous présente deux portées et que
 les notes, placées sur la portée inférieure, restent en noir.
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.NoteHead #'color = #red
+\override Staff.NoteHead.color = #red
 \new Staff { a }
 @end lilypond
 
@@ -1064,7 +1064,7 @@ ces notes en rouge :
 
 @lilypond[quote,verbatim,relative=2]
 \new Staff {
-  \override Staff.NoteHead #'color = #red
+  \override Staff.NoteHead.color = #red
   a
 }
 @end lilypond
@@ -1162,7 +1162,7 @@ dès lors que vous autoriserez l'un de ces contextes à se comporter comme
 une portée, à l'aide de l'instruction
 
 @example
-\override VerticalAxisGroup #'staff-affinity = ##f
+\override VerticalAxisGroup.staff-affinity = ##f
 @end example
 
 @noindent
diff --git a/Documentation/fr/web/GNUmakefile b/Documentation/fr/web/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 2205f934ad5d28e727d60c7436797edbaf30c6fb..5c04202d3b863b0d2931209e55c730b480e8bb1f 100644 (file)
@@ -1,6 +1,5 @@
 ISOLANG = hu
 depth = ../..
-SUBDIRS = web learning texidocs usage included
 STEPMAKE_TEMPLATES = documentation texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
 
diff --git a/Documentation/hu/included/.gitignore b/Documentation/hu/included/.gitignore
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Documentation/hu/included/GNUmakefile b/Documentation/hu/included/GNUmakefile
deleted file mode 100644 (file)
index afe7a4d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth = ../../..
-
-STEPMAKE_TEMPLATES=documentation
-
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ly)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/hu/learning/GNUmakefile b/Documentation/hu/learning/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index f467d1e696f5bf8483fc62a6b97c0de6bf227e97..3f1d4a5dad22d56a79d89fefe1dd7c120da4f650 100644 (file)
@@ -10,7 +10,7 @@
 
 
 @c -*- coding: utf-8; mode: texinfo; -*-
-@c \version "2.16.0"
+@c \version "2.17.6"
 @node Alapfogalmak
 @chapter Alapfogalmak
 @translationof Fundamental concepts
@@ -757,9 +757,9 @@ later sections.
   \\  % Voice four
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'force-hshift = #0
+      \once \override NoteColumn.force-hshift = #0
       <ees c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   >> |
@@ -806,9 +806,9 @@ not understand.
   \\  % Voice four
     { \voiceThreeStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'force-hshift = #0
+      \once \override NoteColumn.force-hshift = #0
       <ees c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   >>
@@ -3069,7 +3069,7 @@ macros, or user-defined commands) for tweaks:
 @c TODO Avoid padtext - not needed with skylining
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
 fthenp=_\markup { \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
 violin = \relative c'' {
   \repeat volta 2 {
@@ -3098,7 +3098,7 @@ the last line.
 violin = \relative c'' @{
   \repeat volta 2 @{
     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b
-    \once \override TextScript #'padding = #5.0
+    \once \override TextScript.padding = #5.0
     c4.^"hi there!" d8 e' f g d
     c,4.\markup @{ \dynamic f \italic \small @{ 2nd @}
       \hspace #0.1 \dynamic p @}
@@ -3122,7 +3122,7 @@ can think of these as functions).
 padText =
 #(define-music-function (parser location padding) (number?)
   #{
-    \once \override TextScript #'padding = #padding
+    \once \override TextScript.padding = #padding
   #})
 
 \relative c''' {
diff --git a/Documentation/hu/learning/preface.itely b/Documentation/hu/learning/preface.itely
new file mode 100644 (file)
index 0000000..93c5c03
--- /dev/null
@@ -0,0 +1,60 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
+@end ignore
+
+@c \version "2.16.0"
+
+@node Preface
+@unnumbered Preface
+
+
+It must have been during a rehearsal of the EJE (Eindhoven Youth
+Orchestra), somewhere in 1995 that Jan, one of the cranked violists,
+told Han-Wen, one of the distorted French horn players, about the
+grand new project he was working on.  It was an automated system for
+printing music (to be precise, it was MPP, a preprocessor for
+MusiXTeX).  As it happened, Han-Wen accidentally wanted to print out
+some parts from a score, so he started looking at the software, and he
+quickly got hooked.  It was decided that MPP was a dead end.  After
+lots of philosophizing and heated email exchanges, Han-Wen started
+LilyPond in 1996.  This time, Jan got sucked into Han-Wen's new
+project.
+
+In some ways, developing a computer program is like learning to play
+an instrument.  In the beginning, discovering how it works is fun, and
+the things you cannot do are challenging.  After the initial excitement,
+you have to practice and practice.  Scales and studies can be dull, and
+if you are not motivated by others -- teachers, conductors or
+audience -- it is very tempting to give up.  You continue, and gradually
+playing becomes a part of your life.  Some days it comes naturally, and
+it is wonderful, and on some days it just does not work, but you keep
+playing, day after day.
+
+Like making music, working on LilyPond can be dull work, and on
+some days it feels like plodding through a morass of bugs.
+Nevertheless, it has become a part of our life, and we keep doing it.
+Probably the most important motivation is that our program actually
+does something useful for people.  When we browse around the net we
+find many people who use LilyPond, and produce impressive pieces of
+sheet music.  Seeing that feels unreal, but in a very pleasant way.
+
+Our users not only give us good vibes by using our program, many of
+them also help us by giving suggestions and sending bug reports, so we
+would like to thank all users that sent us bug reports, gave
+suggestions or contributed in any other way to LilyPond.
+
+Playing and printing music is more than a nice analogy.  Programming
+together is a lot of fun, and helping people is deeply satisfying, but
+ultimately, working on LilyPond is a way to express our deep love for
+music.  May it help you create lots of beautiful music!
+
+Han-Wen and Jan
+
+Utrecht/Eindhoven, The Netherlands, July 2002.
+
index d5b2da7c7d2d42c78026deb62a5ee1bd2e1ad436..8f0dae8fb25f10e63b48ceb59b478b566cb5ca63 100644 (file)
@@ -10,7 +10,7 @@
 
 
 @c -*- coding: utf-8; mode: texinfo; -*-
-@c \version "2.16.0"
+@c \version "2.17.6"
 @node A kimenet finomhangolása
 @chapter A kimenet finomhangolása
 @translationof Tweaking output
 @c line-width ensures no break
 @c line-width ensures no break
 @c ode{staff-position} property, which is specified in half staff
-@c ode{\once \override Tie #'staff-position = #3.5}
+@c ode{\once \override Tie.staff-position = #3.5}
 @c line-width ensures no break
 @c line-width ensures no break
 @c index Tie, example of overriding
 @c index variables, using for tweaks
 @c index using variables for tweaks
 @c index tweaks, using variables for
-@c ode{\override Lyrics . LyricText #'font-shape = #'italic}
-@c ode{\override Lyrics . LyricText #'font-series = #'bold}
-@c ode{\revert Lyrics . LyricText #'font-shape}
-@c ode{\revert Lyrics . LyricText #'font-series}
+@c ode{\override Lyrics.LyricText.font-shape = #'italic}
+@c ode{\override Lyrics.LyricText.font-series = #'bold}
+@c ode{\revert Lyrics.LyricText.font-shape}
+@c ode{\revert Lyrics.LyricText.font-series}
 @c index LyricText, example of overriding
 @c index font-shape property, example
 @c index font-series property, example
index df516c9d82632d0819a2e636c90332a382d58087..6dc413f820c2a06d230636c9fbab2f5fea990b31 100644 (file)
@@ -1,11 +1,11 @@
 <form action="http://google.com/search"
       method="get"
       name="search"
-      onSubmit="search.q.value='site:lilypond.org +v2.16 '
+      onSubmit="search.q.value='site:lilypond.org +v2.17 '
                + search.brute_query.value"
-      onMouseMove="search.q.value='site:lilypond.org +v2.16 '
+      onMouseMove="search.q.value='site:lilypond.org +v2.17 '
                   + search.brute_query.value"
-      onKeyUp="search.q.value='site:lilypond.org +v2.16 '
+      onKeyUp="search.q.value='site:lilypond.org +v2.17 '
               + search.brute_query.value">
   <input type="hidden" name="btnG" value="Google keresés">
   <input type="text" name="brute_query" onfocus="this.value=''" value="Keresés">
diff --git a/Documentation/hu/texidocs/GNUmakefile b/Documentation/hu/texidocs/GNUmakefile
deleted file mode 100644 (file)
index 0ffa758..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth=../../..
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.texidoc)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/hu/usage/GNUmakefile b/Documentation/hu/usage/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 26b8a10f0bb32c5c3405bd5ccd384b234d810641..95ff637baa2e93e2b309c281a0b276ea7ceb6fc9 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node A lilypond használata
@@ -526,7 +526,7 @@ valójában az eredmény két kottasor, mely közül az alsóban alapértelmezet
 színű, fekete kottafejek lesznek.
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.NoteHead #'color = #red
+\override Staff.NoteHead.color = #red
 \new Staff { a }
 @end lilypond
 
@@ -537,7 +537,7 @@ létrehozott kottasorra. A példa helyesen:
 
 @lilypond[quote,verbatim,relative=2]
 \new Staff {
-  \override Staff.NoteHead #'color = #red
+  \override Staff.NoteHead.color = #red
   a
 }
 @end lilypond
diff --git a/Documentation/hu/web/GNUmakefile b/Documentation/hu/web/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 99ba226104d6533c2426ec7f271f3ea4b3638fdf..6a298a7750ab9b4a0fd4e50d5e3834d8bf9b8feb 100644 (file)
@@ -1,5 +1,5 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
-@c This file is part of community.itexi and ../topdocs/AUTHORS.itexi
+@c This file is part of community.itexi
 
 @ignore
 
@@ -7,9 +7,11 @@
   list is sorted alphabetically by surname.  This file lists people
   that have contributed more than a few hours of work.
 
-  Developers are people who are (or have been) listed under the
-  "Development Team" in the THANKS, and can choose their own
-  titles.  Contributors are everybody else, and simply list their
+  Developers are people who have been listed under the "Development
+  Team" in Documentation/misc/THANKS*, or who are added when they
+  reach a significant amount of contributions with respect to the
+  existing Developers list, and can choose their own titles.
+  Contributors are everybody else, and simply list their
   contributions.  All lists are sorted alphabetically.
 
   Anybody who has finished doing a "main devel team" task should
diff --git a/Documentation/included/GNUmakefile b/Documentation/included/GNUmakefile
deleted file mode 100644 (file)
index 79b506e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-depth = ../..
-
-STEPMAKE_TEMPLATES=documentation
-
-EXTRA_DIST_FILES= README
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ly)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
-
-include $(depth)/make/stepmake.make
index 0d4ebabc007cb5fcc9b9e5bf7910475b45bf5a90..d2e90535d6c36051dc6086e06aff024728f0ebc9 100644 (file)
@@ -7,18 +7,28 @@
   list is sorted alphabetically by surname.  This file lists people
   that have contributed more than a few hours of work.
 
-  Developers are people who are (or have been) listed under the
-  "Development Team" in the THANKS, and can choose their own
-  titles.  Contributors are everybody else, and simply list their
+  Developers are people who have been listed under the "Development
+  Team" in Documentation/misc/THANKS*, or who are added when they
+  reach a significant amount of contributions with respect to the
+  existing Developers list, and can choose their own titles.
+  Contributors are everybody else, and simply list their
   contributions.  All lists are sorted alphabetically.
 
+  Developers should be listed under "main developers" and nowhere
+  else. Main developers may appear in both the current and previous.
   Anybody who has finished doing a "main devel team" task should
   list it under developersPrevious, even if they're still doing
   other "main devel team" stuff.  See "Graham Percival" for an
   example.
 
-  Contributors are also split between Current and Previous, and
-  each category contains:
+  Contributors are also split between Current and Previous.
+  Anybody who worked on anything up to and including the latest
+  stable release should be listed under "previous contributors".
+  Contributors who worked on the unstable release should be listed
+  under "current contributors".  A contributor can thus be listed
+  twice (under previous and current).
+
+  Each category contains:
     core...     (programming)
     font...     (duh)
     doc...      (documentation and examples)
@@ -103,7 +113,7 @@ Assistant documentation editor, Code cleanup
 Core developer
 
 @item Mike Solomon:
-@email{mike@@apollinemike.com},
+@email{mike@@mikesolomon.org},
 Core developer, Frog meister
 
 @item Carl Sorensen:
@@ -116,7 +126,7 @@ Translation Meister
 @item Valentin Villenave:
 LSR editor and Bug squad member
 
-@item Jan Warchoł:
+@item Janek Warchoł:
 happy nitpicker
 
 @end itemize
@@ -168,20 +178,10 @@ Core developer, Schemer extraordinaire
 @c use commas not colons
 
 Aleksandr Andreev,
-Sven Axelsson,
-Peter Chubb,
-Karin Hoethker,
 Marc Hohl,
-David Nalesnik,
-Justin Ohmie,
+Keith OHara,
 Benkő Pál,
-Julien Rioux,
-Patrick Schmidt,
-Adam Spiers,
-Heikki Taurainen,
-Piers Titus van der Torren,
-Jan-Peter Voigt,
-Janek Warchol
+Julien Rioux
 
 @c no comma for last entry
 
@@ -203,10 +203,10 @@ Janek Warchol
 
 @c use commas not colons
 
+Frédéric Bron,
 James Lowe,
-Pavel Roskin,
-Alberto Simoes,
-Stefan Weil
+Arnold Theresius,
+Rodolfo Zitellini
 
 @c no comma for last entry
 
@@ -215,12 +215,14 @@ Stefan Weil
 
 @macro bugsquadCurrent
 
+@c use commas not colons
+
 Colin Campbell,
 Eluze,
+Marc Hohl,
 Phil Holmes,
 Marek Klein,
-Ralph Palmer,
-James Lowe
+Ralph Palmer
 
 @c no comma for last entry
 
@@ -231,10 +233,6 @@ James Lowe
 
 @c use commas not colons
 
-Colin Campbell,
-Christian Hitz,
-Phil Holmes
-
 @c no comma for last entry
 
 @end macro
@@ -245,9 +243,11 @@ Phil Holmes
 
 @c use commas not colons
 
+Federico Bruni,
+Felipe Castro,
+Pavel Fric,
 Jean-Charles Malahieude,
-Till Paala,
-Yoshiki Sawada
+Till Rettig
 
 @c no comma for last entry
 
@@ -262,11 +262,11 @@ Yoshiki Sawada
 
 Erlend Aasland,
 Maximilian Albert,
+Aleksandr Andreev,
 Guido Amoruso,
 Sven Axelsson,
 Kristof Bastiaensen,
 Pál Benkő,
-Bertrand Bordage,
 Frédéric Bron,
 Juliusz Chroboczek,
 Peter Chubb,
@@ -282,8 +282,8 @@ Lisa Opus Goldstein,
 Yuval Harel,
 Andrew Hawryluk,
 Christian Hitz,
+Karin Hoethker,
 Marc Hohl,
-Ian Hulin,
 Bernard Hurley,
 Yoshinobu Ishizaki,
 Chris Jackson,
@@ -298,10 +298,12 @@ Peter Lutek,
 Kieren MacMillan,
 Hendrik Maryns,
 Thomas Morgan,
-Joe Neeman,
+David Nalesnik,
 Matthias Neeracher,
 Keith OHara,
+Justin Ohmie,
 Tatsuya Ono,
+Benkő Pál,
 Benjamin Peterson,
 Guy Gascoigne-Piggford,
 Henning Hraban Ramm,
@@ -314,10 +316,13 @@ Patrick Schmidt,
 Boris Shingarov,
 Kim Shrier,
 Edward Sanford Sutton,
+Adam Spiers,
 David Svoboda,
+Heikki Taurainen,
+Piers Titus van der Torren,
 Owen Tuz,
 Sebastiano Vigna,
-Jan Warchoł,
+Jan-Peter Voigt,
 Arno Waschk,
 John Williams,
 Andrew Wilson,
@@ -363,7 +368,6 @@ Joseph Harfouch,
 Andrew Hawryluk,
 Cameron Horsburgh,
 Geoff Horton,
-Ian Hulin,
 Heikki Junes,
 Kurtis Kroon,
 James Lowe,
@@ -377,10 +381,12 @@ François Pinard,
 David Pounder,
 Michael Rasmussen,
 Till Rettig,
+Pavel Roskin,
 Patrick Schmidt,
-Carl D. Sorensen,
+Alberto Simoes,
 Anh Hai Trinh,
 Eduardo Vieira,
+Stefan Weil,
 Rune Zedeler
 
 @c no comma for last entry
@@ -391,9 +397,15 @@ Rune Zedeler
 @macro bugsquadPrevious
 
 @c use commas not colons
+
+Colin Campbell,
 James E. Bailey,
+Eluze,
+Phil Holmes,
 Derek Klinge,
+Marek Klein,
 Urs Liska,
+James Lowe,
 Kieren MacMillan,
 Ralph Palmer,
 Dmytro O. Redchuk
@@ -405,8 +417,10 @@ Dmytro O. Redchuk
 
 @c use commas not colons
 
+Colin Campbell,
 Anthony Fok,
 Christian Hitz,
+Phil Holmes,
 Chris Jackson,
 Heikki Junes,
 David Svoboda
index 642993fe8ad26e2b998ec73ceb35d96f1f8205e4..5e0181f6aaeb077bc60bb437d634d4fa96c999bb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 #(define (filter-instrument instrument-name tuning-alist)
    (filter (lambda (entry)
@@ -31,7 +31,7 @@ displayInstrumentDefaultTunings =
   {
     \new Staff {
       \textLengthOn
-      \override Score.RehearsalMark #'self-alignment-X = #LEFT
+      \override Score.RehearsalMark.self-alignment-X = #LEFT
 
       \mark \markup {\left-align "Guitar tunings"}
       \clef "treble_8"
index 84bade14f2476259197d39c3f021bc1af2462b65..4ee47ec5ad7cbf76f55151bdda326145875af705 100644 (file)
@@ -7,7 +7,7 @@ path)."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   myStaffSize = 20
@@ -56,7 +56,7 @@ sampleMusic = \relative c'' {
 {
   \set Staff.instrumentName = #"Gonv override"
   c2^\trill c
-  \override NoteHead #'font-family = #'gonville
-  \override Script #'font-family = #'gonville
+  \override NoteHead.font-family = #'gonville
+  \override Script.font-family = #'gonville
   c^\trill c 
 }
index cd3be7399419ba14f726d39a8101f8628f5fbec3..a78697873446f8fa68061e011f436b7b89c13275 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -24,11 +24,11 @@ dimensions.
 
 pattern = <<
   \new Voice {
-    \override Stem #'direction = #UP
+    \override Stem.direction = #UP
     e'4 e'2. e'1 e'\breve*1/2 e'\longa*1/4 \bar "||"
   }
   \new Voice {
-    \override Stem #'direction = #DOWN
+    \override Stem.direction = #DOWN
     a4 a2. a1 a\breve*1/2 a\longa*1/4 \bar "||"
   }
 >>
@@ -37,71 +37,71 @@ pattern = <<
 \transpose c c {
   \clef C
 
-  \override Staff.NoteHead  #'style = #'default
+  \override Staff.NoteHead.style = #'default
   s1*0^\markup { "default" }
   \pattern
 
-  \override Staff.NoteHead  #'style = #'altdefault
+  \override Staff.NoteHead.style = #'altdefault
   s1*0^\markup { "altdefault" }
   \pattern
 
   \break
 
-  \override Staff.NoteHead  #'style = #'baroque
+  \override Staff.NoteHead.style = #'baroque
   s1*0^\markup { "baroque" }
   \pattern
 
-  \override Staff.NoteHead  #'style = #'neomensural
+  \override Staff.NoteHead.style = #'neomensural
   s1*0^\markup { "neomensural" }
   \pattern
 
   \break
 
-  \override Staff.NoteHead  #'style = #'mensural
+  \override Staff.NoteHead.style = #'mensural
   s1*0^\markup { "mensural" }
   \pattern
 
-  \override Staff.NoteHead  #'style = #'petrucci
+  \override Staff.NoteHead.style = #'petrucci
   s1*0^\markup { "petrucci" }
   \pattern
 
   \break
 
-  \override Staff.NoteHead  #'style = #'harmonic
+  \override Staff.NoteHead.style = #'harmonic
   s1*0^\markup { "harmonic" }
   \pattern
 
-  \override Staff.NoteHead  #'style = #'harmonic-black
+  \override Staff.NoteHead.style = #'harmonic-black
   s1*0^\markup { "harmonic-black" }
   \pattern
 
   \break
 
-  \override Staff.NoteHead  #'style = #'harmonic-mixed
+  \override Staff.NoteHead.style = #'harmonic-mixed
   s1*0^\markup { "harmonic-mixed" }
   \pattern
 
-  \override Staff.NoteHead  #'style = #'diamond
+  \override Staff.NoteHead.style = #'diamond
   s1*0^\markup { "diamond" }
   \pattern
 
   \break
 
-  \override Staff.NoteHead  #'style = #'cross
+  \override Staff.NoteHead.style = #'cross
   s1*0^\markup { "cross" }
   \pattern
 
-  \override Staff.NoteHead  #'style = #'xcircle
+  \override Staff.NoteHead.style = #'xcircle
   s1*0^\markup { "xcircle" }
   \pattern
 
   \break
 
-  \override Staff.NoteHead  #'style = #'triangle
+  \override Staff.NoteHead.style = #'triangle
   s1*0^\markup { "triangle" }
   \pattern
 
-  \override Staff.NoteHead  #'style = #'slash
+  \override Staff.NoteHead.style = #'slash
   s1*0^\markup { "slash" }
   \pattern
 }
index 5bf05a87ebc9a881d11c131d03c61599272bc4de..671e9e4a2d5defe6b4d480a85c88ec88bc5a10fa 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc ="@cindex Feta scripts
@@ -164,23 +164,23 @@ This chart shows all articulations, or scripts, that the feta font contains.
     \Score
     timing = ##f
     barAlways = ##t
-    \override NonMusicalPaperColumn #'padding = #2.5
-    \override PaperColumn #'keep-inside-line = ##t
+    \override NonMusicalPaperColumn.padding = #2.5
+    \override PaperColumn.keep-inside-line = ##t
   }
   \context {
     \RhythmicStaff
     \remove "Time_signature_engraver"
-    \override BarLine #'transparent = ##t
-    \override Stem #'direction = #down
+    \override BarLine.transparent = ##t
+    \override Stem.direction = #down
   }
   \context {
     \Lyrics
-    \override LyricText #'font-family = #'typewriter
-    \override LyricText #'font-shape = #'upright
+    \override LyricText.font-family = #'typewriter
+    \override LyricText.font-shape = #'upright
   }
   \context {
     \VaticanaVoice
-    \override Script #'padding = #0
+    \override Script.padding = #0
   }
 }
 
index ac7545e3425220b83b06d8881673bf002f1b220a..85dc0bcc446ff7efa139d0356859882b27cdc980 100644 (file)
@@ -1,6 +1,5 @@
 ISOLANG = it
 depth = ../..
-SUBDIRS = learning texidocs web usage included notation
 STEPMAKE_TEMPLATES = documentation texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
 
diff --git a/Documentation/it/included/GNUmakefile b/Documentation/it/included/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/it/learning/GNUmakefile b/Documentation/it/learning/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 60d80692b13109768df9807c84cde4ce9ae3fbfc..cffa61441f2acd361a030779081197d6c89772aa 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Concetti fondamentali
 @chapter Concetti fondamentali
@@ -801,15 +801,15 @@ più complesse saranno spiegate tutte in sezioni successive.
   \\  % Voice two
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No voice three
   \\  % Voice four
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -849,15 +849,15 @@ ignora quel che non capisci.
   \\  % Voice two
     { \voiceTwoStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No Voice three (we want stems down)
   \\  % Voice four
     { \voiceThreeStyle
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -2884,8 +2884,7 @@ guardando la definizione del grob @code{VerticalAxisGroup}.  Il valore dell'
         @}
       >>  % fine del contesto ManualOne Staff
       \new Staff = "ManualTwo" \with @{
-        \override VerticalAxisGroup
-          #'staff-staff-spacing  #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       @} <<
         \keyTime
         \clef "bass"
@@ -2949,8 +2948,7 @@ PedalOrganMusic = \relative c {
         }
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with {
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       } <<
         \keyTime
         \clef "bass"
@@ -3017,7 +3015,7 @@ macro, o comandi definiti dall'utente) anche per le modifiche manuali:
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
 
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
 fthenp =_\markup {
   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
 }
@@ -3049,7 +3047,7 @@ soprattutto l'ultima linea.
 violin = \relative c'' @{
   \repeat volta 2 @{
     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
-    \once \override TextScript #'padding = #5.0
+    \once \override TextScript.padding = #5.0
     c4.^"hi there!" d8 e' f g d |
     c,4.\markup @{
       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
@@ -3076,7 +3074,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
index 4e3c52ec117a941877beeeb8a44d62b080cd0948..b32805fad93cda1e9503ea65d112d3c95a8dbef5 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Modifica dell'output
 @chapter Modifica dell'output
@@ -235,9 +235,9 @@ il colore della testa di nota:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a b c |
 @end lilypond
 
@@ -269,11 +269,11 @@ note al valore predefinito:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b4 c |
 @end lilypond
 
@@ -295,11 +295,11 @@ una singola nota in questo modo:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\once \override NoteHead #'color = #green
+\once \override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b c |
 @end lilypond
 
@@ -340,7 +340,7 @@ cosa succede se si usa @code{\once \override}:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-\once \override NoteHead #'font-size = #-3
+\once \override NoteHead.font-size = #-3
 <c e g>4
 <c e g>4
 @end lilypond
@@ -366,7 +366,7 @@ di un accordo si cambia in questo modo:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-<c \tweak #'font-size #-3 e g>4
+<c \tweak font-size #-3 e g>4
 @end lilypond
 
 Si noti che la sintassi di @code{\tweak} è diversa da quella di
@@ -389,8 +389,8 @@ di articolazioni:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4^"Black"
-  -\tweak #'color #red ^"Red"
-  -\tweak #'color #green _"Green"
+  -\tweak color #red ^"Red"
+  -\tweak color #green _"Green"
 @end lilypond
 
 @noindent
@@ -409,8 +409,8 @@ esplicitamente l'oggetto di formattazione, purché LilyPond riesca a
 seguire la sua origine fino all'evento originale:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<\tweak Accidental #'color #red   cis4
- \tweak Accidental #'color #green es
+<\tweak Accidental.color #red   cis4
+ \tweak Accidental.color #green es
                                   g>
 @end lilypond
 
@@ -446,9 +446,9 @@ deve essere in rosso.
 @cindex colore, esempio
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\tweak #'direction #up
+\tweak direction #up
 \times 4/3 {
-  \tweak #'color #red
+  \tweak color #red
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
@@ -469,12 +469,11 @@ aspetto può essere modificato come di consueto con i comandi @code{\override}:
 @c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \times 2/3 { c8[ c c] }
-\once \override TupletNumber
-  #'text = #tuplet-number::calc-fraction-text
+\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
 \times 2/3 {
   c8[ c]
   c8[ c]
-  \once \override TupletNumber #'transparent = ##t
+  \once \override TupletNumber.transparent = ##t
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
 }
@@ -609,7 +608,7 @@ contesto.  Inizialmente usiamo un valore molto grande per lo
 spessore, per essere sicuri che il comando funzioni:
 
 @example
-\override Slur #'thickness = #5.0
+\override Slur.thickness = #5.0
 @end example
 
 Non dimenticare il @code{#'} che precede il nome della
@@ -629,7 +628,7 @@ prima legatura di portamento e accanto ad essa.}  Facciamolo:
   \time 6/8
   {
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     r4 bes8 bes[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -696,7 +695,7 @@ nel modo seguente:
   {
     r4 bes8
     % Aumenta lo spessore solo della legatura che segue
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes8[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -737,10 +736,10 @@ iniziano le legature:
   {
     r4 bes8
     % Aumenta lo spessore solo della legatura che segue
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes[( g]) g |
     % Aumenta lo spessore solo della legatura che segue
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     g8[( es]) es d[( f]) as |
     as8 g
   }
@@ -766,11 +765,11 @@ dopo la seconda legatura:
   {
     r4 bes8
     % Aumenta lo spessore di tutte le legature di portamento che seguono da 1.2 a 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     bes[( g]) g |
     g8[( es]) es
     % Ripristina lo spessore di tutte le legature di portamento che seguono al valore predefinito 1.2
-    \revert Slur #'thickness
+    \revert Slur.thickness
     d8[( f]) as |
     as8 g
   }
@@ -860,7 +859,7 @@ di testo"}; maggiori informazioni sui simboli e le stringhe si trovano in
 Quindi il comando @code{\override} che rende il testo corsivo è:
 
 @example
-\override LyricText #'font-shape = #'italic
+\override LyricText.font-shape = #'italic
 @end example
 
 @noindent
@@ -884,7 +883,7 @@ in questo modo:
     as8 g
   }
   \addlyrics {
-    \override LyricText #'font-shape = #'italic
+    \override LyricText.font-shape = #'italic
     The man who | feels love's sweet e -- | mo -- tion
   }
 }
@@ -910,7 +909,7 @@ nome dell'oggetto: altrimenti, i due nomi verranno considerati insieme e
 l'interprete non sarà in grado di distinguerli.  Dunque il comando sarà:
 
 @example
-\override Lyrics . LyricText #'font-shape = #'italic
+\override Lyrics.LyricText.font-shape = #'italic
 @end example
 
 @warning{Nel testo bisogna lasciare sempre uno spazio bianco tra l'ultima
@@ -1063,7 +1062,7 @@ implicito, @code{Voice}:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override BarLine #'stencil = ##f
+  \override BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1089,7 +1088,7 @@ correggerlo specificando il contesto giusto:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'stencil = ##f
+  \override Staff.BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1109,7 +1108,7 @@ zero:
 @lilypond[quote,verbatim,relative=2]
 {
   c4 c
-  \once \override NoteHead #'stencil = #point-stencil
+  \once \override NoteHead.stencil = #point-stencil
   c4 c
 }
 @end lilypond
@@ -1138,7 +1137,7 @@ valore del comando @code{\override}.
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
+  \override Staff.BarLine.break-visibility = #'#(#f #f #f)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1172,7 +1171,7 @@ Quindi il comando che rende trasparente l'indicazione di tempo è:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'transparent = ##t
+  \override Staff.TimeSignature.transparent = ##t
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1193,7 +1192,7 @@ e impostarla su @code{#f}:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1234,7 +1233,7 @@ stanghette scriviamo:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #white
+  \override Staff.BarLine.color = #white
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1270,7 +1269,7 @@ valori interni, @code{x11-color}:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(x11-color 'white)
+  \override Staff.BarLine.color = #(x11-color 'white)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1302,7 +1301,7 @@ e per avere il bianco sarà @code{(rgb-color 1 1 1)}:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(rgb-color 1 1 1)
+  \override Staff.BarLine.color = #(rgb-color 1 1 1)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1328,12 +1327,12 @@ impostati su diverse tonalità di grigio:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
-  \override Staff.TimeSignature #'color = #(x11-color 'grey60)
-  \override Staff.Clef          #'color = #(x11-color 'grey60)
-  \override Voice.NoteHead      #'color = #(x11-color 'grey85)
-  \override Voice.Stem          #'color = #(x11-color 'grey85)
-  \override Staff.BarLine       #'color = #(x11-color 'grey10)
+  \override Staff.StaffSymbol.color = #(x11-color 'grey30)
+  \override Staff.TimeSignature.color = #(x11-color 'grey60)
+  \override Staff.Clef.color = #(x11-color 'grey60)
+  \override Voice.NoteHead.color = #(x11-color 'grey85)
+  \override Voice.Stem.color = #(x11-color 'grey85)
+  \override Staff.BarLine.color = #(x11-color 'grey10)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1406,8 +1405,8 @@ ciascun oggetto su @code{#f}, così:
         alignAboveContext = #"main"
       }
       {
-        \override Staff.Clef #'stencil = ##f
-        \override Staff.TimeSignature #'stencil = ##f
+        \override Staff.Clef.stencil = ##f
+        \override Staff.TimeSignature.stencil = ##f
         { f8 f c }
       }
     >>
@@ -1465,9 +1464,9 @@ Dunque possiamo sostituire l'esempio precedente con
       \new Staff \with {
         alignAboveContext = #"main"
         % Nasconde le chiavi di questo rigo
-        \override Clef #'stencil = ##f
+        \override Clef.stencil = ##f
         % Nasconde le indicazioni di tempo di questo rigo
-        \override TimeSignature #'stencil = ##f
+        \override TimeSignature.stencil = ##f
       }
       { f8 f c }
     >>
@@ -1497,7 +1496,7 @@ tipi di carattere di ogni tipo di oggetto, come le teste di nota
 (@code{NoteHead}) con un comando di questo tipo
 
 @example
-\override NoteHead #'font-size = #-2
+\override NoteHead.font-size = #-2
 @end example
 
 oppure possiamo modificare la dimensione di tutti i tipi di carattere usando
@@ -1530,8 +1529,8 @@ Proviamolo nel nostro esempio dell'ossia:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         % Riduce la dimensione di tutti i tipi di carattere di circa il 24%
         fontSize = #-2
       }
@@ -1605,11 +1604,11 @@ questo modo:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         fontSize = #-2
         % Riduce proporzionalmente la lunghezza dei gambi e la spaziatura tra le linee
-        \override StaffSymbol #'staff-space = #(magstep -2)
+        \override StaffSymbol.staff-space = #(magstep -2)
       }
       { f8 f c }
     >>
@@ -1771,11 +1770,11 @@ con i gambi nuovamente disposti secondo il comportamento predefinito.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4 g c a |
-\override Stem #'direction = #DOWN
+\override Stem.direction = #DOWN
 a4 g c a |
-\override Stem #'direction = #UP
+\override Stem.direction = #UP
 a4 g c a |
-\revert Stem #'direction
+\revert Stem.direction
 a4 g c a |
 @end lilypond
 
@@ -1863,9 +1862,9 @@ predefinito e le due battute successive mostrano gli effetti dei valori
 
 @lilypond[quote,verbatim,relative=2]
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #DOWN
+\override Fingering.direction = #DOWN
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #UP
+\override Fingering.direction = #UP
 c4-5 a-3 f-1 c'-5 |
 @end lilypond
 
@@ -1967,7 +1966,7 @@ valore predefinito di tale proprietà è @w{@code{-5}}, dunque proviamo
 con @w{@code{-7}}:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering #'font-size = #-7
+\override Fingering.font-size = #-7
 \set fingeringOrientations = #'(left)
 <f-2>4
 <c-1 e-2 g-3 b-5>4
@@ -2069,7 +2068,7 @@ questi oggetti.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
@@ -2119,12 +2118,12 @@ nel contesto @code{Staff}:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Imposta i dettagli per l'estensione del testo vocale seguente
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Posiziona le indicazione dinamiche sopra il rigo
 \dynamicUp
 % Posiziona l'estensione del segno d'ottava sotto il testo vocale
-\once \override Staff.OttavaBracket #'outside-staff-priority = #340
+\once \override Staff.OttavaBracket.outside-staff-priority = #340
 % Inizia l'estensione del segno d'ottava
 \ottava #1
 c'4 \startTextSpan
@@ -2167,10 +2166,10 @@ esempio che mostra l'effetto dei due metodi:
 @lilypond[quote,verbatim,relative=2]
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 c4(
-\once \override TextScript #'avoid-slur = #'inside
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.avoid-slur = #'inside
+\once \override TextScript.outside-staff-priority = ##f
 c4^\markup { \tiny \sharp } d4.) c8 |
-\once \override Slur #'outside-staff-priority = #500
+\once \override Slur.outside-staff-priority = #500
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 @end lilypond
 
@@ -2190,7 +2189,7 @@ aumentare la priorità di @qq{Testo3} assegnando un valore più alto:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Testo1"
 c2^"Testo2" |
-\once \override TextScript #'outside-staff-priority = #500
+\once \override TextScript.outside-staff-priority = #500
 c2^"Testo3"
 c2^"Testo4" |
 @end lilypond
@@ -2251,12 +2250,12 @@ c,,2^"Testo" c'' |
 R1 |
 
 % Disattiva l'elusione delle collisioni
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 c,,2^"Testo Lungo   " c'' |
 R1 |
 
 % Disattiva l'elusione delle collisioni
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 \textLengthOn        % e attiva textLengthOn
 c,,2^"Testo Lungo   "  % Gli spazi finali vengono rispettati
 c''2 |
@@ -2334,7 +2333,7 @@ sovrascrivere il valore di @code{extra-spacing-width} e impostarlo su
 comando che lo fa sul testo della dinamica:
 
 @example
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 @end example
 
 @noindent
@@ -2346,7 +2345,7 @@ Vediamo se funziona nell'esempio precedente:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 a4\f b\mf c\mp b\p |
 @end lilypond
 
@@ -2369,7 +2368,7 @@ funzionare:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Aumenta la larghezza di 1 spazio rigo
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2660,7 +2659,7 @@ note.
 
 @lilypond[quote,fragment,relative=1,verbatim]
 c2\fermata
-\override Script #'padding = #3
+\override Script.padding = #3
 b2\fermata
 @end lilypond
 
@@ -2670,11 +2669,11 @@ b2\fermata
 
 @lilypond[quote,fragment,relative=1,verbatim]
 % Questo non funziona, vedi sotto
-\override MetronomeMark #'padding = #3
+\override MetronomeMark.padding = #3
 \tempo 4 = 120
 c1 |
 % Questo funziona
-\override Score.MetronomeMark #'padding = #3
+\override Score.MetronomeMark.padding = #3
 \tempo 4 = 80
 d1 |
 @end lilypond
@@ -2717,15 +2716,13 @@ sesquisharp = \markup { \sesquisharp }
 \relative c'' {
   c4
   % Mostra un triesis (alterazione ascendente di tre quarti di tono) ma lo spazio è troppo stretto
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 c
   % Ecco come migliorare lo spazio
-  \once \override Score.AccidentalPlacement #'right-padding = #0.6
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Score.AccidentalPlacement.right-padding = #0.6
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 |
 }
 @end lilypond
@@ -2765,9 +2762,9 @@ preso dalla sezione precedente:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Aumenta la larghezza di 1 unità
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 % Allinea le dinamiche alla base posta 2 unità sopra il rigo
-\override DynamicLineSpanner #'staff-padding = #2
+\override DynamicLineSpanner.staff-padding = #2
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2785,7 +2782,7 @@ destro del numero al punto di riferimento della nota a cui si riferisce:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
 <a\2>
-\once \override StringNumber #'self-alignment-X = #RIGHT
+\once \override StringNumber.self-alignment-X = #RIGHT
 <a\2>
 @end lilypond
 
@@ -2820,7 +2817,7 @@ rigo; il nuovo valore sarà @w{@code{-8}}.
 <<
   { c4 c c c }
   \\
-  \override MultiMeasureRest #'staff-position = #-8
+  \override MultiMeasureRest.staff-position = #-8
   { R1 }
 >>
 @end lilypond
@@ -2848,7 +2845,7 @@ sinistra e in basso di 1.8 spazi rigo:
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f4-5
-\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
 f4-5
 @end lilypond
 
@@ -2892,7 +2889,7 @@ risolve anche il problema della forma sgraziata.
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
-\once \override PhrasingSlur #'positions = #'(-4 . -3)
+\once \override PhrasingSlur.positions = #'(-4 . -3)
 \acciaccatura e8\( d8 c~ c d c d\)
 @end lilypond
 
@@ -2931,7 +2928,7 @@ centrale a, per esempio, 1:
     { c'1 ~ c'2. e'8 f' }
     \\
     {
-      \override Beam #'positions = #'(-1 . -1)
+      \override Beam.positions = #'(-1 . -1)
       e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
     }
   >>
@@ -2994,13 +2991,13 @@ Ecco il risultato finale:
     \\
     {
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
     \\
     \\
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -3034,7 +3031,7 @@ e le pedalizzazioni.
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3047,7 +3044,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column
         % so the merge will work
         \shiftOnn
@@ -3059,8 +3056,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3237,7 +3234,7 @@ rispetto alla linea centrale del rigo.  Dunque la seguente sovrascrittura
 posizionata proprio prima della prima nota della legatura sposta la legatura
 3.5 mezzi spazi di rigo sopra la linea centrale:
 
-@code{\once \override Tie #'staff-position = #3.5}
+@code{\once \override Tie.staff-position = #3.5}
 
 Questo completa la seconda battuta:
 
@@ -3246,7 +3243,7 @@ Questo completa la seconda battuta:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3326,7 +3323,7 @@ alla fine, ottenendo:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3401,7 +3398,7 @@ interferisca con i due Re.  Applicando queste modifiche abbiamo:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3473,7 +3470,7 @@ rendiamo il gambo trasparente e spostiamo il Do con la proprietà
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3487,7 +3484,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Riposiziona il c2 a destra della nota unita
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Sposta il c2 fuori dalla colonna della nota principale
         % in modo che l'unione di note funzioni
         \shiftOnn
@@ -3499,8 +3496,8 @@ rhMusic = \relative c'' {
         % Il gambo di d2 deve essere in giù per permettere l'unione delle note
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3584,8 +3581,8 @@ attraversare le voci:
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
     b8~ b\noBeam
   }
 \\
@@ -3600,9 +3597,9 @@ possiamo allungarlo impostando la proprietà
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
-    \tweak Stem #'length #8
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
+    \tweak Stem.length #8
     b8~ b\noBeam
   }
 \\
@@ -3639,7 +3636,7 @@ il modo migliore è impostare la proprietà @code{stencil} su
     % Indicazione di tempo visibile
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'transparent = ##t
+    \once \override Score.MetronomeMark.transparent = ##t
     % Indicazione di tempo invisibile per allungare la fermata nel MIDI
     \tempo 4=80
     a4\fermata |
@@ -3662,7 +3659,7 @@ il modo migliore è impostare la proprietà @code{stencil} su
     % Indicazione di tempo visibile
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'stencil = ##f
+    \once \override Score.MetronomeMark.stencil = ##f
     % Indicazione di tempo invisibile per allungare la fermata nel MIDI
     \tempo 4=80
     a4\fermata |
@@ -3708,11 +3705,11 @@ le parole stesse non si possono usare variabili semplici.  Come
 alternativa possiamo usare i comandi @code{\override} e @code{\revert}?
 
 @example
-@code{\override Lyrics . LyricText #'font-shape = #'italic}
-@code{\override Lyrics . LyricText #'font-series = #'bold}
+@code{\override Lyrics.LyricText.font-shape = #'italic}
+@code{\override Lyrics.LyricText.font-series = #'bold}
 
-@code{\revert Lyrics . LyricText #'font-shape}
-@code{\revert Lyrics . LyricText #'font-series}
+@code{\revert Lyrics.LyricText.font-shape}
+@code{\revert Lyrics.LyricText.font-series}
 @end example
 
 Anche questi sarebbero molto noiosi da inserire se ci fossero
@@ -3733,13 +3730,13 @@ rapidamente:
 
 @lilypond[quote,verbatim]
 emphasize = {
-  \override Lyrics.LyricText #'font-shape = #'italic
-  \override Lyrics.LyricText #'font-series = #'bold
+  \override Lyrics.LyricText.font-shape = #'italic
+  \override Lyrics.LyricText.font-series = #'bold
 }
 
 normal = {
-  \revert Lyrics.LyricText #'font-shape
-  \revert Lyrics.LyricText #'font-series
+  \revert Lyrics.LyricText.font-shape
+  \revert Lyrics.LyricText.font-series
 }
 
 global = { \key c \major \time 4/4 \partial 4 }
@@ -3923,17 +3920,17 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -3956,17 +3953,17 @@ inst =
 \layout{
   \context {
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context {
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   }
   \context {
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4008,16 +4005,16 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4041,12 +4038,12 @@ inst =
 
 \layout{
   \context { \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context { \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4168,8 +4165,8 @@ contengono uno o più comandi @code{\override}.  Ad esempio,
 
 @example
 tieDotted = @{
-  \override Tie #'dash-period = #0.75
-  \override Tie #'dash-fraction = #0.1
+  \override Tie.dash-period = #0.75
+  \override Tie.dash-fraction = #0.1
 @}
 @end example
 
@@ -4271,7 +4268,7 @@ note in base alla loro posizione sul rigo.
 
 \relative c' {
   % Fa sì che il colore sia preso dalla procedura color-notehead
-  \override NoteHead #'color = #color-notehead
+  \override NoteHead.color = #color-notehead
   a2 b | c2 d | e2 f | g2 a |
 }
 @end lilypond
diff --git a/Documentation/it/notation/GNUmakefile b/Documentation/it/notation/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 8e96e128c702bf3848832139b0efd93e72cae5c4..7bca5e3dac38fafaa0c6b08c31fb0e720e014e52 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Altezze
@@ -1455,7 +1455,7 @@ richiamata nel modo seguente:
 
 @example
 \new Staff <<
-  \accidentalStyle "voice"
+  \accidentalStyle voice
   @{ @dots{} @}
 >>
 @end example
@@ -1467,7 +1467,7 @@ determina in quale ambito debba essere cambiato lo stile.  Ad esempio, per
 usare lo stesso stile in tutti i righi dell'attuale @code{StaffGroup}, si usa:
 
 @example
-\accidentalStyle #'StaffGroup "voice"
+\accidentalStyle StaffGroup.voice
 @end example
 
 Sono supportati i seguenti modi di gestire le alterazioni.  Il seguente esempio
@@ -1510,11 +1510,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1529,7 +1529,7 @@ seguente frammento, se si vuole usare lo stesso stile in entrambi i righi.
   <<
     \context Staff = "up" @{
       %%% change the next line as desired:
-      \accidentalStyle #'Score "default"
+      \accidentalStyle Score.default
       \musicA
     @}
     \context Staff = "down" @{
@@ -1591,11 +1591,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1663,11 +1663,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicB
     }
   >>
@@ -1728,11 +1728,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicB
     }
   >>
@@ -1790,11 +1790,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicB
     }
   >>
@@ -1855,11 +1855,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicB
     }
   >>
@@ -1916,11 +1916,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicB
     }
   >>
@@ -1979,7 +1979,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano"
+      \accidentalStyle piano
       \musicA
     }
     \context Staff = "down" {
@@ -2036,7 +2036,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano-cautionary"
+      \accidentalStyle piano-cautionary
       \musicA
     }
     \context Staff = "down" {
@@ -2095,11 +2095,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicB
     }
   >>
@@ -2152,11 +2152,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicB
     }
   >>
@@ -2213,11 +2213,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicB
     }
   >>
@@ -2270,11 +2270,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicB
     }
   >>
@@ -2330,11 +2330,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicB
     }
   >>
@@ -2393,12 +2393,12 @@ musicB = {
   <<
     \context Staff = "up" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicA
     }
     \context Staff = "down" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicB
     }
   >>
@@ -2453,11 +2453,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicB
     }
   >>
@@ -2512,11 +2512,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicB
     }
   >>
@@ -2559,7 +2559,7 @@ volta non richiede il segno di bequadro:
 
 @lilypond[quote]
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2576,12 +2576,12 @@ imposti localmente lo stile delle alterazioni su @code{forget}:
 
 @lilypond[verbatim,quote]
 forget = #(define-music-function (parser location music) (ly:music?) #{
-  \accidentalStyle "forget"
+  \accidentalStyle forget
   #music
-  \accidentalStyle "modern"
+  \accidentalStyle modern
 #})
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2701,13 +2701,13 @@ L'aspetto delle teste delle note può essere modificato:
 
 @lilypond[verbatim,quote,relative=2]
 c4 b
-\override NoteHead #'style = #'cross
+\override NoteHead.style = #'cross
 c4 b
-\revert NoteHead #'style
+\revert NoteHead.style
 a b
-\override NoteHead #'style = #'harmonic
+\override NoteHead.style = #'harmonic
 a b
-\revert NoteHead #'style
+\revert NoteHead.style
 c4 d e f
 @end lilypond
 
index a75cb4d6cb9b1cdae6c3d0ffe7d590f97ef7bc95..d30ff3b633cb75e9be1b2b933000ce3f757ee265 100644 (file)
@@ -7,19 +7,19 @@
 
 <!--
 we depend on an external entity here, which we cannot control.  Suppose
-we go from 2.16.x to 2.17.x and put the documentation under "v2.17".
+we go from 2.15.x to 2.17.x and put the documentation under "v2.17".
 For some time, Google won't have the new location in its index, so the
-search would get nothing.  It would be better to keep "v2.16" in the
-search for a while and have a redirection from "v2.16" to "v2.17".
+search would get nothing.  It would be better to keep "v2.15" in the
+search for a while and have a redirection from "v2.15" to "v2.17".
 -->
 <form action="http://google.com/search"
       method="get"
       name="search"
-      onSubmit="search.q.value='site:lilypond.org/doc/v2.16 '
+      onSubmit="search.q.value='site:lilypond.org/doc/v2.17 '
                + search.brute_query.value"
-      onMouseMove="search.q.value='site:lilypond.org/doc/v2.16 '
+      onMouseMove="search.q.value='site:lilypond.org/doc/v2.17 '
                   + search.brute_query.value"
-      onKeyUp="search.q.value='site:lilypond.org/doc/v2.16 '
+      onKeyUp="search.q.value='site:lilypond.org/doc/v2.17 '
               + search.brute_query.value">
   <input type="hidden" name="btnG" value="Cerca con Google">
   <input type="text" name="brute_query" onfocus="this.value=''" value="Cerca">
diff --git a/Documentation/it/texidocs/GNUmakefile b/Documentation/it/texidocs/GNUmakefile
deleted file mode 100644 (file)
index 0ffa758..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth=../../..
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.texidoc)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/it/usage/GNUmakefile b/Documentation/it/usage/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 929bcab677b89fcac47ff644121bc11758e5d090..b5f4095866befd3ffcf1f4f53bcfbe55a2f6da15 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Eseguire lilypond
@@ -980,7 +980,7 @@ delle note nel rigo, ma in realtà produce due righi, di cui il più basso
 conserva il colore nero predefinito per le teste delle note.
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.NoteHead #'color = #red
+\override Staff.NoteHead.color = #red
 \new Staff { a }
 @end lilypond
 
@@ -992,7 +992,7 @@ corretto per colorare le teste di tutte le note è
 
 @lilypond[quote,verbatim,relative=2]
 \new Staff {
-  \override Staff.NoteHead #'color = #red
+  \override Staff.NoteHead.color = #red
   a
 }
 @end lilypond
@@ -1083,7 +1083,7 @@ messaggi di avvertimento facendo in modo che uno dei contesti si comporti
 come un rigo inserendo
 
 @example
-\override VerticalAxisGroup #'staff-affinity = ##f
+\override VerticalAxisGroup.staff-affinity = ##f
 @end example
 
 @noindent
diff --git a/Documentation/it/web/GNUmakefile b/Documentation/it/web/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 24cff45d256a27459be438fbbc70d35e82f336c5..54c121296993e5e8fd8385f551f61f9f6d50ed44 100644 (file)
@@ -1,6 +1,5 @@
 ISOLANG = ja
 depth = ../..
-SUBDIRS = web learning texidocs usage included notation
 STEPMAKE_TEMPLATES = documentation texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
 NO_PDF_FILES = 1
diff --git a/Documentation/ja/included/GNUmakefile b/Documentation/ja/included/GNUmakefile
deleted file mode 100644 (file)
index afe7a4d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth = ../../..
-
-STEPMAKE_TEMPLATES=documentation
-
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ly)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/ja/learning/GNUmakefile b/Documentation/ja/learning/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index f0d38bb7914c49a663fce8e23b317f7b484629f7..69a5e525f0cd74caa32b40f7039d67dc03b6b09e 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
@@ -860,15 +860,15 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、
   \\  % Voice two
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No voice three
   \\  % Voice four
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -909,15 +909,15 @@ A フラットは付点 4 分音符であり、F は 4 分音符、D フラッ
   \\  % Voice two
     { \voiceTwoStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No Voice three (we want stems down)
   \\  % Voice four
     { \voiceThreeStyle
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -2983,8 +2983,7 @@ Voice はこれとは対照的に、あなたの音楽を連続して演奏す
         @}
       >>  % ManualOne Staff コンテキストの終了
       \new Staff = "ManualTwo" \with @{
-        \override VerticalAxisGroup
-          #'staff-staff-spacing  #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       @} <<
         \keyTime
         \clef "bass"
@@ -3049,8 +3048,7 @@ PedalOrganMusic = \relative c {
         }
       >>  % ManualOne Staff コンテキストの終了
       \new Staff = "ManualTwo" \with {
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       } <<
         \keyTime
         \clef "bass"
@@ -3119,7 +3117,7 @@ violin = \new Staff {
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
 
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
 fthenp =_\markup {
   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
 }
@@ -3151,7 +3149,7 @@ violin = \relative c'' {
 violin = \relative c'' @{
   \repeat volta 2 @{
     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
-    \once \override TextScript #'padding = #5.0
+    \once \override TextScript.padding = #5.0
     c4.^"hi there!" d8 e' f g d |
     c,4.\markup @{
       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
@@ -3176,7 +3174,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
index 11329a5567229e73f92ab5132578fa813319e8b2..399d0544c00cc86e0afa870ecd3c681fd11299f3 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
@@ -246,9 +246,9 @@ LilyPond が @code{\new Staff} のようなコマンドに遭遇した場合、@
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a b c |
 @end lilypond
 
@@ -281,11 +281,11 @@ g4 a b c |
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b4 c |
 @end lilypond
 
@@ -305,11 +305,11 @@ b4 c |
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\once \override NoteHead #'color = #green
+\once \override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b c |
 @end lilypond
 
@@ -353,7 +353,7 @@ C メジャー コードの中にある真ん中の音符 (ミドル E) の符
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-\once \override NoteHead #'font-size = #-3
+\once \override NoteHead.font-size = #-3
 <c e g>4
 <c e g>4
 @end lilypond
@@ -376,7 +376,7 @@ C メジャー コードの中にある真ん中の音符 (ミドル E) の符
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-<c \tweak #'font-size #-3 e g>4
+<c \tweak font-size #-3 e g>4
 @end lilypond
 
 @code{\tweak} の構文は @code{\override} コマンドの構文とは@c
@@ -400,8 +400,8 @@ C メジャー コードの中にある真ん中の音符 (ミドル E) の符
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4^"Black"
-  -\tweak #'color #red ^"Red"
-  -\tweak #'color #green _"Green"
+  -\tweak color #red ^"Red"
+  -\tweak color #green _"Green"
 @end lilypond
 
 @noindent
@@ -422,8 +422,8 @@ a4^"Black"
 追跡できるようにすることで、@code{\tweak} で調整することができます:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<\tweak Accidental #'color #red   cis4
- \tweak Accidental #'color #green es
+<\tweak Accidental.color #red   cis4
+ \tweak Accidental.color #green es
                                   g>
 @end lilypond
 
@@ -458,9 +458,9 @@ a4^"Black"
 @cindex color property, example (color プロパティの例)
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\tweak #'direction #up
+\tweak direction #up
 \times 4/3 {
-  \tweak #'color #red
+  \tweak color #red
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
@@ -479,12 +479,11 @@ a4^"Black"
 @c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \times 2/3 { c8[ c c] }
-\once \override TupletNumber
-  #'text = #tuplet-number::calc-fraction-text
+\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
 \times 2/3 {
   c8[ c]
   c8[ c]
-  \once \override TupletNumber #'transparent = ##t
+  \once \override TupletNumber.transparent = ##t
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
 }
@@ -631,7 +630,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 実行するコマンドは以下のようになります:
 
 @example
-\override Slur #'thickness = #5.0
+\override Slur.thickness = #5.0
 @end example
 
 プロパティ名の前に @code{#'} を付けること、@c
@@ -651,7 +650,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
   \time 6/8
   {
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     r4 bes8 bes[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -728,7 +727,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
   {
     r4 bes8
     % 直後にあるスラーのみを太くします
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes8[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -767,10 +766,10 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
   {
     r4 bes8
     % 直後にあるスラーのみを太くします
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes[( g]) g |
     % 直後にあるスラーのみを太くします
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     g8[( es]) es d[( f]) as |
     as8 g
   }
@@ -796,11 +795,11 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
   {
     r4 bes8
     % 以後のスラーの太さを 1.2 から 5.0 に増やします
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     bes[( g]) g |
     g8[( es]) es
     % 以後のスラーの太さをデフォルトの 1.2 に戻します
-    \revert Slur #'thickness
+    \revert Slur.thickness
     d8[( f]) as |
     as8 g
   }
@@ -905,7 +904,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @code{\override} コマンドは以下のようになります:
 
 @example
-\override LyricText #'font-shape = #'italic
+\override LyricText.font-shape = #'italic
 @end example
 
 @noindent
@@ -926,7 +925,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
     as8 g
   }
   \addlyrics {
-    \override LyricText #'font-shape = #'italic
+    \override LyricText.font-shape = #'italic
     The man who | feels love's sweet e -- | mo -- tion
   }
 }
@@ -954,7 +953,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 そのため、コマンドは以下のようにすべきです:
 
 @example
-\override Lyrics . LyricText #'font-shape = #'italic
+\override Lyrics.LyricText.font-shape = #'italic
 @end example
 
 @warning{歌詞の中では、最後の音節と終端の波括弧の間に常にスペースを@c
@@ -1114,7 +1113,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override BarLine #'stencil = ##f
+  \override BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1145,7 +1144,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'stencil = ##f
+  \override Staff.BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1167,7 +1166,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,verbatim,relative=2]
 {
   c4 c
-  \once \override NoteHead #'stencil = #point-stencil
+  \once \override NoteHead.stencil = #point-stencil
   c4 c
 }
 @end lilypond
@@ -1197,7 +1196,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
+  \override Staff.BarLine.break-visibility = #'#(#f #f #f)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1233,7 +1232,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'transparent = ##t
+  \override Staff.TimeSignature.transparent = ##t
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1254,7 +1253,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1296,7 +1295,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #white
+  \override Staff.BarLine.color = #white
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1329,7 +1328,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(x11-color 'white)
+  \override Staff.BarLine.color = #(x11-color 'white)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1360,7 +1359,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(rgb-color 1 1 1)
+  \override Staff.BarLine.color = #(rgb-color 1 1 1)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1386,12 +1385,12 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
-  \override Staff.TimeSignature #'color = #(x11-color 'grey60)
-  \override Staff.Clef          #'color = #(x11-color 'grey60)
-  \override Voice.NoteHead      #'color = #(x11-color 'grey85)
-  \override Voice.Stem          #'color = #(x11-color 'grey85)
-  \override Staff.BarLine       #'color = #(x11-color 'grey10)
+  \override Staff.StaffSymbol.color = #(x11-color 'grey30)
+  \override Staff.TimeSignature.color = #(x11-color 'grey60)
+  \override Staff.Clef.color = #(x11-color 'grey60)
+  \override Voice.NoteHead.color = #(x11-color 'grey85)
+  \override Voice.Stem.color = #(x11-color 'grey85)
+  \override Staff.BarLine.color = #(x11-color 'grey10)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1465,8 +1464,8 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
         alignAboveContext = #"main"
       }
       {
-        \override Staff.Clef #'stencil = ##f
-        \override Staff.TimeSignature #'stencil = ##f
+        \override Staff.Clef.stencil = ##f
+        \override Staff.TimeSignature.stencil = ##f
         { f8 f c }
       }
     >>
@@ -1527,9 +1526,9 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
       \new Staff \with {
         alignAboveContext = #"main"
         % この譜には音部記号を譜刻しません
-        \override Clef #'stencil = ##f
+        \override Clef.stencil = ##f
         % この譜には拍子記号を譜刻しません
-        \override TimeSignature #'stencil = ##f
+        \override TimeSignature.stencil = ##f
       }
       { f8 f c }
     >>
@@ -1563,7 +1562,7 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 フォント サイズを変更する:
 
 @example
-\override NoteHead #'font-size = #-2
+\override NoteHead.font-size = #-2
 @end example
 
 あるいは、@code{\set} を使って特別なプロパティ @code{fontSize} を設定するか、@c
@@ -1596,8 +1595,8 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         % すべてのフォント サイズを約 24% 減らします
         fontSize = #-2
       }
@@ -1664,11 +1663,11 @@ LilyPond では距離と長さは一般に譜スペース -- 譜の中の隣り
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
         fontSize = #-2
         % 符幹の長さと譜線の間隔を減らします
-        \override StaffSymbol #'staff-space = #(magstep -2)
+        \override StaffSymbol.staff-space = #(magstep -2)
       }
       { f8 f c }
     >>
@@ -1825,11 +1824,11 @@ c2^"Text4" |
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4 g c a |
-\override Stem #'direction = #DOWN
+\override Stem.direction = #DOWN
 a4 g c a |
-\override Stem #'direction = #UP
+\override Stem.direction = #UP
 a4 g c a |
-\revert Stem #'direction
+\revert Stem.direction
 a4 g c a |
 @end lilypond
 
@@ -1918,9 +1917,9 @@ a4 g c a |
 
 @lilypond[quote,verbatim,relative=2]
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #DOWN
+\override Fingering.direction = #DOWN
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #UP
+\override Fingering.direction = #UP
 c4-5 a-3 f-1 c'-5 |
 @end lilypond
 
@@ -2022,7 +2021,7 @@ LilyPond はこれらの制約を受け取り、
 @w{@code{-5}} であることがわかるので、@w{@code{-7}} にセットしてみましょう:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering #'font-size = #-7
+\override Fingering.font-size = #-7
 \set fingeringOrientations = #'(left)
 <f-2>4
 <c-1 e-2 g-3 b-5>4
@@ -2110,7 +2109,7 @@ LilyPond はこれらの制約を受け取り、
 @c KEEP LY
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % 以降のテキスト スパナの詳細を設定します
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % 強弱記号を譜の上に配置します
 \dynamicUp
@@ -2161,12 +2160,12 @@ c,4 c c c |
 @c KEEP LY
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % 以降のテキスト スパナの詳細を設定します
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % 強弱記号を譜の上に配置します
 \dynamicUp
 % 以降のオッターバ囲みをテキスト スパナの下に配置します
-\once \override Staff.OttavaBracket #'outside-staff-priority = #340
+\once \override Staff.OttavaBracket.outside-staff-priority = #340
 % オッターバ囲みの開始
 \ottava #1
 c'4 \startTextSpan
@@ -2213,10 +2212,10 @@ c,4 c c c |
 @lilypond[quote,verbatim,relative=2]
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 c4(
-\once \override TextScript #'avoid-slur = #'inside
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.avoid-slur = #'inside
+\once \override TextScript.outside-staff-priority = ##f
 c4^\markup { \tiny \sharp } d4.) c8 |
-\once \override Slur #'outside-staff-priority = #500
+\once \override Slur.outside-staff-priority = #500
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 @end lilypond
 
@@ -2234,7 +2233,7 @@ c4( c^\markup { \tiny \sharp } d4.) c8 |
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c2^"Text2" |
-\once \override TextScript #'outside-staff-priority = #500
+\once \override TextScript.outside-staff-priority = #500
 c2^"Text3"
 c2^"Text4" |
 @end lilypond
@@ -2300,12 +2299,12 @@ c,,2^"Text" c'' |
 R1 |
 
 % 衝突回避を OFF にします
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 c,,2^"Long Text   " c'' |
 R1 |
 
 % 衝突回避を OFF にします
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 \textLengthOn        % そして textLengthOn を ON にします
 c,,2^"Long Text   "  % 後ろにスペースが付け加えられます
 c''2 |
@@ -2386,7 +2385,7 @@ a4\f b\mf c\mp b\p
 以下は強弱記号テキストに対してこれを行うコマンドです:
 
 @example
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 @end example
 
 @noindent
@@ -2397,7 +2396,7 @@ a4\f b\mf c\mp b\p
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 a4\f b\mf c\mp b\p |
 @end lilypond
 
@@ -2418,7 +2417,7 @@ a4\f b\mf c\mp b\p |
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 staff space
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2719,7 +2718,7 @@ LilyPond はまずスラーが取り得る位置のリストを生成し、そ
 
 @lilypond[quote,fragment,relative=1,verbatim]
 c2\fermata
-\override Script #'padding = #3
+\override Script.padding = #3
 b2\fermata
 @end lilypond
 
@@ -2729,11 +2728,11 @@ b2\fermata
 @c KEEP LY
 @lilypond[quote,fragment,relative=1,verbatim]
 % これは機能しません。この下を見てください
-\override MetronomeMark #'padding = #3
+\override MetronomeMark.padding = #3
 \tempo 4 = 120
 c1 |
 % これは機能します
-\override Score.MetronomeMark #'padding = #3
+\override Score.MetronomeMark.padding = #3
 \tempo 4 = 80
 d1 |
 @end lilypond
@@ -2773,15 +2772,13 @@ sesquisharp = \markup { \sesquisharp }
 \relative c'' {
   c4
   % これは 1.5 倍シャープを譜刻しますが、スペースが小さすぎます
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 c
   % これはスペースを改善しています
-  \once \override Score.AccidentalPlacement #'right-padding = #0.6
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Score.AccidentalPlacement.right-padding = #0.6
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 |
 }
 @end lilypond
@@ -2822,9 +2819,9 @@ sesquisharp = \markup { \sesquisharp }
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % 幅を 1 単位広げます
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 % 強弱記号を譜から 2 単位上のベース ラインに揃えます
-\override DynamicLineSpanner #'staff-padding = #2
+\override DynamicLineSpanner.staff-padding = #2
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2841,7 +2838,7 @@ a4\f b\mf c\mp b\p
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
 <a\2>
-\once \override StringNumber #'self-alignment-X = #RIGHT
+\once \override StringNumber.self-alignment-X = #RIGHT
 <a\2>
 @end lilypond
 
@@ -2877,7 +2874,7 @@ LilyPond がそれと衝突するかもしれない音符を突き止めるの
 <<
   { c4 c c c }
   \\
-  \override MultiMeasureRest #'staff-position = #-8
+  \override MultiMeasureRest.staff-position = #-8
   { R1 }
 >>
 @end lilypond
@@ -2904,7 +2901,7 @@ LilyPond がそれと衝突するかもしれない音符を突き止めるの
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f4-5
-\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
 f4-5
 @end lilypond
 
@@ -2946,7 +2943,7 @@ r4
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
-\once \override PhrasingSlur #'positions = #'(-4 . -3)
+\once \override PhrasingSlur.positions = #'(-4 . -3)
 \acciaccatura e8\( d8 c~ c d c d\)
 @end lilypond
 
@@ -2981,7 +2978,7 @@ r4
     { c'1 ~ c'2. e'8 f' }
     \\
     {
-      \override Beam #'positions = #'(-1 . -1)
+      \override Beam.positions = #'(-1 . -1)
       e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
     }
   >>
@@ -3046,13 +3043,13 @@ r4
     \\
     {
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
     \\
     \\
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -3087,7 +3084,7 @@ r4
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3100,7 +3097,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % マージされる音符の右にある c2 を再配置します
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % c2 をメインの音符列から外したため、
         % マージが機能します
         \shiftOnn
@@ -3112,8 +3109,8 @@ rhMusic = \relative c'' {
         % マージさせるために d2 の符幹を下向きにする必要があります
         \stemDown
         % d2 の符幹を不可視にします
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3300,7 +3297,7 @@ lhMusic = \relative c' {
 ですから、以下の以下のオーバライドをタイで結ばれる最初の音符の前に置けば、@c
 タイは中央線から 3.5 半譜スペースだけ上の位置に移動させられます:
 
-@code{\once \override Tie #'staff-position = #3.5}
+@code{\once \override Tie.staff-position = #3.5}
 
 これで第 2 小節の修正も完了で、以下のようになります:
 
@@ -3310,7 +3307,7 @@ lhMusic = \relative c' {
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3392,7 +3389,7 @@ lhMusic = \relative c' {
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3471,7 +3468,7 @@ C はシフト off のボイス 2 の中にあり、2 つの D はボイス 1 
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3544,7 +3541,7 @@ lhMusic = \relative c' {
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3558,7 +3555,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % マージされる音符の右にある c2 を再配置します
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % c2 をメインの音符列から外したため、マージが機能します
         \shiftOnn
         c2
@@ -3569,8 +3566,8 @@ rhMusic = \relative c'' {
         % マージさせるために d2 の符幹を下向きにする必要があります
         \stemDown
         % d2 の符幹を不可視にします
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3653,8 +3650,8 @@ lhMusic = \relative c' {
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
     b8~ b\noBeam
   }
 \\
@@ -3668,9 +3665,9 @@ lhMusic = \relative c' {
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
-    \tweak Stem #'length #8
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
+    \tweak Stem.length #8
     b8~ b\noBeam
   }
 \\
@@ -3711,7 +3708,7 @@ lhMusic = \relative c' {
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'transparent = ##t
+    \once \override Score.MetronomeMark.transparent = ##t
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata |
@@ -3733,7 +3730,7 @@ lhMusic = \relative c' {
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'stencil = ##f
+    \once \override Score.MetronomeMark.stencil = ##f
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata |
@@ -3782,11 +3779,11 @@ lhMusic = \relative c' {
 使うことはできないでしょうか?
 
 @example
-@code{\override Lyrics . LyricText #'font-shape = #'italic}
-@code{\override Lyrics . LyricText #'font-series = #'bold}
+@code{\override Lyrics.LyricText.font-shape = #'italic}
+@code{\override Lyrics.LyricText.font-series = #'bold}
 
-@code{\revert Lyrics . LyricText #'font-shape}
-@code{\revert Lyrics . LyricText #'font-series}
+@code{\revert Lyrics.LyricText.font-shape}
+@code{\revert Lyrics.LyricText.font-series}
 @end example
 
 これらも、強調する必要のある単語がたくさんある場合、入力するのが@c
@@ -3807,13 +3804,13 @@ lhMusic = \relative c' {
 
 @lilypond[quote,verbatim]
 emphasize = {
-  \override Lyrics.LyricText #'font-shape = #'italic
-  \override Lyrics.LyricText #'font-series = #'bold
+  \override Lyrics.LyricText.font-shape = #'italic
+  \override Lyrics.LyricText.font-series = #'bold
 }
 
 normal = {
-  \revert Lyrics.LyricText #'font-shape
-  \revert Lyrics.LyricText #'font-series
+  \revert Lyrics.LyricText.font-shape
+  \revert Lyrics.LyricText.font-series
 }
 
 global = { \key c \major \time 4/4 \partial 4 }
@@ -4002,17 +3999,17 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4035,17 +4032,17 @@ inst =
 \layout{
   \context {
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context {
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   }
   \context {
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4089,16 +4086,16 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -4122,12 +4119,12 @@ inst =
 
 \layout{
   \context { \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context { \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4254,8 +4251,8 @@ LilyPond アプリケーション上でコントロール クリックして
 
 @example
 tieDotted = @{
-  \override Tie #'dash-period = #0.75
-  \override Tie #'dash-fraction = #0.1
+  \override Tie.dash-period = #0.75
+  \override Tie.dash-fraction = #0.1
 @}
 @end example
 
@@ -4357,7 +4354,7 @@ Scheme プロシージャをセットすることができます。@c
 
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
-  \override NoteHead #'color = #color-notehead
+  \override NoteHead.color = #color-notehead
   a2 b | c2 d | e2 f | g2 a |
 }
 @end lilypond
diff --git a/Documentation/ja/notation/GNUmakefile b/Documentation/ja/notation/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 8bdcca695e7d25d533de17c9f84b2513a82be4bb..92c55dfcb5ee502c150989750ef3075e36704910 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
@@ -802,7 +802,7 @@ Internals Reference @expansion{} Translation @expansion{} Context.
   \layout {
     \context {
       \Staff
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
   }
 }
@@ -827,7 +827,7 @@ Internals Reference @expansion{} Translation @expansion{} Context.
 @end lilypond
 
 @item
-@code{\dynamicUp} や @code{\accidentalStyle "dodecaphonic"} のような音楽@c
+@code{\dynamicUp} や @code{\accidentalStyle dodecaphonic} のような音楽@c
 表記等、あらかじめ定義されているコマンド
 
 @lilypond[quote,verbatim]
@@ -843,7 +843,7 @@ Internals Reference @expansion{} Translation @expansion{} Context.
     }
     \context {
       \Staff
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
     }
   }
 }
@@ -894,9 +894,9 @@ StaffDefaults = \with {
     }
   }
   \layout {
-    \accidentalStyle "dodecaphonic"
+    \accidentalStyle dodecaphonic
     \set fontSize = #-4
-    \override Voice.Stem #'thickness = #4.0
+    \override Voice.Stem.thickness = #4.0
   }
 }
 @end lilypond
@@ -937,7 +937,7 @@ StaffDefaults = \with {
   \new Staff {
     \new Voice
     \with {
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
     {
       \relative c'' {
@@ -989,7 +989,7 @@ StaffDefaults = \with {
       }
     }
     \new Staff
-    \with { \accidentalStyle "dodecaphonic" }
+    \with { \accidentalStyle dodecaphonic }
     {
       \new Voice
       \with { \dynamicUp }
@@ -1081,9 +1081,9 @@ StaffDefaults = \with {
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 }
 \context { \Staff
@@ -1148,9 +1148,9 @@ squashedPosition = #0
 音符はスラッシュで、符幹を持ちません:
 
 @example
-\override NoteHead #'style = #'slash
-\override Stem #'transparent = ##t
-\override Flag #'transparent = ##t
+\override NoteHead.style = #'slash
+\override Stem.transparent = ##t
+\override Flag.transparent = ##t
 @end example
 
 これらのプラグインすべてが共同する必要があり、@c
@@ -1172,9 +1172,9 @@ squashedPosition = #0
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 @}
 @end example
@@ -1656,14 +1656,14 @@ Add this much extra space between objects that are next to each other.
 以下のコマンドは、音符と運指記号の間に 3 譜スペースを挿入します:
 
 @example
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 @end example
 
 このコマンドを @code{Fingering} オブジェクトが作成される前に挿入する
 -- つまり @code{c2} の前に挿入する -- と、以下のような結果が得られます:
 
 @lilypond[quote,relative=2,fragment,verbatim]
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 c-2
 \stemUp
 f
@@ -1777,7 +1777,7 @@ discuss the functionality of this command.
 The command
 
 @verbatim
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 @end verbatim
 
 @noindent
@@ -1788,7 +1788,7 @@ appearance.  Here we see the command in action:
 
 @lilypond[quote,verbatim,relative=2,fragment]
 c4
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 c4
 c4
 c4
@@ -1804,7 +1804,7 @@ causing the default context @code{Voice} to be used.  Adding
 
 @lilypond[quote,fragment,verbatim,relative=2]
 c4
-\once \override Stem #'thickness = #4.0
+\once \override Stem.thickness = #4.0
 c4
 c4
 @end lilypond
@@ -1815,9 +1815,9 @@ or beams, the @code{\override} command must be executed at the moment
 when the object is created.  In this example,
 
 @lilypond[quote,fragment,verbatim,relative=2]
-\override Slur #'thickness = #3.0
+\override Slur.thickness = #3.0
 c8[( c
-\override Beam #'thickness = #0.6
+\override Beam.thickness = #0.6
 c8 c])
 @end lilypond
 
@@ -1831,8 +1831,8 @@ affects settings that were made in the same context.  In other words, the
 @code{\revert} in the next example does not do anything.
 
 @example
-\override Voice.Stem #'thickness = #4.0
-\revert Staff.Stem #'thickness
+\override Voice.Stem.thickness = #4.0
+\revert Staff.Stem.thickness
 @end example
 
 Some tweakable options are called @q{subproperties} and reside inside
@@ -1847,7 +1847,7 @@ properties.  To tweak those, use commands of the form
 such as
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
 @end ignore
@@ -2063,7 +2063,7 @@ Translation @expansion{} Tunable context properties.
 
 @lilypond[quote,verbatim,relative=2]
 c4 c
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
 @end lilypond
 
@@ -2071,11 +2071,11 @@ If no context is specified in an @code{\override}, the bottom
 context is used:
 
 @lilypond[quote,verbatim,relative=2]
-{ \override Staff.Stem #'thickness = #3.0
+{ \override Staff.Stem.thickness = #3.0
   <<
     {
       e4 e
-      \override Stem #'thickness = #0.5
+      \override Stem.thickness = #0.5
       e4 e
     } \\ {
       c4 c c c
@@ -2092,9 +2092,9 @@ context is used:
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
-\revert Voice.Stem #'thickness
+\revert Voice.Stem.thickness
 c4
 @end lilypond
 
@@ -2107,11 +2107,11 @@ c4
   <<
     {
       e4
-      \override Staff.Stem #'thickness = #3.0
+      \override Staff.Stem.thickness = #3.0
       e4 e e
     } \\ {
       c4 c c
-      \revert Staff.Stem #'thickness
+      \revert Staff.Stem.thickness
       c4
     }
   >>
@@ -2128,11 +2128,11 @@ c4
 {
   <<
     {
-      \override Stem #'thickness = #3.0
+      \override Stem.thickness = #3.0
       e4 e e e
     } \\ {
       c4
-      \once \override Stem #'thickness = #3.0
+      \once \override Stem.thickness = #3.0
       c4 c c
     }
   >>
@@ -2144,7 +2144,7 @@ c4
 Commands which change output generally look like
 
 @example
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 @end example
 
 @noindent
@@ -2161,7 +2161,7 @@ Some tweakable options are called @q{subproperties} and reside inside
 properties.  To tweak those, use commands in the form
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
 @cindex internal documentation
@@ -2216,13 +2216,13 @@ For example:
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
--\tweak #'padding #8
+-\tweak padding #8
 -^
 @end lilypond
 
@@ -2250,14 +2250,14 @@ note, and able to modify it.
 So, this works:
 
 @lilypond[relative=2,verbatim,quote]
-<\tweak #'color #red c>4
+<\tweak color #red c>4
 @end lilypond
 
 @noindent
 but this does not:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
+\tweak color #red c4
 @end lilypond
 
 @end ignore
@@ -2288,10 +2288,10 @@ but this does not:
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
 @end lilypond
@@ -2299,7 +2299,7 @@ but this does not:
 @code{\tweak} を用いて、スラーを変更することができます:
 
 @lilypond[verbatim,quote,relative=1]
-c-\tweak #'thickness #5 ( d e f)
+c-\tweak thickness #5 ( d e f)
 @end lilypond
 
 
@@ -2313,9 +2313,9 @@ c-\tweak #'thickness #5 ( d e f)
 からです:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
-\tweak #'color #red <c e>4
-<\tweak #'color #red c e>4
+\tweak color #red c4
+\tweak color #red <c e>4
+<\tweak color #red c e>4
 @end lilypond
 
 単純な @code{\tweak} コマンドでは入力から直接作成されないオブジェクトを@c
@@ -2329,9 +2329,9 @@ c-\tweak #'thickness #5 ( d e f)
 @code{\tweak} コマンドを用いることで調整することができます:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak Stem #'color #red
-\tweak Beam #'color #green c8 e
-<c e \tweak Accidental #'font-size #-3 ges>4
+\tweak Stem.color #red
+\tweak Beam.color #green c8 e
+<c e \tweak Accidental.font-size #-3 ges>4
 @end lilypond
 
 @code{\tweak} コマンドで音部記号や拍子記号を変更することはできません。@c
@@ -2344,10 +2344,10 @@ c-\tweak #'thickness #5 ( d e f)
 
 @lilypond[verbatim,quote,relative=1]
 c
--\tweak #'style #'dashed-line
--\tweak #'dash-fraction #0.2
--\tweak #'thickness #3
--\tweak #'color #red
+-\tweak style #'dashed-line
+-\tweak dash-fraction #0.2
+-\tweak thickness #3
+-\tweak color #red
  \glissando
 f'
 @end lilypond
@@ -2446,7 +2446,7 @@ property (modified with @code{\set}) was created.
 % 譜間スペースを減らします
 \new PianoStaff \with {
   % this is the nested declaration
-  \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+  \override StaffGrouper.staff-staff-spacing.basic-distance = #7
 } <<
   \new Staff { \clef treble c''1 }
   \new Staff { \clef bass   c1   }
@@ -2463,7 +2463,7 @@ property (modified with @code{\set}) was created.
 
 @lilypond[quote,verbatim]
 \new PianoStaff \with {
-  \override StaffGrouper #'staff-staff-spacing =
+  \override StaffGrouper.staff-staff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 0)
        (padding . 0)
@@ -2483,10 +2483,10 @@ property (modified with @code{\set}) was created.
 このため、以下の 2 つの宣言は等価です:
 
 @example
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7))
 
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7)
      (minimum-distance . 0)
      (padding . 0)
@@ -2835,7 +2835,7 @@ Scheme 関数 @code{magstep} を使用することができます。@c
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7)
+  \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2846,7 +2846,7 @@ Scheme 関数 @code{magstep} を使用することができます。@c
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'width = #23
+  \override StaffSymbol.width = #23
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2909,7 +2909,7 @@ Works not at all for:
 a~a
 a
 % タイの長さを増加させます
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ~a
 @end lilypond
 
@@ -2919,7 +2919,7 @@ a1
 \compressFullBarRests
 R1*23
 % 休符バーの長さを増加させます
-\once \override MultiMeasureRest #'minimum-length = #20
+\once \override MultiMeasureRest.minimum-length = #20
 R1*23
 a1
 @end lilypond
@@ -2928,7 +2928,7 @@ a1
 @lilypond[verbatim,quote,relative=2]
 a \< a a a \!
 % ヘアピンの長さを増加させます
-\override Hairpin #'minimum-length = #20
+\override Hairpin.minimum-length = #20
 a \< a a a \!
 @end lilypond
 
@@ -2938,12 +2938,12 @@ a \< a a a \!
 @lilypond[verbatim,quote,relative=2]
 a( a)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ( a)
 
 a\( a\)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 \( a\)
 @end lilypond
 
 e \glissando c'
 
 % 単独では効果を持ちません
-\once \override Glissando #'minimum-length = #20
+\once \override Glissando.minimum-length = #20
 e, \glissando c'
 
 % 以下の両方のオーバライドが存在する場合にのみ、効果を持ちます
-\once \override Glissando #'minimum-length = #20
-\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
 e, \glissando c'
 @end lilypond
 
@@ -2977,12 +2977,12 @@ e, \glissando c'
 @c KEEP LY
 @lilypond[verbatim,quote,relative=1]
 % 単独では効果を持ちません
-\once \override Beam #'minimum-length = #20
+\once \override Beam.minimum-length = #20
 e8 e e e
 
 % 以下の両方のオーバライドが存在する場合にのみ、効果を持ちます
-\once \override Beam #'minimum-length = #20
-\once \override Beam #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
 e8 e e e
 @end lilypond
 
@@ -2997,7 +2997,7 @@ e8 e e e
 
 @lilypond[verbatim,quote,relative=2]
 a \< a a a a \! a a a \break
-\override Hairpin #'to-barline = ##f
+\override Hairpin.to-barline = ##f
 a \< a a a a \! a a a
 @end lilypond
 
@@ -3031,8 +3031,8 @@ a \< a a a a \! a a a
 
 @lilypond[relative=2,quote,verbatim]
 e2 \glissando b
-\once \override Glissando #'(bound-details left Y) = #3
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.left.Y = #3
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando b
 @end lilypond
 
@@ -3049,8 +3049,8 @@ e2 \glissando b
 例を示します:
 
 @lilypond[relative=2,ragged-right,verbatim,fragment]
-\override Glissando #'breakable = ##t
-\override Glissando #'(bound-details right-broken Y) = #-3
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
 c1 \glissando \break
 f1
 @end lilypond
@@ -3090,7 +3090,7 @@ f1
 水平スパナに @i{cresc.}, @i{tr} それに他のテキストを配置するために使用されます。
 
 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
 c2\startTextSpan b c a\stopTextSpan
 @end lilypond
@@ -3105,15 +3105,11 @@ c2\startTextSpan b c a\stopTextSpan
 記号が上下します:
 
 @lilypond[relative=1,fragment,verbatim]
-\override TextSpanner
-  #'(bound-details left stencil-align-dir-y) = #-2
-\override TextSpanner
-  #'(bound-details right stencil-align-dir-y) = #UP
-
-\override TextSpanner
-  #'(bound-details left text) = #"ggg"
-\override TextSpanner
-  #'(bound-details right text) = #"hhh"
+\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
+\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP
+
+\override TextSpanner.bound-details.left.text = #"ggg"
+\override TextSpanner.bound-details.right.text = #"hhh"
 c4^\startTextSpan c c c \stopTextSpan
 @end lilypond
 
@@ -3204,9 +3200,9 @@ c2 \< c2 c2
 
 @lilypond[quote,verbatim,relative=1]
 a1 a
-\override Score.BarLine #'stencil = ##f
+\override Score.BarLine.stencil = ##f
 a a
-\revert Score.BarLine #'stencil
+\revert Score.BarLine.stencil
 a a a
 @end lilypond
 
@@ -3223,7 +3219,7 @@ a a a
 
 @lilypond[quote,verbatim,relative=2]
 a4 a
-\once \override NoteHead #'transparent = ##t
+\once \override NoteHead.transparent = ##t
 a a
 @end lilypond
 
@@ -3249,7 +3245,7 @@ a a
 白いオブジェクトの画像が幽霊のように浮かび上がることがあります:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
+\override Staff.Clef.color = #white
 a1
 @end lilypond
 
@@ -3278,8 +3274,8 @@ a1
 音部記号を先に描画させる必要があります:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
-\override Staff.Clef #'layer = #-1
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
 a1
 @end lilypond
 
@@ -3374,7 +3370,7 @@ a1
 f4 g a b
 f4 g a b
 % カレント行の最後で小節線を削除します
-\once \override Score.BarLine #'break-visibility = #'#(#f #t #t)
+\once \override Score.BarLine.break-visibility = #'#(#f #t #t)
 \break
 f4 g a b
 f4 g a b
@@ -3422,7 +3418,7 @@ B フラット メジャーへの明示的な変更の後に出現する調号
 \key g \major
 f4 g a b
 % すべての調号を削除しようと試みます
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b
 \break
@@ -3450,7 +3446,7 @@ f4 g a b
 \key g \major
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3468,7 +3464,7 @@ f4 g a b
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.printKeyCancellation = ##f
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3540,13 +3536,13 @@ f4 g a b
 
 @lilypond[relative=2,ragged-right,verbatim,fragment]
 d2 \glissando d'2
-\once \override Glissando #'style = #'dashed-line
+\once \override Glissando.style = #'dashed-line
 d,2 \glissando d'2
-\override Glissando #'style = #'dotted-line
+\override Glissando.style = #'dotted-line
 d,2 \glissando d'2
-\override Glissando #'style = #'zigzag
+\override Glissando.style = #'zigzag
 d,2 \glissando d'2
-\override Glissando #'style = #'trill
+\override Glissando.style = #'trill
 d,2 \glissando d'2
 @end lilypond
 
@@ -3557,7 +3553,7 @@ d,2 \glissando d'2
 @c TODO Complete
 @lilypond[relative=2,ragged-right,verbatim,quote]
 e2 \glissando f
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando f
 @end lilypond
 
@@ -3610,7 +3606,7 @@ e2 \glissando f
 
 @lilypond[quote,verbatim,relative=1]
 g4\< e' d' f\!
-\override Hairpin #'rotation = #'(20 -1 0)
+\override Hairpin.rotation = #'(20 -1 0)
 g,,4\< e' d' f\!
 @end lilypond
 
@@ -3630,7 +3626,7 @@ g,,4\< e' d' f\!
 そうしなければテキストのいくつかは高く押し上げられてしまいます。
 
 @lilypond[quote,verbatim,relative=1]
-\override TextScript #'outside-staff-priority = ##f
+\override TextScript.outside-staff-priority = ##f
 g4^\markup { \rotate #30 "a G" }
 b^\markup { \rotate #30 "a B" }
 des^\markup { \rotate #30 "a D-Flat" }
@@ -3744,12 +3740,12 @@ fis^\markup { \rotate #30 "an F-Sharp" }
 @lilypond[verbatim,quote,relative=2]
 a-3
 a
--\tweak #'X-offset #0
--\tweak #'Y-offset #0
+-\tweak X-offset #0
+-\tweak Y-offset #0
 -3
 a
--\tweak #'X-offset #-1
--\tweak #'Y-offset #1
+-\tweak X-offset #-1
+-\tweak Y-offset #1
 -3
 @end lilypond
 
 
 @lilypond[quote,verbatim,relative=1]
 a'
--\tweak #'self-alignment-X #-1
+-\tweak self-alignment-X #-1
 ^"left-aligned"
--\tweak #'self-alignment-X #0
+-\tweak self-alignment-X #0
 ^"center-aligned"
--\tweak #'self-alignment-X #RIGHT
+-\tweak self-alignment-X #RIGHT
 ^"right-aligned"
--\tweak #'self-alignment-X #-2.5
+-\tweak self-alignment-X #-2.5
 ^"aligned further to the right"
 @end lilypond
 
@@ -3871,9 +3867,9 @@ a'
 @c KEEP LY
 @lilypond[quote,verbatim,relative=2]
 a
--\tweak #'self-alignment-X #0.5  % 左方向に移動させます
--\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
--\tweak #'self-alignment-Y #-1  % 上方向に移動させます
+-\tweak self-alignment-X #0.5  % 左方向に移動させます
+-\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self
+-\tweak self-alignment-Y #-1  % 上方向に移動させます
 -3  % 3 の指
 @end lilypond
 
@@ -3926,20 +3922,20 @@ example shows the difference:
 @c KEEP LY
 @lilypond[verbatim,quote,relative=1]
 % リハーサル記号は音部記号の上に中央揃えされます
-\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+\override Score.RehearsalMark.break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % リハーサル記号は拍子記号の上に中央揃えされます
-\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
 \key a \major
 \clef treble
 \time 3/4
 \mark "↓"
 e2.
 % リハーサル記号はブレス記号の上に中央揃えされます
-\override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign)
+\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
 \key a \major
 \clef treble
 \time 4/4
@@ -3960,14 +3956,14 @@ e1
 @c KEEP LY
 @lilypond[verbatim,quote,relative=1]
 % リハーサル記号は調号の上に中央揃えされます
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % リハーサル記号は音部記号の上に中央揃えされます
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \minor
 \clef bass
 \mark "↓"
@@ -3975,7 +3971,7 @@ gis,,1
 % リハーサル記号は小節線の上に中央揃えされます
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.explicitClefVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
@@ -3989,19 +3985,19 @@ e''1
 @c KEEP LY
 @lilypond[verbatim,quote,relative=1]
 % RehearsalMark は KeySignature の上に中央揃えされます
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
 \key a \major
 \clef treble
 \time 4/4
 \mark "↓"
 e1
 % RehearsalMark は KeySignature の左端に揃えられます
-\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
 \mark "↓"
 \key a \major
 e
 % RehearsalMark は KeySignature の右端に揃えられます
-\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
 e
 @lilypond[verbatim,quote,relative=1]
 % リハーサル記号は調号の左端に揃えられて
 % さらに 3.5 譜スペース右にずらされます
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
-\once \override Score.KeySignature #'break-align-anchor = #3.5
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature.break-align-anchor = #3.5
 \key a \major
 \mark "↓"
 e1
 % リハーサル記号は調号の左端に揃えられて
 % さらに 2 譜スペース左にずらされます
-\once \override Score.KeySignature #'break-align-anchor = #-2
+\once \override Score.KeySignature.break-align-anchor = #-2
 \key a \major
 \mark "↓"
 e1
@@ -4074,8 +4070,8 @@ Staff, Lyrics 等はそれ自体でそれぞれに VerticalAxisGroup を持ち
 
 @lilypond[verbatim,quote]
 XinO = {
-  \once \override NoteHead  #'stencil = #ly:text-interface::print
-  \once \override NoteHead #'text = \markup {
+  \once \override NoteHead.stencil = #ly:text-interface::print
+  \once \override NoteHead.text = \markup {
     \combine
       \halign #-0.7 \draw-circle #0.85 #0.2 ##f
       \musicglyph #"noteheads.s2cross"
@@ -4173,8 +4169,7 @@ X@tie{}座標はそのタイあるいはスラーを取り付けられる音符
 @lilypond[verbatim,quote,relative=1]
 <<
   {
-    \once \override Tie
-      #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
+    \once \override Tie.control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
      e1 ~ e
   }
 \\
@@ -4264,12 +4259,12 @@ starting and ending column.
                               '(-0.5 . 0.5)))))
 
 squareLineCircleSpace = {
-  \override NoteHead #'stencil = #square-line-circle-space
+  \override NoteHead.stencil = #square-line-circle-space
 }
 
 smartSquareLineCircleSpace = {
   \squareLineCircleSpace
-  \override NoteHead #'Y-extent =
+  \override NoteHead.Y-extent =
    #(ly:make-unpure-pure-container
       ly:grob::stencil-height
       (lambda (grob start end) (ly:grob::stencil-height grob)))
@@ -4278,9 +4273,9 @@ smartSquareLineCircleSpace = {
 \new Voice \with { \remove "Stem_engraver" }
 \relative c'' {
   \squareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
   \smartSquareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
 }
 @end lilypond
 
@@ -4402,7 +4397,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = $padding
+     \once \override TextScript.padding = $padding
    #})
 
 \relative c''' {
@@ -4422,10 +4417,10 @@ custosNote =
      (parser location note)
      (ly:music?)
    #{
-     \tweak NoteHead #'stencil #ly:text-interface::print
-     \tweak NoteHead #'text
+     \tweak NoteHead.stencil #ly:text-interface::print
+     \tweak NoteHead.text
         \markup \musicglyph #"custodes.mensural.u0"
-     \tweak Stem #'stencil ##f
+     \tweak Stem.stencil ##f
      #note
    #})
 
@@ -4440,7 +4435,7 @@ tempoPadded =
      (parser location padding tempotext)
      (number? markup?)
    #{
-     \once \override Score.MetronomeMark #'padding = $padding
+     \once \override Score.MetronomeMark.padding = $padding
      \tempo \markup { \bold #tempotext }
    #})
 
index 4bf189266029444f1cfed08f399d9648e1a4deb8..bfa5d667123c61d71c852850b9b7099b8526e970 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c Translators: Yoshiki Sawada
@@ -33,7 +33,7 @@
 @tab
 @lilypond[fragment,relative=2,notime]
 \set Staff.autoBeaming = ##f
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c1 c2 c8 c16
 @end lilypond
 
@@ -41,7 +41,7 @@ c1 c2 c8 c16
 @tab 増音の付点
 @tab
 @lilypond[relative=2,notime]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c4. c4..
 @end lilypond
 
@@ -74,7 +74,7 @@ s4_" "
 @tab 拍子記号
 @tab
 @lilypond[fragment]
-\override Staff.Clef #'transparent = ##t
+\override Staff.Clef.transparent = ##t
 \time 3/4
 s4_" "
 \time 4/4
@@ -86,7 +86,7 @@ s16_" "
 @tab 休符
 @tab
 @lilypond[relative=2,notime,fragment]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 r4 r8
 @end lilypond
 
index c878007780ecb56979852030392b8e780441cfde..326cefd0c589923150970c90044206538585fe6e 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1
 }
 @end lilypond
@@ -191,7 +191,7 @@ m, m7
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:m c:m7
 }
 @end lilypond
@@ -204,7 +204,7 @@ dim, dim7
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:dim c:dim7
 }
 @end lilypond
@@ -216,7 +216,7 @@ aug
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:aug
 }
 @end lilypond
@@ -230,7 +230,7 @@ maj, maj7
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:maj c:maj7
 }
 @end lilypond
index cea3f2159f8eb0d486753954d80f9f436c514543..9140d55281d74eadc730422f7be0923030d3ae6f 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c Translators: Yoshiki Sawada
@@ -106,11 +106,11 @@ Scheme 関数 @code{magstep} は @code{font-size} 数をスケーリング フ
 @lilypond[verbatim,quote,relative=2]
 \set fontSize = #3
 c4.-> d8---3
-\override NoteHead #'font-size = #-4
+\override NoteHead.font-size = #-4
 c4.-> d8---3
-\override Script #'font-size = #2
+\override Script.font-size = #2
 c4.-> d8---3
-\override Stem #'font-size = #-5
+\override Stem.font-size = #-5
 c4.-> d8---3
 @end lilypond
 
@@ -324,11 +324,11 @@ Notation Reference:
 有効なカラー名は @ref{List of colors} でリストアップされています。
 
 @lilypond[verbatim,quote,relative=2]
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 c4 c
-\override NoteHead #'color = #(x11-color 'LimeGreen)
+\override NoteHead.color = #(x11-color 'LimeGreen)
 d
-\override Stem #'color = #blue
+\override Stem.color = #blue
 e
 @end lilypond
 
@@ -347,20 +347,20 @@ X11 のために定義された色の全範囲にアクセスすることがで
 
 @c KEEP LY
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
 gis8 a
-\override Beam #'color = #(x11-color "medium turquoise")
+\override Beam.color = #(x11-color "medium turquoise")
 gis a
-\override Accidental #'color = #(x11-color 'DarkRed)
+\override Accidental.color = #(x11-color 'DarkRed)
 gis a
-\override NoteHead #'color = #(x11-color "LimeGreen")
+\override NoteHead.color = #(x11-color "LimeGreen")
 gis a
 % 以下は意図的に意味をなさない色を指定しています。符幹が黒のままであることに注意してください
-\override Stem #'color = #(x11-color 'Boggle)
+\override Stem.color = #(x11-color 'Boggle)
 b2 cis
 @end lilypond
 
@@ -374,16 +374,16 @@ Scheme 関数 @code{rgb-color} を用いることによって、@c
 厳密な RGB カラーを指定することができます。
 
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
-\override Stem #'color = #(rgb-color 0 0 0)
+\override Stem.color = #(rgb-color 0 0 0)
 gis8 a
-\override Stem #'color = #(rgb-color 1 1 1)
+\override Stem.color = #(rgb-color 1 1 1)
 gis8 a
-\override Stem #'color = #(rgb-color 0 0 0.5)
+\override Stem.color = #(rgb-color 0 0 0.5)
 gis4 a
 @end lilypond
 
index eae0922e427858239084ed75270ea435e0124cd9..c99f0ac776160dbfaa7bd6723762b671aa0d73b7 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..@end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c Translators: Yoshiki Sawada
@@ -180,8 +180,8 @@ c4->  c-.  c2-_
 このコマンドは @code{MultiMeasureRestText} オブジェクトを作成します。
 
 @lilypond[verbatim,quote,relative=2]
-\override Script #'color = #red
-\override MultiMeasureRestText #'color = #blue
+\override Script.color = #red
+\override MultiMeasureRestText.color = #blue
 a2\fermata r\fermata
 R1\fermataMarkup
 @end lilypond
index c214e6923ea0b573caa22722f7a7454b9415eacb..970edfb494c5003766046abeeda7c4059dc3920a 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
@@ -243,7 +243,7 @@ symbols = {
 変更することができます。
 
 @lilypond[quote,ragged-right,verbatim]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 \new StaffGroup <<
    \new Staff \relative c {
      \clef "treble_8"
@@ -383,7 +383,7 @@ ties = \relative c' {
 ハーモニック指示を演奏するピッチとしてタブ譜に付け加えることができます:
 
 @lilypond[verbatim,quote]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 firstHarmonic = {
   d'4\4\harmonic
   g'4\3\harmonic
@@ -545,7 +545,7 @@ LilyPond は、あらかじめ定義されたチューニングに対して、@c
 @lilypond[quote,ragged-right,verbatim]
 <<
   \new Voice \with {
-    \override StringNumber #'stencil = ##f
+    \override StringNumber.stencil = ##f
   } {
     \clef "bass_8"
     \relative c, {
@@ -929,8 +929,7 @@ fret-diagram-terse マークアップ文字列に運指の指示を含めるこ
     }
   }
   \context Staff {
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     \clef "treble_8"
     <c e g c' e'>1^\markup {
       \fret-diagram-terse #"x;3-3;2-2;o;1-1;o;"
@@ -1005,8 +1004,7 @@ fret-diagram-verbose インターフェイスに特有なこととして、
     }
   \context Staff {
     \clef "treble_8"
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     <f, c f a c' f'>1^\markup {
       \fret-diagram-verbose #'(
         (place-fret 6 1)
@@ -1703,7 +1701,7 @@ LilyPond は楽譜譜刻プログラムなので、@c
 \clef "treble_8"
 b16 d g b e
 \textSpannerDown
-\override TextSpanner #'(bound-details left text) = #"XII "
+\override TextSpanner.bound-details.left.text = #"XII "
 g16\startTextSpan
 b16 e g e b g\stopTextSpan
 e16 b g d
@@ -1733,7 +1731,7 @@ e16 b g d
 @lilypond[quote,ragged-right,verbatim]
 \relative c' {
   \clef "treble_8"
-  \override Staff.NoteHead #'style = #'harmonic-mixed
+  \override Staff.NoteHead.style = #'harmonic-mixed
   d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
 }
 @end lilypond
index 76484d3446846c81133b20096ccdf39547e7298d..a8a42fff974da99a0d6590fbdd2dbb5398fdff60 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c Translators: Yoshiki Sawada
@@ -530,7 +530,7 @@ foo = @{ c4 d e d @}
 @item Scheme 表記要素を区切る空白。
 @item @code{lyricmode} モードの @code{\override} と @code{\set} コマンドの@c
 中にある単語を区切る空白。@c
-特に、@code{\override Score . LyricText #'font-size = #5} のように、@c
+特に、@code{\override Score.LyricText.font-size = #5} のように、@c
 コマンドの中のドットとイコール記号の前後、コマンド全体の前後に@c
 空白を挿入することを忘れないで下さい。
 
@@ -1257,8 +1257,8 @@ scoreTitleMarkup = \markup @{ \column @{
     \footnote #'(0.5 . -2)
       \markup { The first note }
     a'4 b8
-    \footnote #'(0.5 . 1) #'Flag
-      \markup { The third note }
+    \single\footnote #'(0.5 . 1)
+      \markup { The third note } Flag
     e\noBeam c4 d4
   }
 }
@@ -1296,11 +1296,11 @@ scoreTitleMarkup = \markup @{ \column @{
     a'4-\footnote #'(-3 . 0) \markup { \bold Forte } \f
     -\footnote #'(0 . 1.5) \markup { スラー } (
     b8)-\footnote #'(0 . -2) \markup { 連桁 } [ e]
-    \footnote #'(1 . -1) #'Stem
-      \markup  { \teeny { これは符幹です } }
+    \single\footnote #'(1 . -1)
+      \markup  { \teeny { これは符幹です } } Stem
     c4
-    \footnote #'(0 . 0.5) #'AccidentalCautionary
-      \markup \italic { 忠告の臨時記号 }
+    \single\footnote #'(0 . 0.5)
+      \markup \italic { 忠告の臨時記号 } AccidentalCautionary
     \footnote #'(1 . 1) "音符自体"
     dis?4-\footnote #'(0.5 . -0.5) \markup \italic { スロー ダウン }
          _"rit."
@@ -1397,14 +1397,14 @@ LilyPond は対応するマークアップを同じページの下に表示す
       \markup { \teeny 3 } #'(0 . -2)
       \markup { 3. 連桁 } [
     e]
-    \footnote
-      \markup { 4 } #'(1 . -1) #'Stem
-      \markup  { \bold 4. { これは符幹です } }
+    \single\footnote
+      \markup { 4 } #'(1 . -1)
+      \markup  { \bold 4. { これは符幹です } } Stem
     c4
-    \footnote
+    \single\footnote
       \markup \concat \teeny { "sharp (v)" }
-          #'(0 . 0.5) #'AccidentalCautionary
-      \markup \italic { v. 忠告の臨時記号 }
+          #'(0 . 0.5)
+      \markup \italic { v. 忠告の臨時記号 } AccidentalCautionary
     dis?4-\footnote
       \markup \concat \teeny { "a" } #'(0.5 . -0.5)
       \markup \italic { a. スローダウン } _"rit."
index e760f8098f526ffdfb11b7680ae20df41e21ae9e..176cd669a071ca1f5344a8793abdb9cec222b686 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
   \new Staff = "up" {
     \voiceOne
     % 譜を跨ぐボイスの中にある運指記号のためのスペースを作ります
-    \once\override DynamicLineSpanner #'staff-padding = #3.4
+    \once\override DynamicLineSpanner.staff-padding = #3.4
     e''2\p\< d''\>
     c''1\!
   }
index be23d8800a578dcdce107dd81869d01118ffced6..3fd319c4bab23ab1a96e4f936cff69897b0ae651 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
@@ -264,17 +264,17 @@ mus = \drummode {
   << \new DrumStaff \with {
        \remove "Bar_engraver"
        \remove "Time_signature_engraver"
-       \override Stem #'transparent = ##t
-       \override Flag #'transparent = ##t
-       \override Stem #'Y-extent = ##f
+       \override Stem.transparent = ##t
+       \override Flag.transparent = ##t
+       \override Stem.Y-extent = ##f
      } \mus
      \new Lyrics \nam
   >>
   \layout {
     \context {
       \Score
-      \override LyricText #'font-family = #'typewriter
-      \override BarNumber #'transparent =##T
+      \override LyricText.font-family = #'typewriter
+      \override BarNumber.transparent =##T
     }
   }
 }
@@ -296,16 +296,16 @@ mus = \drummode { timh ssh timl ssl cb s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
-    \override StaffSymbol #'line-count = #2
-    \override StaffSymbol #'staff-space = #2
-    \override VerticalAxisGroup #'minimum-Y-extent = #'(-3.0 . 4.0)
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
+    \override StaffSymbol.line-count = #2
+    \override StaffSymbol.staff-space = #2
+    \override VerticalAxisGroup.minimum-Y-extent = #'(-3.0 . 4.0)
     drumStyleTable = #timbales-style
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -323,16 +323,16 @@ mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
     drumStyleTable = #congas-style
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -349,17 +349,17 @@ mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
     drumStyleTable = #bongos-style
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -376,14 +376,14 @@ mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
   \new DrumStaff \with{
     \remove "Bar_engraver"
     drumStyleTable = #percussion-style
-    \override StaffSymbol #'line-count = #1
+    \override StaffSymbol.line-count = #1
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -436,10 +436,10 @@ down = \drummode { bd4 sn bd toml8 toml }
 woodstaff = {
   % 以下は二線の譜を定義します。
   % また、二線の位置も定義します。
-  \override Staff.StaffSymbol #'line-positions = #'(-2 3)
+  \override Staff.StaffSymbol.line-positions = #'(-2 3)
 
   % 以下の行が必要です。この行を省略すると、小節線は短すぎます!
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
 }
 
 \new DrumStaff {
@@ -457,7 +457,7 @@ woodstaff = {
 @end lilypond
 
 上記の特殊なケースでは、@c
-小節線の長さを @code{\override Staff.BarLine #'bar-extent #'(from . to)}
+小節線の長さを @code{\override Staff.BarLine.bar-extent #'(from . to)}
 で変更する必要があります。@c
 さもないと、小節線の長さが短すぎます。@c
 また、2 本の譜線の位置を定義する必要があります。@c
@@ -469,8 +469,8 @@ woodstaff = {
 #(define mydrums '((tambourine default #t 0)))
 
 tambustaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tambourine"
 }
 
@@ -495,8 +495,8 @@ tambustaff = {
 #(define mydrums '((tamtam default #t 0)))
 
 tamtamstaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tamtam"
 }
 
@@ -517,9 +517,9 @@ tamtamstaff = {
                    (cowbell  default #t -2)))
 
 bellstaff = {
-  \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)
+  \override DrumStaff.StaffSymbol.line-positions = #'(-2 3)
   \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Different Bells"
 }
 
index bac47b7f68cd7393c23be8d0569aa0d0dc441e21..b8dcbbd6a9a12136c82cc74861ff447110eb8f1c 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
@@ -1471,7 +1471,7 @@ LilyPond はどの臨時記号スタイルを使用するのかを指定する
 
 @example
 \new Staff <<
-  \accidentalStyle "voice"
+  \accidentalStyle voice
   @{ @dots{} @}
 >>
 @end example
@@ -1486,7 +1486,7 @@ LilyPond はどの臨時記号スタイルを使用するのかを指定する
 以下のようにします:
 
 @example
-\accidentalStyle #'StaffGroup "voice"
+\accidentalStyle StaffGroup.voice
 @end example
 
 サポートされる臨時記号スタイルを以下で示します。@c
@@ -1528,11 +1528,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1547,7 +1547,7 @@ musicB = {
   <<
     \context Staff = "up" @{
       %%% 次の行を変更したいスタイルに合わせて変更してください:
-      \accidentalStyle #'Score "default"
+      \accidentalStyle Score.default
       \musicA
     @}
     \context Staff = "down" @{
@@ -1610,11 +1610,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1682,11 +1682,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicB
     }
   >>
@@ -1752,11 +1752,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicB
     }
   >>
@@ -1816,11 +1816,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicB
     }
   >>
@@ -1884,11 +1884,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicB
     }
   >>
@@ -1946,11 +1946,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicB
     }
   >>
@@ -2012,7 +2012,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano"
+      \accidentalStyle piano
       \musicA
     }
     \context Staff = "down" {
@@ -2071,7 +2071,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano-cautionary"
+      \accidentalStyle piano-cautionary
       \musicA
     }
     \context Staff = "down" {
@@ -2134,11 +2134,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicB
     }
   >>
@@ -2191,11 +2191,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicB
     }
   >>
@@ -2250,11 +2250,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicB
     }
   >>
@@ -2307,11 +2307,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicB
     }
   >>
@@ -2369,11 +2369,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicB
     }
   >>
@@ -2432,12 +2432,12 @@ musicB = {
   <<
     \context Staff = "up" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicA
     }
     \context Staff = "down" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicB
     }
   >>
@@ -2492,11 +2492,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicB
     }
   >>
@@ -2551,11 +2551,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicB
     }
   >>
@@ -2601,7 +2601,7 @@ musicB = {
 
 @lilypond[quote]
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2618,12 +2618,12 @@ musicB = {
 
 @lilypond[verbatim,quote]
 forget = #(define-music-function (parser location music) (ly:music?) #{
-  \accidentalStyle "forget"
+  \accidentalStyle forget
   #music
-  \accidentalStyle "modern"
+  \accidentalStyle modern
 #})
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2743,13 +2743,13 @@ forget = #(define-music-function (parser location music) (ly:music?) #{
 
 @lilypond[verbatim,quote,relative=2]
 c4 b
-\override NoteHead #'style = #'cross
+\override NoteHead.style = #'cross
 c4 b
-\revert NoteHead #'style
+\revert NoteHead.style
 a b
-\override NoteHead #'style = #'harmonic
+\override NoteHead.style = #'harmonic
 a b
-\revert NoteHead #'style
+\revert NoteHead.style
 c4 d e f
 @end lilypond
 
index 38843909c285a3c150e1e88e0273d6ab5bf6dd32..08d884452334b583d8990ceeabc4ee622afcdf4e 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
@@ -538,11 +538,11 @@ c2 ~ c
 オーバライドしてください。
 
 @lilypond[verbatim,quote,ragged-right,relative=2]
-\override Tie #'layer = #-2
-\override Staff.TimeSignature #'layer = #-1
-\override Staff.KeySignature #'layer = #-1
-\override Staff.TimeSignature #'whiteout = ##t
-\override Staff.KeySignature #'whiteout = ##t
+\override Tie.layer = #-2
+\override Staff.TimeSignature.layer = #-1
+\override Staff.KeySignature.layer = #-1
+\override Staff.TimeSignature.whiteout = ##t
+\override Staff.KeySignature.whiteout = ##t
 b2 b~
 \time 3/4
 \key a \major
@@ -638,7 +638,7 @@ b r4
 \new Staff {
   % この 2 本線には意味はありません
   \time 16/1
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   % 八全休符を譜刻します。二全休符 4 つと等価です
   r\maxima
   % 四全休符を譜刻します。二全休符 2 つと等価です
@@ -906,10 +906,10 @@ R2.^\fermataMarkup
 @c KEEP LY
 @lilypond[quote,verbatim,relative=2]
 % この例は誤ったオブジェクト名を指定しているため失敗します
-\override TextScript #'padding = #5
+\override TextScript.padding = #5
 R1^"wrong"
 % この例は正しいオブジェクト名が指定されています
-\override MultiMeasureRestText #'padding = #5
+\override MultiMeasureRestText.padding = #5
 R1^"right"
 @end lilypond
 
@@ -1478,7 +1478,7 @@ d4 e d c
 
 @lilypond[verbatim,relative=2,quote]
 % すべての小節番号を表示します
-\override Score.BarNumber #'break-visibility = #all-visible
+\override Score.BarNumber.break-visibility = #all-visible
 c4 d e d
 \cadenzaOn
 c4 c d8[ d d] f4 g4.
@@ -2509,14 +2509,14 @@ ritardando (徐々に緩やかに) や accelerando (次第に速く) を@c
 最後の 4 つの 32 分音符は一定のテンポです。
 
 @lilypond[relative=1,verbatim,quote]
-\override Beam #'grow-direction = #LEFT
+\override Beam.grow-direction = #LEFT
 \featherDurations #(ly:make-moment 2 1)
 { c16[ c c c c c c c] }
-\override Beam #'grow-direction = #RIGHT
+\override Beam.grow-direction = #RIGHT
 \featherDurations #(ly:make-moment 2 3)
 { c32[ d e f] }
 % revert to non-feathered beams
-\override Beam #'grow-direction = #'()
+\override Beam.grow-direction = #'()
 { g32[ a b c] }
 @end lilypond
 
@@ -2634,7 +2634,7 @@ f1 \bar "|"
 f1 \bar "."
 g1 \bar "||"
 a1 \bar ".|"
-b1 \bar ".|."
+b1 \bar ".."
 c1 \bar "|.|"
 d1 \bar "|."
 e1
@@ -2644,8 +2644,8 @@ e1
 さらに、点線と破線の小節線があります:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar ":"
-g1 \bar "dashed"
+f1 \bar ";"
+g1 \bar "!"
 a1
 @end lilypond
 
@@ -2653,11 +2653,11 @@ a1
 さらに、繰り返しの小節線が 5 種類あります:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar "|:"
-g1 \bar ":|:"
+f1 \bar ".|:"
+g1 \bar ":..:"
 a1 \bar ":|.|:"
 b1 \bar ":|.:"
-c1 \bar ":|"
+c1 \bar ":|."
 e1
 @end lilypond
 
@@ -2681,13 +2681,13 @@ c4 c c c
 c4 c c c \break
 \bar "S"
 c4 c c c
-\bar "|S"
+\bar "S-|"
 c4 c c c \break
-\bar "|S"
+\bar "S-|"
 c4 c c c
-\bar "S|"
+\bar "S-S"
 c4 c c c \break
-\bar "S|"
+\bar "S-S"
 c1
 @end lilypond
 
@@ -2708,9 +2708,9 @@ c1
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar "||:"
+\bar ".|:-||"
 c4 c c c \break
-\bar "||:"
+\bar ".|:-||"
 c4 c c c
 @end lilypond
 
@@ -2718,29 +2718,29 @@ c4 c c c
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar ":|S"
+\bar ":|.S"
 c4 c c c \break
-\bar ":|S"
+\bar ":|.S"
 c4 c c c
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c \break
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c \break
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c \break
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c \break
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c4 c c c \break
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c1
 @end lilypond
 
@@ -2847,7 +2847,7 @@ c1 c c c
 以下の例では、譜刻可能な場所すべてに小節番号を譜刻しています:
 
 @lilypond[verbatim,quote,relative=1]
-\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
+\override Score.BarNumber.break-visibility = #'#(#t #t #t)
 \set Score.currentBarNumber = #11
 % Permit first bar number to be printed
 \bar ""
@@ -3347,8 +3347,8 @@ c1 \afterGrace d1 { c16[ d] } c1
 
 @lilypond[quote,relative=2,verbatim]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" d2. }
 >>
 @end lilypond
 
@@ -3359,8 +3359,8 @@ c1 \afterGrace d1 { c16[ d] } c1
 
 @lilypond[quote,relative=2,verbatim]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" \grace s16 d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" \grace s16 d2. }
 >>
 @end lilypond
 
index 1db44650f40e06950ce0da9ea8bf84390c773305..cb0b4c558fa6b0ce369dba9c96807dd95db53aa3 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c Translators: Yoshiki Sawada
@@ -309,7 +309,7 @@ warning: ignoring too many clashing note columns
 以下でこのメッセージを表示させなくすることができます:
 
 @example
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 @end example
 
 しかしながら、これは警告を非表示にするだけでなく、@c
@@ -858,13 +858,13 @@ etc.
 @cindex collisions, ignoring (衝突を無視する)
 
 @knownissues
-@code{\override NoteColumn #'ignore-collision = ##t} を使うと@c
+@code{\override NoteColumn.ignore-collision = ##t} を使うと@c
 異なるボイスにある符頭が異なる音符を不適切にマージします。
 
 @lilypond[quote,relative=1,verbatim]
 \mergeDifferentlyHeadedOn
 << { c16 a' b a } \\ { c,2 } >>
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 << { c16 a' b a } \\ { c,2 } >>
 @end lilypond
 
index c71eff7cda10d2ea4ac4bb8097f665f19975b45c..8aefc64bdbf6eb4749edf75739e5763ac1a86c55 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c Translators: Yoshiki Sawada
@@ -35,7 +35,7 @@ staff lines."
 
 Could we add a sentence:
 "Use instead the pair               fontSize = #@var{N}
-            \override StaffSymbol #'staff-space = #(magstep
+            \override StaffSymbol.staff-space = #(magstep
 @var{N})
 inside the Staff context to change the size of the font and the
 distance between
@@ -880,20 +880,20 @@ score で使用すべきシステム数です。@c
 
 @table @code
 
-@item blank-after-score-page-force
-@funindex blank-after-score-page-force
+@item blank-after-score-page-penalty
+@funindex blank-after-score-page-penalty
 
 楽譜の後ろ (と次の楽譜の前) に強制的に白紙を挿入します。@c
-デフォルトでは、この値は @code{blank-page-force} よりも小さいため、@c
+デフォルトでは、この値は @code{blank-page-penalty} よりも小さいため、@c
 楽譜の途中ではなく後ろに白紙が挿入されます。
 
-@item blank-last-page-force
-@funindex blank-last-page-force
+@item blank-last-page-penalty
+@funindex blank-last-page-penalty
 
 楽譜の最後が奇数ページの場合、楽譜の後ろに白紙を挿入します。
 
-@item blank-page-force
-@funindex blank-page-force
+@item blank-page-penalty
+@funindex blank-page-penalty
 
 楽譜の途中に強制的に白紙を挿入します。@c
 この値は @code{ly:optimal-breaking} では用いられません。@c
@@ -1112,12 +1112,12 @@ increased by one.  Default: @code{#f}.
   indent = 2\cm
   \context @{
     \StaffGroup
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #8
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #8
   @}
   \context @{
     \Voice
-    \override TextScript #'padding = #1
-    \override Glissando #'thickness = #3
+    \override TextScript.padding = #1
+    \override Glissando.thickness = #3
   @}
 @}
 @end example
@@ -1139,8 +1139,8 @@ increased by one.  Default: @code{#f}.
 \layout @{
   \context @{
     \Voice
-    \override TextScript #'color = #magenta
-    \override Glissando #'thickness = #1.5
+    \override TextScript.color = #magenta
+    \override Glissando.thickness = #1.5
   @}
 @}
 @end example
@@ -1159,7 +1159,7 @@ increased by one.  Default: @code{#f}.
 layoutVariable = \layout @{
   \context @{
     \Voice
-    \override NoteHead #'font-size = #4
+    \override NoteHead.font-size = #4
   @}
 @}
 @end example
@@ -1178,7 +1178,7 @@ layoutVariable = \layout @{
   \layoutVariable
   \context @{
     \Voice
-    \override NoteHead #'color = #red
+    \override NoteHead.color = #red
   @}
 @}
 @end example
@@ -1405,11 +1405,11 @@ c4 c c c |
 @end lilypond
 
 同様に、通常は連桁が小節線を跨いでいる場合も、改行は禁止されます。@c
-この振る舞いは、@code{\override Beam #'breakable = ##t} により、@c
+この振る舞いは、@code{\override Beam.breakable = ##t} により、@c
 変更することができます:
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override Beam #'breakable = ##t
+\override Beam.breakable = ##t
 c2. c8[ c | \break
 c8 c] c2. |
 @end lilypond
@@ -1743,8 +1743,8 @@ LilyPond はしばしば明示的な @code{\break} や @code{\pageBreak} を@c
 この振る舞いを上書きするための 2 つのコマンドがあります:
 
 @example
-\override NonMusicalPaperColumn #'line-break-permission = ##f
-\override NonMusicalPaperColumn #'page-break-permission = ##f
+\override NonMusicalPaperColumn.line-break-permission = ##f
+\override NonMusicalPaperColumn.page-break-permission = ##f
 @end example
 
 @code{line-break-permission} が偽に上書きされた場合、@c
@@ -1778,8 +1778,8 @@ music = \relative c'' { c8 c c c }
   \layout {
     \context {
       \Score
-      \override NonMusicalPaperColumn #'line-break-permission = ##f
-      \override NonMusicalPaperColumn #'page-break-permission = ##f
+      \override NonMusicalPaperColumn.line-break-permission = ##f
+      \override NonMusicalPaperColumn.page-break-permission = ##f
     }
   }
 }
@@ -1852,20 +1852,16 @@ music = \relative c'' { c4 c c c }
 \score {
   \new Staff <<
     \new Voice {
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 0))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
       s1 * 2 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 35))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
       s1 * 3 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 70))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
       s1 * 6 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 105))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
       s1 * 5 \break
     }
     \new Voice {
@@ -2013,14 +2009,14 @@ music = \relative c'' { c4 c c c }
 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
 
 alignToZero = \with {
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #zero-space
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
 }
 lowerCaseChords = \with {
   chordNameLowercaseMinor = ##t
 }
 staffAffinityDown = \with {
-  \override VerticalAxisGroup #'staff-affinity = #DOWN
+  \override VerticalAxisGroup.staff-affinity = #DOWN
 }
 labelContext =
 #(define-music-function
@@ -2038,13 +2034,13 @@ labelContext =
                          \lowerCaseChords }
   \context { \FretBoards  \alignToZero \staffAffinityDown }
   \context { \Score
-    \override BarLine #'stencil = ##f
-    \override DynamicText #'self-alignment-X = #-1
-    \override FretBoard #'X-offset = #1.75
-    \override InstrumentName #'minimum-Y-extent = #'(-2 . 2)
-    \override InstrumentName #'extra-offset = #'(0 . -0.5)
-    \override TextScript #'minimum-Y-extent = #'(-2 . 3)
-    \override TimeSignature #'stencil = ##f
+    \override BarLine.stencil = ##f
+    \override DynamicText.self-alignment-X = #-1
+    \override FretBoard.X-offset = #1.75
+    \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
+    \override InstrumentName.extra-offset = #'(0 . -0.5)
+    \override TextScript.minimum-Y-extent = #'(-2 . 3)
+    \override TimeSignature.stencil = ##f
   }
 }
 
@@ -2107,12 +2103,11 @@ labelContext =
 
 @example
 \new Staff \with @{
-  \override VerticalAxisGroup #'default-staff-staff-spacing
-       #'basic-distance = #10
+  \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
 @} @{ @dots{} @}
 
 \new Staff \with @{
-  \override VerticalAxisGroup #'default-staff-staff-spacing =
+  \override VerticalAxisGroup.default-staff-staff-spacing =
     #'((basic-distance . 10)
        (minimum-distance . 9)
        (padding . 1)
@@ -2127,8 +2122,7 @@ labelContext =
 \layout @{
   \context @{
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing
-         #'basic-distance = #10
+    \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
   @}
 @}
 @end example
@@ -2294,7 +2288,7 @@ labelContext =
 \layout {
   \context {
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 8)
          (minimum-distance . 7)
          (padding . 1))
@@ -2317,7 +2311,7 @@ labelContext =
   % 'padding に負の値を設定することにより、譜を重ねることができます。
   % 'basic-distance が取り得る最小の値は 0 です。
   \new Staff \with {
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 3.5)
          (padding . -10))
   } { \clef bass g2 r | }
@@ -2372,14 +2366,14 @@ labelContext =
 \layout {
   \context {
     \Score
-    \override StaffGrouper #'staff-staff-spacing #'padding = #0
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #1
+    \override StaffGrouper.staff-staff-spacing.padding = #0
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #1
   }
 }
 
 <<
   \new PianoStaff \with {
-    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+    \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
   } <<
     \new Staff { c'1 }
     \new Staff { c'1 }
@@ -2439,24 +2433,23 @@ labelContext =
 \layout {
   \context {
     \Lyrics
-    \override VerticalAxisGroup
-      #'nonstaff-nonstaff-spacing #'stretchability = #1000
+    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
   }
 }
 
 \new StaffGroup
 <<
   \new Staff \with {
-    \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance . 30))
+    \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
   } { c'1 }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #UP
+    \override VerticalAxisGroup.staff-affinity = #UP
   } \lyricmode { up }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #CENTER
+    \override VerticalAxisGroup.staff-affinity = #CENTER
   } \lyricmode { center }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #DOWN
+    \override VerticalAxisGroup.staff-affinity = #DOWN
   } \lyricmode { down }
   \new Staff { c'1 }
 >>
@@ -2522,21 +2515,16 @@ labelContext =
 @code{NonMusicalPaperColumn} を上書きする例をいくつか挙げます:
 
 @example
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((Y-offset . 40))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((alignment-distances . (15)))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40)
                                  (alignment-distances . (15)))
 @end example
@@ -2590,14 +2578,11 @@ labelContext =
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 40))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 80))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
           s1*5 \break
         }
         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
@@ -2630,16 +2615,13 @@ labelContext =
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 20)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (15)))
           s1*5 \break
         }
@@ -2673,16 +2655,13 @@ labelContext =
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
                                            (alignment-distances . (30 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (10 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (10 30)))
           s1*5 \break
         }
@@ -2759,13 +2738,13 @@ LilyPond は譜外部オブジェクトを、既に配置済みのオブジェ
 @lilypond[quote,ragged-right,relative=2,verbatim]
 c4_"Text"\pp
 r2.
-\once \override TextScript #'outside-staff-priority = #1
+\once \override TextScript.outside-staff-priority = #1
 c4_"Text"\pp % ここでは、テキストが譜の近くに配置されます
 r2.
 % outside-staff-priority に数ではない値を設定することにより、
 % 自動衝突回避を無効にします
-\once \override TextScript #'outside-staff-priority = ##f
-\once \override DynamicLineSpanner #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
+\once \override DynamicLineSpanner.outside-staff-priority = ##f
 c4_"Text"\pp % ここでは、2 つのオブジェクトが衝突します
 @end lilypond
 
@@ -2775,9 +2754,9 @@ c4_"Text"\pp % ここでは、2 つのオブジェクトが衝突します
 
 @c KEEP LY
 @lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
-\once \override TextScript #'outside-staff-padding = #0
+\once \override TextScript.outside-staff-padding = #0
 a'^"このテキストは音符のすぐ近くに配置されます。"
-\once \override TextScript #'outside-staff-padding = #3
+\once \override TextScript.outside-staff-padding = #3
 c^"このテキストは前のテキストから離れた位置に配置されます"
 c^"この手キスとは前にテキストの近くに配置されます"
 @end lilypond
@@ -2801,7 +2780,7 @@ c4
 c''2
 % outside-staff-horizontal-padding を設定することで修正します
 R1
-\once \override TextScript #'outside-staff-horizontal-padding = #1
+\once \override TextScript.outside-staff-horizontal-padding = #1
 c,,4^"Text"
 c4
 c''2
@@ -2920,8 +2899,8 @@ c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
 {
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
-  \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
-  \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
+  \override Staff.NoteSpacing.stem-spacing-correction = #1.5
+  \override Staff.StaffSpacing.stem-spacing-correction = #1.5
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
 }
@@ -2949,7 +2928,7 @@ Essay on automated music engraving:
 -- 必要に応じて、パディングの値を調整しています。
 
 @example
- \override Score.NonMusicalPaperColumn #'padding = #10
+ \override Score.NonMusicalPaperColumn.padding = #10
 @end example
 
 スペースを減らすための手段はありません。
@@ -3024,8 +3003,7 @@ c16[ c c8]
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'base-shortest-duration = #(ly:make-moment 1 16)
+      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
     }
   }
 }
@@ -3060,7 +3038,7 @@ c16[ c c8]
   \layout {
     \context {
       \Score
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -3071,7 +3049,7 @@ c16[ c c8]
 音符にスペースが割り当てられます。
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override Score.SpacingSpanner #'strict-note-spacing = ##t
+\override Score.SpacingSpanner.strict-note-spacing = ##t
 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c]  c32[ c32] }
 @end lilypond
 
@@ -3158,7 +3136,7 @@ LilyPond はプロポーショナル ノーテーション用に 5 つの設定
 @item @code{uniform-stretching}
 @item @code{strict-note-spacing}
 @item @code{\remove "Separating_line_group_engraver"}
-@item @code{\override PaperColumn #'used = ##t}
+@item @code{\override PaperColumn.used = ##t}
 @end itemize
 
 以下の例では、@c
@@ -3397,7 +3375,7 @@ LilyPond Scheme 関数 @code{make-moment} は 2 つの引数をとります
     \context {
       \Score
       proportionalNotationDuration = #(ly:make-moment 1 20)
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -3504,7 +3482,7 @@ OFF であるかのどちらかであるということです。@c
 
 \new Staff {
   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
-  \override Score.SpacingSpanner #'strict-note-spacing = ##t
+  \override Score.SpacingSpanner.strict-note-spacing = ##t
   c''8
   c''8
   c''8
@@ -3526,11 +3504,11 @@ OFF であるかのどちらかであるということです。@c
 以下のような設定です:
 
 @itemize
-@item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
+@item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
 @item @code{tupletFullLength = ##t}
-@item @code{\override Beam #'breakable = ##t}
-@item @code{\override Glissando #'breakable = ##t}
-@item @code{\override TextSpanner #'breakable = ##t}
+@item @code{\override Beam.breakable = ##t}
+@item @code{\override Glissando.breakable = ##t}
+@item @code{\override TextSpanner.breakable = ##t}
 @item @code{\remove "Forbid_line_break_engraver" in the Voice context}
 @end itemize
 
@@ -3690,7 +3668,7 @@ OFF であるかのどちらかであるということです。@c
 
 @lilypond[verbatim,quote,relative=1]
 e4 c g\f c
-e4 c g-\tweak #'X-offset #-2.7 -\tweak #'Y-offset #2.5 \f c
+e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
 @end lilypond
 
 @item
@@ -3729,8 +3707,7 @@ e4 c g-\tweak #'X-offset #-2.7 -\tweak #'Y-offset #2.5 \f c
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'common-shortest-duration = #(ly:make-moment 1 2)
+      \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 2)
     }
   }
 }
index 223d64e5cbc380ef3b61f89369bb6ba818e92cb1..e7a193949c6c3c91b8c9610cfa7270d1e907bb5c 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c Translators: Yoshiki Sawada
@@ -449,11 +449,11 @@ f'4 d \startStaff g, e
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-count = #2
+\override Staff.StaffSymbol.line-count = #2
 \startStaff g, e |
 
 f'4 d \stopStaff
-\revert Staff.StaffSymbol #'line-count
+\revert Staff.StaffSymbol.line-count
 \startStaff g, e |
 @end lilypond
 
@@ -465,10 +465,10 @@ f'4 d \stopStaff
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(1 3 5 -1 -3)
+\override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
 \startStaff g, e |
 f'4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(8 6.5 -6 -8 -0.5)
+\override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
 \startStaff g, e
 @end lilypond
 
@@ -482,7 +482,7 @@ f'4 d \stopStaff
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #3
+  \override StaffSymbol.thickness = #3
 }
 { f4 d g, e }
 @end lilypond
@@ -493,8 +493,8 @@ f'4 d \stopStaff
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #2
-  \override StaffSymbol #'ledger-line-thickness = #'(0.5 . 0.4)
+  \override StaffSymbol.thickness = #2
+  \override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -503,7 +503,7 @@ f'4 d \stopStaff
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'ledger-positions = #'(-3 -2 -1 2 5 6)
+  \override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -513,7 +513,7 @@ f'4 d \stopStaff
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'ledger-extra = #4
+  \override StaffSymbol.ledger-extra = #4
 }
 { f'4 a, d, f, }
 @end lilypond
@@ -526,11 +526,11 @@ f'4 d \stopStaff
 @code{\stopStaff} を行う必要があります。
 
 @lilypond[fragment,quote,relative=1]
-\override Staff.StaffSymbol #'line-positions =   #'(-8 0 2 4)
+\override Staff.StaffSymbol.line-positions =   #'(-8 0 2 4)
 d4 e f g
 \stopStaff
 \startStaff
-\override Staff.StaffSymbol #'ledger-positions = #'(-8 -6 (-4 -2) 0)
+\override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
 d4 e f g
 @end lilypond
 
@@ -538,7 +538,7 @@ d4 e f g
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'staff-space = #1.5
+  \override StaffSymbol.staff-space = #1.5
 }
 { f'4 d, g, e, }
 @end lilypond
@@ -617,8 +617,8 @@ d4 e f g
       \remove "Time_signature_engraver"
       alignAboveContext = #"main"
       fontSize = #-3
-      \override StaffSymbol #'staff-space = #(magstep -3)
-      \override StaffSymbol #'thickness = #(magstep -3)
+      \override StaffSymbol.staff-space = #(magstep -3)
+      \override StaffSymbol.thickness = #(magstep -3)
       firstClef = ##f
     }
     { e4 d f e }
@@ -639,10 +639,10 @@ d4 e f g
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   }
   { \stopStaff s1*6 }
 
@@ -679,10 +679,10 @@ d4 e f g
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   } \relative c'' {
     R1*3
     c4 e8 d c2
@@ -700,7 +700,7 @@ d4 e f g
 \layout {
   \context {
     \Staff \RemoveEmptyStaves
-    \override VerticalAxisGroup #'remove-first = ##t
+    \override VerticalAxisGroup.remove-first = ##t
   }
 }
 @end lilypond
@@ -859,8 +859,8 @@ d4 e f g
 以下のオーバライドを使用してください:
 
 @example
-\override StaffSymbol #'stencil = ##f
-\override NoteHead #'no-ledgers = ##t
+\override StaffSymbol.stencil = ##f
+\override NoteHead.no-ledgers = ##t
 @end example
 
 @code{\Staff \RemoveEmptyStaves} に関連する既知の問題と警告は
index deea70d88c96b4f2ba8aec086ef83b61e080ad30..bd70574496eb679e7604dff94c221b4d2f6ed7b1 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c Translators: Yoshiki Sawada
@@ -138,7 +138,7 @@ a4_"scherzando" f
 処理速度を上げる必要がある場合は、以下を用います:
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 
@@ -157,7 +157,7 @@ a4_"scherzando" f
 ある音符から他の音符までの範囲に作成することができます:
 
 @lilypond[verbatim,quote,relative=2]
-\override TextSpanner #'(bound-details left text) = "rit."
+\override TextSpanner.bound-details.left.text = "rit."
 b1\startTextSpan
 e,\stopTextSpan
 @end lilypond
@@ -169,7 +169,7 @@ e,\stopTextSpan
 @code{\markup} ブロックを用いることで他の書体にすることができます。
 
 @lilypond[quote,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text) =
+\override TextSpanner.bound-details.left.text =
   \markup { \upright "rit." }
 b1\startTextSpan c
 e,\stopTextSpan
@@ -1454,12 +1454,12 @@ a1^\markup {
 @code{font-size} に提供する値が必要となります。
 
 @lilypond[quote,verbatim,relative=2]
-\override Score.RehearsalMark #'font-family = #'typewriter
+\override Score.RehearsalMark.font-family = #'typewriter
 \mark \markup "Ouverture"
-\override Voice.TextScript #'font-shape = #'italic
-\override Voice.TextScript #'font-series = #'bold
+\override Voice.TextScript.font-shape = #'italic
+\override Voice.TextScript.font-series = #'bold
 d2.^\markup "Allegro"
-\override Voice.TextScript #'font-size = #-3
+\override Voice.TextScript.font-size = #-3
 c4^smaller
 @end lilypond
 
@@ -1515,8 +1515,8 @@ FontConfig に認識されている任意のフォントを@c
 楽譜の中で使用することができます:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.TimeSignature #'font-name = #"Bitstream Charter"
-\override Staff.TimeSignature #'font-size = #2
+\override Staff.TimeSignature.font-name = #"Bitstream Charter"
+\override Staff.TimeSignature.font-size = #2
 \time 3/4
 
 a1_\markup {
index 6926442e3cfb4284dc78d8d7d9afeba3a11e5d81..e24df80d51df14530fdef0f38dedc52eb1b14e08 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
 以下のように記述しないでください
 
 @example
-\override Score.LyricText #'font-shape = #'italic
+\override Score.LyricText.font-shape = #'italic
 @end example
 
 @noindent
 以下のように記述してください
 
 @example
-\override Score . LyricText #'font-shape = #'italic
+\override Score.LyricText.font-shape = #'italic
 @end example
 
 句読点、アクセントが付いた文字を持つ歌詞、英語以外の言語の文字、@c
@@ -1046,7 +1046,7 @@ contraltoWords = \lyricmode { Con -- tral -- to words }
   <<
     \new Lyrics = "lyrics" \with {
       % 譜の上に配置する歌詞は以下のオーバライドを行う必要があります
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "melody" {
@@ -1079,7 +1079,7 @@ contraltoWords = \lyricmode { Con -- tral -- to words }
     \new Lyrics = "contraltos" \with {
       % 譜の上に配置する歌詞は以下のオーバライドを行う必要があります
       % lyrics above a staff should have this override
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "contraltos" {
@@ -1130,7 +1130,7 @@ contraltoWords = \lyricmode { Con -- tral -- to words }
 @lilypond[relative=1,verbatim,quote,ragged-right]
 {
   c c c c
-  \override Lyrics.LyricSpace #'minimum-distance = #1.0
+  \override Lyrics.LyricSpace.minimum-distance = #1.0
   c c c c
 }
 \addlyrics {
@@ -1156,7 +1156,7 @@ contraltoWords = \lyricmode { Con -- tral -- to words }
   \layout {
     \context {
       \Lyrics
-      \override LyricSpace #'minimum-distance = #1.0
+      \override LyricSpace.minimum-distance = #1.0
     }
   }
 }
@@ -1173,7 +1173,7 @@ contraltoWords = \lyricmode { Con -- tral -- to words }
 この機能を無効にすることで、処理をわずかにスピードアップすることができます:
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 歌詞が小節線を避けるようにするには、以下を使います:
@@ -1184,7 +1184,7 @@ contraltoWords = \lyricmode { Con -- tral -- to words }
     \Lyrics
       \consists "Bar_engraver"
       \consists "Separating_line_group_engraver"
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
   @}
 @}
 @end example
@@ -1906,7 +1906,7 @@ text = {
         \voiceOne
         \times 2/3 {
           % show associations clearly.
-          \override NoteColumn #'force-hshift = #-3
+          \override NoteColumn.force-hshift = #-3
           f8 f g
         }
       }
@@ -2325,8 +2325,8 @@ SATB (S: ソプラノ、A: アルト、T: テナー、B: バス) ボーカル譜
   \layout {
     \context {
       \Score
-      \override DynamicText #'direction = #UP
-      \override DynamicLineSpanner #'direction = #UP
+      \override DynamicText.direction = #UP
+      \override DynamicLineSpanner.direction = #UP
     }
   }
 }
@@ -2609,7 +2609,7 @@ pianoRH = \relative c'' {
   c4. g8
   % 合図音符の楽器名を、合図音符の直前、かつ譜の上に配置します
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
     \set instrumentCueName = "Flute"
   }
   \cueDuring "flute" #UP { g4 bes4 }
@@ -2654,8 +2654,8 @@ pianoRH = \relative c'' {
   \transposition c'
   % 合図音符の楽器名を譜の下に配置します
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
-    \override InstrumentSwitch #'direction = #DOWN
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
+    \override InstrumentSwitch.direction = #DOWN
     \set instrumentCueName = "Clar."
   }
   \cueDuring "clarinet" #DOWN { c4. g8 }
@@ -2790,8 +2790,8 @@ dialogue = \lyricmode {
 \score {
   <<
     \new Lyrics \with {
-      \override LyricText #'font-shape = #'italic
-      \override LyricText #'self-alignment-X = #LEFT
+      \override LyricText.font-shape = #'italic
+      \override LyricText.self-alignment-X = #LEFT
     }
     { \dialogue }
     \new Staff {
@@ -2860,7 +2860,7 @@ dialogue = \lyricmode {
 リズムは単語の音声リズムから取ります。
 
 @lilypond[verbatim,quote]
-stemOff = { \override Staff.Stem #'transparent = ##t }
+stemOff = { \override Staff.Stem.transparent = ##t }
 
 \relative c' {
   \stemOff
@@ -2953,9 +2953,9 @@ a4 b c2
 \bar "'"
 a4 b c2
 a4 b c2
-\bar ":"
+\bar ";"
 a4 b c2
-\bar "dashed"
+\bar "!"
 a4 b c2
 \bar "||"
 @end lilypond
@@ -2966,23 +2966,23 @@ a4 b c2
 
 @lilypond[verbatim,quote]
 divisioMinima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-minima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-minima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaior = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maior
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maior
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaxima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maxima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maxima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 finalis = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::finalis
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::finalis
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 
@@ -3098,8 +3098,7 @@ global = {
       \layout {
         \context {
           \Score
-          \override SpacingSpanner
-          #'base-shortest-duration = #(ly:make-moment 1 2)
+          \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 2)
         }
         \context {
           \Staff
diff --git a/Documentation/ja/texidocs/GNUmakefile b/Documentation/ja/texidocs/GNUmakefile
deleted file mode 100644 (file)
index 0ffa758..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth=../../..
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.texidoc)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/ja/usage/GNUmakefile b/Documentation/ja/usage/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index f65dfdc765b4eaf6658ad41753e38f2139bee2a3..84675eac60a0b7000e0d09716317c8afa0d93e91 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
@@ -1028,7 +1028,7 @@ LilyPond マニュアルのほとんどの例はこの手法を用いていま
 結果は 2 つの譜が表示され、下の譜の符頭の色はデフォルトの黒のままとなります。
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.NoteHead #'color = #red
+\override Staff.NoteHead.color = #red
 \new Staff { a }
 @end lilypond
 
@@ -1043,7 +1043,7 @@ LilyPond マニュアルのほとんどの例はこの手法を用いていま
 
 @lilypond[quote,verbatim,relative=2]
 \new Staff {
-  \override Staff.NoteHead #'color = #red
+  \override Staff.NoteHead.color = #red
   a
 }
 @end lilypond
@@ -1133,7 +1133,7 @@ UTF-8 エンコードで保存されていない場合、@c
 譜として振舞うコンテキストを作ることで回避できます:
 
 @example
-\override VerticalAxisGroup #'staff-affinity = ##f
+\override VerticalAxisGroup.staff-affinity = ##f
 @end example
 
 @noindent
diff --git a/Documentation/ja/web/GNUmakefile b/Documentation/ja/web/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/learning/GNUmakefile b/Documentation/learning/GNUmakefile
deleted file mode 100644 (file)
index c93c9e0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 732874c1bb64fd8486588f77d1fcdaf75af6cb65..434890eb0b558c107926ebdc12c213904fd5e289 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Fundamental concepts
 @chapter Fundamental concepts
@@ -802,15 +802,15 @@ later sections.
   \\  % Voice two
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No voice three
   \\  % Voice four
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -852,15 +852,15 @@ not understand.
   \\  % Voice two
     { \voiceTwoStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   \\  % No Voice three (we want stems down)
   \\  % Voice four
     { \voiceThreeStyle
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -2325,7 +2325,7 @@ celloMusic = \relative c {
 
 @seealso
 The starting templates can be found in the @q{Templates} appendix,
-see @ref{Single staff}.
+see @ref{Single staff templates}.
 
 
 @node Four-part SATB vocal score
@@ -2437,8 +2437,8 @@ lower = \relative c, {
 @end lilypond
 
 None of the templates provides this layout exactly.  The nearest is
-@q{SATB vocal score and automatic piano reduction} -- see
-@ref{Vocal ensembles} -- but we need to change the layout and add a piano
+@ref{SATB vocal score and automatic piano reduction} -- but we need
+to change the layout and add a piano
 accompaniment which is not derived automatically from the vocal parts.
 The variables holding the music and words for the vocal parts are
 fine, but we shall need to add variables for the piano reduction.
@@ -2877,8 +2877,7 @@ so that the values are identical.
         @}
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with @{
-        \override VerticalAxisGroup
-          #'staff-staff-spacing  #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       @} <<
         \keyTime
         \clef "bass"
@@ -2941,8 +2940,7 @@ PedalOrganMusic = \relative c {
         }
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with {
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       } <<
         \keyTime
         \clef "bass"
@@ -3009,7 +3007,7 @@ macros, or user-defined commands) for tweaks:
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
 
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
 fthenp =_\markup {
   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
 }
@@ -3042,7 +3040,7 @@ the last line.
 violin = \relative c'' @{
   \repeat volta 2 @{
     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
-    \once \override TextScript #'padding = #5.0
+    \once \override TextScript.padding = #5.0
     c4.^"hi there!" d8 e' f g d |
     c,4.\markup @{
       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
@@ -3069,7 +3067,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
index 0b6bc00fa47d9ccfe132ac78c88593fe28715a99..2370ff1f3b77c72dbb21b3b28e7e00ef2948f1a1 100644 (file)
@@ -17,38 +17,47 @@ This section of the manual contains templates with the LilyPond score
 already set up for you.  Just add notes, run LilyPond, and enjoy
 beautiful printed scores!
 
-@c bad node name for ancient notation to avoid conflict
 @menu
-* Single staff::
+* Single staff templates::
 * Piano templates::
-* String quartet::
-* Vocal ensembles::
+* String quartet templates::
+* Vocal ensembles templates::
 * Orchestral templates::
 * Ancient notation templates::
 * Other templates::
 @end menu
 
 
-@node Single staff
-@appendixsec Single staff
+@node Single staff templates
+@appendixsec Single staff templates
+
+@menu
+* Notes only::
+* Notes and lyrics::
+* Notes and chords::
+* Notes lyrics and chords::
+@end menu
 
+@node Notes only
 @appendixsubsec Notes only
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc,addversion]
 {single-staff-template-with-only-notes.ly}
 
-
+@node Notes and lyrics
 @appendixsubsec Notes and lyrics
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc,addversion]
 {single-staff-template-with-notes-and-lyrics.ly}
 
+@node Notes and chords
 @appendixsubsec Notes and chords
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {single-staff-template-with-notes-and-chords.ly}
 
-@appendixsubsec Notes, lyrics, and chords.
+@node Notes lyrics and chords
+@appendixsubsec Notes, lyrics, and chords
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {single-staff-template-with-notes,-lyrics,-and-chords.ly}
@@ -57,69 +66,102 @@ beautiful printed scores!
 @node Piano templates
 @appendixsec Piano templates
 
+@menu
+* Solo piano::
+* Piano and melody with lyrics::
+* Piano centered lyrics::
+@end menu
+
+@node Solo piano
 @appendixsubsec Solo piano
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {piano-template-simple.ly}
 
+@node Piano and melody with lyrics
 @appendixsubsec Piano and melody with lyrics
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {piano-template-with-melody-and-lyrics.ly}
 
+@node Piano centered lyrics
 @appendixsubsec Piano centered lyrics
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {piano-template-with-centered-lyrics.ly}
 
 
-@node String quartet
-@appendixsec String quartet
+@node String quartet templates
+@appendixsec String quartet templates
 
+@menu
+* String quartet::
+* String quartet parts::
+@end menu
+
+@node String quartet
 @appendixsubsec String quartet
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {string-quartet-template-simple.ly}
 
+@node String quartet parts
 @appendixsubsec String quartet parts
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {string-quartet-template-with-separate-parts.ly}
 
 
-@node Vocal ensembles
-@appendixsec Vocal ensembles
+@node Vocal ensembles templates
+@appendixsec Vocal ensembles templates
 
+@menu
+* SATB vocal score::
+* SATB vocal score and automatic piano reduction::
+* SATB with aligned contexts::
+* SATB on four staves::
+* Solo verse and two-part refrain::
+* Hymn tunes::
+* Psalms::
+@end menu
+
+@node SATB vocal score
 @appendixsubsec SATB vocal score
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {vocal-ensemble-template.ly}
 
+@node SATB vocal score and automatic piano reduction
 @appendixsubsec SATB vocal score and automatic piano reduction
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {vocal-ensemble-template-with-automatic-piano-reduction.ly}
 
+@node SATB with aligned contexts
 @appendixsubsec SATB with aligned contexts
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly}
 
+@node SATB on four staves
 @appendixsubsec SATB on four staves
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {satb-choir-template---four-staves.ly}
 
+@node Solo verse and two-part refrain
 @appendixsubsec Solo verse and two-part refrain
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {vocal-ensemble-template-with-verse-and-refrain.ly}
 
+@node Hymn tunes
 @appendixsubsec Hymn tunes
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {hymn-template.ly}
 
+@node Psalms
 @appendixsubsec Psalms
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
@@ -129,21 +171,33 @@ beautiful printed scores!
 @node Orchestral templates
 @appendixsec Orchestral templates
 
+@menu
+* Orchestra choir and piano::
+@end menu
+
+@node Orchestra choir and piano
 @appendixsubsec Orchestra, choir and piano
+
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
 {orchestra,-choir-and-piano-template.ly}
 
 
-@c bad node name to avoid node name conflict
 @node Ancient notation templates
 @appendixsec Ancient notation templates
 
+@menu
+* Transcription of mensural music::
+* Gregorian transcription template::
+@end menu
+
+@node Transcription of mensural music
 @appendixsubsec Transcription of mensural music
 
 @c Line-width below is because of Issue 766.  If that's fixed, it can be removed.
 @lilypondfile[verbatim,quote,ragged-right,texidoc,line-width=140]
 {ancient-notation-template----modern-transcription-of-mensural-music.ly}
 
+@node Gregorian transcription template
 @appendixsubsec Gregorian transcription template
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc]
@@ -153,6 +207,11 @@ beautiful printed scores!
 @node Other templates
 @appendixsec Other templates
 
+@menu
+* Jazz combo::
+@end menu
+
+@node Jazz combo
 @appendixsubsec Jazz combo
 
 @c Line-width below is because of Issue 766.  If that's fixed, it can be removed.
index f4210b2e0d8bfa711c239e011491ff745eee6d58..cce7c46698b9112862822deb62b2d426cf9c417e 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Tweaking output
 @chapter Tweaking output
@@ -197,8 +197,7 @@ how this is done.
 The general syntax of this command is:
 
 @example
-\override @var{Context}.@var{LayoutObject} #'@var{layout-property} =
-#@var{value}
+\override @var{Context}.@var{LayoutObject}.@var{layout-property} = #@var{value}
 @end example
 
 @noindent
@@ -206,34 +205,40 @@ This will set the property with the name @var{layout-property} of the
 layout object with the name @var{LayoutObject}, which is a member of
 the @var{Context} context, to the value @var{value}.
 
-The @var{Context} can be omitted (and usually is) when the
+The @var{Context} may be omitted (and usually is) when the
 required context is unambiguously implied and is one of lowest
 level contexts, i.e., @code{Voice}, @code{ChordNames} or
 @code{Lyrics}, and we shall omit it in many of the following
 examples.  We shall see later when it must be specified.
 
 Later sections deal comprehensively with properties and their
-values, see @ref{Types of properties}.  But in this section we shall 
+values, see @ref{Types of properties}.  But in this section we shall
 use just a few simple properties and values which are easily
 understood in order to illustrate the format and use of these
 commands.
 
-For now, don't worry about the @code{#'}, which must precede the
-layout property, and the@tie{}@code{#}, which must precede the value.
-These must always be present in exactly this form.  This is the
-most common command used in tweaking, and most of the rest of
-this chapter will be directed to presenting examples of how it is
-used.  Here is a simple example to change the color of the
-note head:
+LilyPond's primary expressions are musical items like notes,
+durations, and markups.  More basic expressions like numbers,
+strings, and lists are processed in @q{Scheme mode}, which is
+invoked by prefixing the value with @samp{#}.  Although the
+values may sometimes have a valid representation in LilyPond's
+musical mode, this manual will always use @samp{#} for their
+entry for the sake of consistency.  For more information about
+Scheme mode, see @rextend{LilyPond Scheme syntax}.
+
+@code{\override} is the most common command used in tweaking, and
+most of the rest of this chapter will be directed to presenting
+examples of how it is used.  Here is a simple example to change the
+color of the note head:
 
 @cindex color property, example
 @cindex NoteHead, example of overriding
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a b c |
 @end lilypond
 
@@ -252,7 +257,7 @@ value; note, not its previous value if several @code{\override}
 commands have been issued.
 
 @example
-\revert @var{Context}.@var{LayoutObject} #'@var{layout-property}
+\revert @var{Context}.@var{LayoutObject}.@var{layout-property}
 @end example
 
 Again, just like @var{Context} in the @code{\override} command,
@@ -265,11 +270,11 @@ of the note head to the default value for the final two notes:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\override NoteHead #'color = #green
+\override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b4 c |
 @end lilypond
 
@@ -291,11 +296,11 @@ note like this:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4 d
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 e4 f |
-\once \override NoteHead #'color = #green
+\once \override NoteHead.color = #green
 g4 a
-\revert NoteHead #'color
+\revert NoteHead.color
 b c |
 @end lilypond
 
@@ -335,7 +340,7 @@ middle note head (the E) in a C major chord.  Let's first see what
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-\once \override NoteHead #'font-size = #-3
+\once \override NoteHead.font-size = #-3
 <c e g>4
 <c e g>4
 @end lilypond
@@ -360,7 +365,7 @@ a chord would be changed in this way:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 <c e g>4
-<c \tweak #'font-size #-3 e g>4
+<c \tweak font-size #-3 e g>4
 @end lilypond
 
 Note that the syntax of @code{\tweak} is different from that of the
@@ -371,7 +376,7 @@ also that an equals sign should not be present.  So the simple form
 of the @code{\tweak} command is
 
 @example
-\tweak #'@var{layout-property} #@var{value}
+\tweak @var{layout-property} #@var{value}
 @end example
 
 A @code{\tweak} command can also be used to modify just one in
@@ -382,8 +387,8 @@ a series of articulations, as shown here:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4^"Black"
-  -\tweak #'color #red ^"Red"
-  -\tweak #'color #green _"Green"
+  -\tweak color #red ^"Red"
+  -\tweak color #green _"Green"
 @end lilypond
 
 @noindent
@@ -402,14 +407,15 @@ the layout object, provided that LilyPond can trace its origin back to
 the original event:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<\tweak Accidental #'color #red   cis4
- \tweak Accidental #'color #green es
                                 g>
+<\tweak Accidental.color #red   cis4
+ \tweak Accidental.color #green es
+ g>
 @end lilypond
 
 This long form of the @code{\tweak} command can be described as
+
 @example
-\tweak @var{layout-object} #'@var{layout-property} @var{value}
+\tweak @var{layout-object}.@var{layout-property} @var{value}
 @end example
 
 @cindex tuplets, nested
@@ -437,9 +443,9 @@ printed in red on the first short tuplet bracket.
 @cindex color property, example
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\tweak #'direction #up
+\tweak direction #up
 \times 4/3 {
-  \tweak #'color #red
+  \tweak color #red
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
@@ -455,16 +461,13 @@ appearance may be modified in the usual way with
 @cindex transparent property, example
 @cindex TupletNumber, example of overriding
 
-@c NOTE Tuplet brackets collide if notes are high on staff
-@c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \times 2/3 { c8[ c c] }
-\once \override TupletNumber
-  #'text = #tuplet-number::calc-fraction-text
+\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
 \times 2/3 {
   c8[ c]
   c8[ c]
-  \once \override TupletNumber #'transparent = ##t
+  \once \override TupletNumber.transparent = ##t
   \times 2/3 { c8[ c c] }
   \times 2/3 { c8[ c c] }
 }
@@ -597,11 +600,10 @@ the context.  Let's use a very large value for the thickness
 at first, so we can be sure the command is working.  We get:
 
 @example
-\override Slur #'thickness = #5.0
+\override Slur.thickness = #5.0
 @end example
 
-Don't forget the @code{#'} preceding the
-property name and a@tie{}@code{#} preceding the new value!
+Don't forget the@tie{}@code{#} preceding the new value!
 
 The final question is, @q{Where should this command be
 placed?}  While you are unsure and learning, the best
@@ -617,7 +619,7 @@ close to it.}  Let's do that:
   \time 6/8
   {
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     r4 bes8 bes[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -687,7 +689,7 @@ repositioned as follows:
   {
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes8[( g]) g |
     g8[( es]) es d[( f]) as |
     as8 g
@@ -727,10 +729,10 @@ the slurs begin:
   {
     r4 bes8
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     bes[( g]) g |
     % Increase thickness of immediately following slur only
-    \once \override Slur #'thickness = #5.0
+    \once \override Slur.thickness = #5.0
     g8[( es]) es d[( f]) as |
     as8 g
   }
@@ -755,11 +757,11 @@ after the second slur:
   {
     r4 bes8
     % Increase thickness of all following slurs from 1.2 to 5.0
-    \override Slur #'thickness = #5.0
+    \override Slur.thickness = #5.0
     bes[( g]) g |
     g8[( es]) es
     % Revert thickness of all following slurs to default of 1.2
-    \revert Slur #'thickness
+    \revert Slur.thickness
     d8[( f]) as |
     as8 g
   }
@@ -832,23 +834,18 @@ to change the lyrics to italics.  The object is @code{LyricText},
 the property is @code{font-shape} and the value is
 @code{italic}.  As before, we'll omit the context.
 
-As an aside, although it is an important one, note that because the
-values of @code{font-shape} are symbols they must be introduced with a
-single apostrophe, @code{'}.  That is why apostrophes are needed
-before @code{thickness} in the earlier example and @code{font-shape}.
-These are both symbols too.  Symbols are then read internally by
-LilyPond.  Some of them are the names of properties, like
-@code{thickness} or @code{font-shape}, others are used as values that
-can be given to properties, like @code{italic}.  Note the distinction
-from arbitrary text strings, which would appear as @code{"a text
-string"}; for more details about symbols and strings, see
-@rextend{Scheme tutorial}.
+As an aside, although it is an important one, note that some
+properties take values that are symbols, like @code{italic}, and
+must be preceded by an apostrophe, @code{'}.  Symbols are then
+read internally by LilyPond.  Note the distinction from arbitrary
+text strings, which would appear as @code{"a text string"}; for
+more details about symbols and strings, see @rextend{Scheme tutorial}.
 
 So we see that the @code{\override} command needed to print the lyrics
 in italics is:
 
 @example
-\override LyricText #'font-shape = #'italic
+\override LyricText.font-shape = #'italic
 @end example
 
 @noindent
@@ -870,7 +867,7 @@ like so:
     as8 g
   }
   \addlyrics {
-    \override LyricText #'font-shape = #'italic
+    \override LyricText.font-shape = #'italic
     The man who | feels love's sweet e -- | mo -- tion
   }
 }
@@ -879,33 +876,9 @@ like so:
 @noindent
 and the lyrics are all printed in italics.
 
-@subheading Specifying the context in lyric mode
-
-@cindex context, specifying in lyric mode
-@cindex lyric mode, specifying context
-
-In the case of lyrics, if you try specifying the context in the
-format given earlier the command will fail.  A syllable
-entered in lyricmode is terminated by either a space,
-a newline or a digit.  All other characters are included
-as part of the syllable.  For this reason a space or newline
-must appear before the terminating @code{@}} to prevent it being
-included as part of the final syllable.  Similarly,
-spaces must be inserted before and after the
-period or dot, @q{.}, separating the context name from the
-object name, as otherwise the two names are run together and
-the interpreter cannot recognize them.  So the command should be:
-
-@example
-\override Lyrics . LyricText #'font-shape = #'italic
-@end example
-
 @warning{In lyrics always leave whitespace between the final
 syllable and the terminating brace.}
 
-@warning{In overrides in lyrics always place spaces around
-the dot between the context name and the object name.}
-
 
 @seealso
 Extending: @rextend{Scheme tutorial}.
@@ -1045,7 +1018,7 @@ the implied Context, @code{Voice}:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override BarLine #'stencil = ##f
+  \override BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1070,14 +1043,27 @@ it by adding the correct context:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'stencil = ##f
+  \override Staff.BarLine.stencil = ##f
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
 }
 @end lilypond
 
-Now the bar lines have vanished.
+Now the bar lines have vanished.  Setting the @code{stencil}
+property to @code{#f} is such a frequent operation that there is a
+shorthand for it called @code{\omit}:
+@funindex \omit
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \omit Staff.BarLine
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
 
 Note, though, that setting the @code{stencil} property to @code{#f}
 will cause errors when the dimensions of the object are required for
@@ -1090,7 +1076,7 @@ with zero size:
 @lilypond[quote,verbatim,relative=2]
 {
   c4 c
-  \once \override NoteHead #'stencil = #point-stencil
+  \once \override NoteHead.stencil = #point-stencil
   c4 c
 }
 @end lilypond
@@ -1104,10 +1090,11 @@ We see from the @code{BarLine} properties in the IR that the
 These control respectively whether bar lines are printed at the end of
 a line, in the middle of lines, and at the beginning of lines.  For
 our example we want all bar lines to be suppressed, so the value we
-need is @code{'#(#f #f #f)}.  Let's try that, remembering to include
+need is @code{#(#f #f #f)} (also available
+under the name @code{all-invisible}).  Let's try that, remembering to include
 the @code{Staff} context.  Note also that in writing this value we
-have @code{#'#} before the opening bracket.  The @code{'#} is required
-as part of the value to introduce a vector, and the first@tie{}@code{#} is
+have @code{##} before the opening parenthesis.  One @code{#} is required
+as part of vector constant syntax, and the first@tie{}@code{#} is
 required, as always, to precede the value itself in the
 @code{\override} command.
 
@@ -1117,7 +1104,7 @@ required, as always, to precede the value itself in the
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
+  \override Staff.BarLine.break-visibility = ##(#f #f #f)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1149,7 +1136,7 @@ transparent is:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'transparent = ##t
+  \override Staff.TimeSignature.transparent = ##t
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1157,7 +1144,24 @@ transparent is:
 @end lilypond
 
 @noindent
-The time signature is gone, but this command leaves a gap where
+Again, setting the @code{transparent} property is a rather
+frequent operation, so we have a shorthand for it called
+@code{\hide}:
+@funindex \hide
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \hide Staff.TimeSignature
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+In either case, the time signature is gone, but this command
+leaves a gap where
 the time signature should be.  Maybe this is what is wanted for
 an exercise for the student to fill it in, but in other
 circumstances a gap might be undesirable.  To remove it, the
@@ -1170,7 +1174,7 @@ instead:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.TimeSignature #'stencil = ##f
+  \omit Staff.TimeSignature
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1179,7 +1183,9 @@ instead:
 
 @noindent
 and the difference is obvious: setting the stencil to @code{#f}
+(possibly via @code{\omit})
 removes the object entirely; making the object @code{transparent}
+(which can be done using @code{\hide})
 leaves it where it is, but makes it invisible.
 
 @subheading color
@@ -1211,7 +1217,7 @@ we write:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #white
+  \override Staff.BarLine.color = #white
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1221,11 +1227,11 @@ we write:
 @noindent
 and again, we see the bar lines are not visible.  Note that
 @emph{white} is not preceded by an apostrophe -- it is not
-a symbol, but a @emph{function}.  When called, it provides
+a symbol, but a @emph{variable}.  When evaluated, it provides
 the list of internal values required to set the color to
-white.  The other colors in the normal list are functions
+white.  The other colors in the normal list are variables
 too.  To convince yourself this is working you might like
-to change the color to one of the other functions in the
+to change the color to one of the other variables in the
 list.
 
 @cindex color, X11
@@ -1235,9 +1241,9 @@ list.
 
 The second way of changing the color is to use the list of
 X11 color names in the second list in @ruser{List of colors}.
-However, these must be preceded by another function, which
-converts X11 color names into the list of internal values,
-@code{x11-color}, like this:
+However, these are mapped to the actual values by the function
+@code{x11-color} which
+converts X11 color symbols into the list of internal values like this:
 
 @cindex BarLine, example of overriding
 @cindex color property, example
@@ -1245,7 +1251,7 @@ converts X11 color names into the list of internal values,
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(x11-color 'white)
+  \override Staff.BarLine.color = #(x11-color 'white)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1255,14 +1261,15 @@ converts X11 color names into the list of internal values,
 @noindent
 Note that in this case the function @code{x11-color} takes
 a symbol as an argument, so the symbol must be preceded by
-an apostrophe and the two enclosed in brackets.
+an apostrophe to keep it from being evaluated as a variable, and
+the whole function call has to be enclosed in parentheses.
 
 @cindex rgb colors
 @cindex color, rgb
 
 @funindex rgb-color
 
-There is yet a third function, one which converts RGB values into
+There is another function, one which converts RGB values into
 internal colors -- the @code{rgb-color} function.  This takes
 three arguments giving the intensities of the red, green and
 blue colors.  These take values in the range 0 to 1.  So to
@@ -1275,7 +1282,7 @@ and to white it should be @code{(rgb-color 1 1 1)}:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.BarLine #'color = #(rgb-color 1 1 1)
+  \override Staff.BarLine.color = #(rgb-color 1 1 1)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1300,12 +1307,12 @@ various shades of grey:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
-  \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
-  \override Staff.TimeSignature #'color = #(x11-color 'grey60)
-  \override Staff.Clef          #'color = #(x11-color 'grey60)
-  \override Voice.NoteHead      #'color = #(x11-color 'grey85)
-  \override Voice.Stem          #'color = #(x11-color 'grey85)
-  \override Staff.BarLine       #'color = #(x11-color 'grey10)
+  \override Staff.StaffSymbol.color = #(x11-color 'grey30)
+  \override Staff.TimeSignature.color = #(x11-color 'grey60)
+  \override Staff.Clef.color = #(x11-color 'grey60)
+  \override Voice.NoteHead.color = #(x11-color 'grey85)
+  \override Voice.Stem.color = #(x11-color 'grey85)
+  \override Staff.BarLine.color = #(x11-color 'grey10)
   c4 b8 c d16 c d8 |
   g,8 a16 b8 c d4 e16 |
   e8
@@ -1361,7 +1368,7 @@ we simply set the stencil of each to @code{#f}, as follows:
 
 @cindex alignAboveContext property, example
 @cindex @code{\with}, example
-@cindex stencil property, example
+@funindex \omit
 @cindex Clef, example of overriding
 @cindex TimeSignature, example of overriding
 
@@ -1376,8 +1383,8 @@ we simply set the stencil of each to @code{#f}, as follows:
         alignAboveContext = #"main"
       }
       {
-        \override Staff.Clef #'stencil = ##f
-        \override Staff.TimeSignature #'stencil = ##f
+        \omit Staff.Clef
+        \omit Staff.TimeSignature
         { f8 f c }
       }
     >>
@@ -1393,7 +1400,9 @@ to the ossia staff.
 
 But what is the difference between modifying the staff context by
 using @code{\with} and modifying the stencils of the clef and the
-time signature with \override?  The main difference is that
+time signature with @code{\override}, or in this case
+@code{\omit}?
+The main difference is that
 changes made in a @code{\with} clause are made at the time the
 context is created, and remain in force as the @strong{default}
 values for the duration of that context, whereas
@@ -1436,9 +1445,34 @@ So we could replace the example above with
       \new Staff \with {
         alignAboveContext = #"main"
         % Don't print clefs in this staff
-        \override Clef #'stencil = ##f
+        \override Clef.stencil = ##f
+        % Don't print time signatures in this staff
+        \override TimeSignature.stencil = ##f
+      }
+      { f8 f c }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+It turns out that we can also employ the shorthands @code{\hide}
+and @code{\omit} for setting the @code{transparent} property and
+clearing the @code{stencil} here, leading to the result
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f8 c c }
+      \new Staff \with {
+        alignAboveContext = #"main"
+        % Don't print clefs in this staff
+        \omit Clef
         % Don't print time signatures in this staff
-        \override TimeSignature #'stencil = ##f
+        \omit TimeSignature
       }
       { f8 f c }
     >>
@@ -1467,7 +1501,7 @@ fonts of each object type, like @code{NoteHead}s with commands
 like
 
 @example
-\override NoteHead #'font-size = #-2
+\override NoteHead.font-size = #-2
 @end example
 
 or we can change the size of all fonts by setting a special
@@ -1499,8 +1533,8 @@ Let's try it in our ossia example:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \omit Clef
+        \omit TimeSignature
         % Reduce all font sizes by ~24%
         fontSize = #-2
       }
@@ -1565,11 +1599,11 @@ objects in proportion.  It is used like this:
       { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
-        \override Clef #'stencil = ##f
-        \override TimeSignature #'stencil = ##f
+        \omit Clef
+        \omit TimeSignature
         fontSize = #-2
         % Reduce stem length and line spacing to match
-        \override StaffSymbol #'staff-space = #(magstep -2)
+        \override StaffSymbol.staff-space = #(magstep -2)
       }
       { f8 f c }
     >>
@@ -1725,11 +1759,11 @@ default behavior.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4 g c a |
-\override Stem #'direction = #DOWN
+\override Stem.direction = #DOWN
 a4 g c a |
-\override Stem #'direction = #UP
+\override Stem.direction = #UP
 a4 g c a |
-\revert Stem #'direction
+\revert Stem.direction
 a4 g c a |
 @end lilypond
 
@@ -1787,12 +1821,12 @@ the commonest.  The meaning of each is stated where it is not obvious.
   @tab Tuplets are below/above notes
 @end multitable
 
-Note that these predefined commands may @strong{not} be
+The neutral/normal variants of these commands are implemented
+using @code{\revert} and may @strong{not} be
 preceded by @code{\once}.  If you wish to limit the
-effect to a single note you must either use the equivalent
-@code{\once \override} command or use the predefined command
-followed after the affected note by the corresponding
-@code{\xxxNeutral} command.
+effect of the other commands (which are implemented using
+@code{\override}) to a single timestep, you can precede them with
+@code{\once} like you would do with explicit overrides.
 
 @unnumberedsubsubsec Fingering
 
@@ -1816,9 +1850,9 @@ specifying @code{DOWN} and @code{UP}:
 
 @lilypond[quote,verbatim,relative=2]
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #DOWN
+\override Fingering.direction = #DOWN
 c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #UP
+\override Fingering.direction = #UP
 c4-5 a-3 f-1 c'-5 |
 @end lilypond
 
@@ -1921,7 +1955,7 @@ could be reduced.  The default value can be seen from the
 try @w{@code{-7}}:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering #'font-size = #-7
+\override Fingering.font-size = #-7
 \set fingeringOrientations = #'(left)
 <f-2>4
 <c-1 e-2 g-3 b-5>4
@@ -2019,7 +2053,7 @@ these.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
@@ -2069,12 +2103,12 @@ in the @code{Staff} context:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
 % Place following Ottava Bracket below Text Spanners
-\once \override Staff.OttavaBracket #'outside-staff-priority = #340
+\once \override Staff.OttavaBracket.outside-staff-priority = #340
 % Start Ottava Bracket
 \ottava #1
 c'4 \startTextSpan
@@ -2117,10 +2151,10 @@ example showing the effect of the two methods:
 @lilypond[quote,verbatim,relative=2]
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 c4(
-\once \override TextScript #'avoid-slur = #'inside
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.avoid-slur = #'inside
+\once \override TextScript.outside-staff-priority = ##f
 c4^\markup { \tiny \sharp } d4.) c8 |
-\once \override Slur #'outside-staff-priority = #500
+\once \override Slur.outside-staff-priority = #500
 c4( c^\markup { \tiny \sharp } d4.) c8 |
 @end lilypond
 
@@ -2139,7 +2173,7 @@ in the IR or in the tables above, and increase the priority of
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c2^"Text2" |
-\once \override TextScript #'outside-staff-priority = #500
+\once \override TextScript.outside-staff-priority = #500
 c2^"Text3"
 c2^"Text4" |
 @end lilypond
@@ -2199,12 +2233,12 @@ c,,2^"Text" c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 c,,2^"Long Text   " c'' |
 R1 |
 
 % Turn off collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
 \textLengthOn        % and turn on textLengthOn
 c,,2^"Long Text   "  % Spaces at end are honored
 c''2 |
@@ -2282,7 +2316,7 @@ must override this value of @code{extra-spacing-width} to
 the command to do this for dynamic text:
 
 @example
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 @end example
 
 @noindent
@@ -2293,7 +2327,7 @@ Let's see if this works in our previous example:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(0 . 0)
 a4\f b\mf c\mp b\p |
 @end lilypond
 
@@ -2314,7 +2348,7 @@ right edge half a unit to the right should do it:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 staff space
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2585,7 +2619,7 @@ above or below notes.
 
 @lilypond[quote,fragment,relative=1,verbatim]
 c2\fermata
-\override Script #'padding = #3
+\override Script.padding = #3
 b2\fermata
 @end lilypond
 
@@ -2594,11 +2628,11 @@ b2\fermata
 
 @lilypond[quote,fragment,relative=1,verbatim]
 % This will not work, see below
-\override MetronomeMark #'padding = #3
+\override MetronomeMark.padding = #3
 \tempo 4 = 120
 c1 |
 % This works
-\override Score.MetronomeMark #'padding = #3
+\override Score.MetronomeMark.padding = #3
 \tempo 4 = 80
 d1 |
 @end lilypond
@@ -2637,15 +2671,13 @@ sesquisharp = \markup { \sesquisharp }
 \relative c'' {
   c4
   % This prints a sesquisharp but the spacing is too small
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 c
   % This improves the spacing
-  \once \override Score.AccidentalPlacement #'right-padding = #0.6
-  \once \override Accidental
-    #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #sesquisharp
+  \once \override Score.AccidentalPlacement.right-padding = #0.6
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
   cis4 |
 }
 @end lilypond
@@ -2682,9 +2714,9 @@ example taken from the previous section:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 unit
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 % Align dynamics to a base line 2 units above staff
-\override DynamicLineSpanner #'staff-padding = #2
+\override DynamicLineSpanner.staff-padding = #2
 a4\f b\mf c\mp b\p
 @end lilypond
 
@@ -2701,7 +2733,7 @@ right edge with the reference point of the parent note:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
 <a\2>
-\once \override StringNumber #'self-alignment-X = #RIGHT
+\once \override StringNumber.self-alignment-X = #RIGHT
 <a\2>
 @end lilypond
 
@@ -2734,7 +2766,7 @@ move it, say, four half-staff spaces down to @w{@code{-8}}.
 <<
   { c4 c c c }
   \\
-  \override MultiMeasureRest #'staff-position = #-8
+  \override MultiMeasureRest.staff-position = #-8
   { R1 }
 >>
 @end lilypond
@@ -2761,7 +2793,7 @@ the left, and 1.8 staff space downwards:
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f4-5
-\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
 f4-5
 @end lilypond
 
@@ -2805,7 +2837,7 @@ also resolves the rather nasty shape.
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
-\once \override PhrasingSlur #'positions = #'(-4 . -3)
+\once \override PhrasingSlur.positions = #'(-4 . -3)
 \acciaccatura e8\( d8 c~ c d c d\)
 @end lilypond
 
@@ -2843,7 +2875,7 @@ say, 1:
     { c'1 ~ c'2. e'8 f' }
     \\
     {
-      \override Beam #'positions = #'(-1 . -1)
+      \override Beam.positions = #'(-1 . -1)
       e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
     }
   >>
@@ -2906,13 +2938,13 @@ Here's the final result:
     \\
     {
       <ees, c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
     \\
     \\
     {
-      \override NoteColumn #'force-hshift = #0
+      \override NoteColumn.force-hshift = #0
       aes'2 f4 fes
     }
   >> |
@@ -2945,7 +2977,7 @@ dynamics, fingering and pedalling.
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -2958,7 +2990,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column
         % so the merge will work
         \shiftOnn
@@ -2970,8 +3002,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3147,7 +3179,7 @@ spaces relative to the center line of the staff.  So the following
 override placed just before the first tied note would move the tie up
 to 3.5 half staff spaces above the center line:
 
-@code{\once \override Tie #'staff-position = #3.5}
+@code{\once \override Tie.staff-position = #3.5}
 
 This completes bar two, giving:
 
@@ -3156,7 +3188,7 @@ This completes bar two, giving:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3235,7 +3267,7 @@ to the end, giving:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3309,7 +3341,7 @@ Applying these changes gives:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3379,7 +3411,7 @@ the @code{force-hshift} property.  Here's the final result:
 rhMusic = \relative c'' {
   \new Voice {
     r2 c4.\( g8 |
-    \once \override Tie #'staff-position = #3.5
+    \once \override Tie.staff-position = #3.5
     bes1~ |
     \bar "||"
     \time 6/4
@@ -3393,7 +3425,7 @@ rhMusic = \relative c'' {
         \voiceTwo
         c,8~
         % Reposition the c2 to the right of the merged note
-        \once \override NoteColumn #'force-hshift = #1.0
+        \once \override NoteColumn.force-hshift = #1.0
         % Move the c2 out of the main note column
         % so the merge will work
         \shiftOnn
@@ -3405,8 +3437,8 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem #'transparent ##t
-        \tweak Flag #'transparent ##t
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
         d2
       }
       \new Voice {
@@ -3488,8 +3520,8 @@ cross voices:
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
     b8~ b\noBeam
   }
 \\
@@ -3504,9 +3536,9 @@ too much, we can lengthen the stem by setting the
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem #'transparent ##t
-    \tweak Flag #'transparent ##t
-    \tweak Stem #'length #8
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
+    \tweak Stem.length #8
     b8~ b\noBeam
   }
 \\
@@ -3514,6 +3546,35 @@ too much, we can lengthen the stem by setting the
 >>
 @end lilypond
 
+@funindex \single
+@cindex tweak, generated from override
+Now for @emph{overriding} the transparency of a graphical object,
+we could have used the shorthand @code{\hide} as explained above.
+Tweaking is a different operation, affecting only properties
+generated from a single music expression.  It turns out that we
+can convert overrides into tweaks using @code{\single}, making it
+possible to rewrite the above example as
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+  {
+    \single \hide Stem
+    \single \hide Flag
+    \tweak Stem.length #8
+    b8~ b\noBeam
+  }
+\\
+  { b8[ g] }
+>>
+@end lilypond
+
+In this particular case, the difference to @code{\once \hide} is
+not apparent.  It is important when there are several objects at
+the same point in musical time (like noteheads in a chord).  In
+that case, @code{\once} will affect all of those objects while
+@code{\single} will only affect a single one, the one generated by
+the immediately following music expression.
+
 @subheading Simulating a fermata in MIDI
 
 @cindex stencil property, use of
@@ -3544,7 +3605,7 @@ We show here the effect of the two methods:
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'transparent = ##t
+    \once \hide Score.MetronomeMark
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata |
@@ -3566,7 +3627,7 @@ We show here the effect of the two methods:
     % Visible tempo marking
     \tempo 4=120
     a4 a a
-    \once \override Score.MetronomeMark #'stencil = ##f
+    \once \omit Score.MetronomeMark
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata |
@@ -3610,11 +3671,11 @@ themselves prevents their use in simple variables.  As an
 alternative can we use @code{\override} and @code{\revert} commands?
 
 @example
-@code{\override Lyrics . LyricText #'font-shape = #'italic}
-@code{\override Lyrics . LyricText #'font-series = #'bold}
+@code{\override Lyrics.LyricText.font-shape = #'italic}
+@code{\override Lyrics.LyricText.font-series = #'bold}
 
-@code{\revert Lyrics . LyricText #'font-shape}
-@code{\revert Lyrics . LyricText #'font-series}
+@code{\revert Lyrics.LyricText.font-shape}
+@code{\revert Lyrics.LyricText.font-series}
 @end example
 
 These would also be extremely tedious to enter if there were many
@@ -3632,13 +3693,13 @@ for the variables to make them quicker to type:
 
 @lilypond[quote,verbatim]
 emphasize = {
-  \override Lyrics.LyricText #'font-shape = #'italic
-  \override Lyrics.LyricText #'font-series = #'bold
+  \override Lyrics.LyricText.font-shape = #'italic
+  \override Lyrics.LyricText.font-series = #'bold
 }
 
 normal = {
-  \revert Lyrics.LyricText #'font-shape
-  \revert Lyrics.LyricText #'font-series
+  \revert Lyrics.LyricText.font-shape
+  \revert Lyrics.LyricText.font-series
 }
 
 global = { \key c \major \time 4/4 \partial 4 }
@@ -3822,17 +3883,17 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -3855,17 +3916,17 @@ inst =
 \layout{
   \context {
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context {
     \Staff
-    \override TimeSignature #'style = #'numbered
+    \override TimeSignature.style = #'numbered
   }
   \context {
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -3908,16 +3969,16 @@ inst =
 \layout@{
   \context @{
     \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   @}
   \context @{
     \Staff
   @}
   \context @{
     \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   @}
 @}
 @end example
@@ -3941,12 +4002,12 @@ inst =
 
 \layout{
   \context { \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
   }
   \context { \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
   }
 }
 
@@ -4067,8 +4128,8 @@ example, @code{/tieDotted} is defined to be:
 
 @example
 tieDotted = @{
-  \override Tie #'dash-period = #0.75
-  \override Tie #'dash-fraction = #0.1
+  \override Tie.dash-period = #0.75
+  \override Tie.dash-fraction = #0.1
 @}
 @end example
 
@@ -4169,7 +4230,7 @@ the staff.
 
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
-  \override NoteHead #'color = #color-notehead
+  \override NoteHead.color = #color-notehead
   a2 b | c2 d | e2 f | g2 a |
 }
 @end lilypond
index 4a8f2eb72f0e28a0f003389cce973b062932da2a..bf09cbff12f089f4d6f0bac4460b8c9a0ac5102c 100644 (file)
@@ -2,7 +2,6 @@ depth = ../..
 
 STEPMAKE_TEMPLATES=documentation
 XPM_FILES=$(call src-wildcard,*.xpm)
-EXTRA_DIST_FILES= $(XPM_FILES)
 
 lilypond-icon = $(outdir)/lilypond.ico
 ly-icon = $(outdir)/ly.ico
index fa5bda56203e6c09621bb7cc4502da2dea625fd7..36779a38f4d5b9f9e86de62872e7fe712adb61f9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \include "example-header.ily"
 
 \paper {
 %%%%%%%%%%% INCIPIT DEFS %%%%%%%%%%
 
 incipitGlobal = {
-               \override NoteHead   #'style = #'mensural
-               \override Accidental #'style = #'mensural
-               \override KeySignature #'style = #'mensural
-               \override Rest #'style = #'mensural
-%              \override Staff.TimeSignature #'style = #'mensural
+               \override NoteHead.style = #'mensural
+               \override Accidental.style = #'mensural
+               \override KeySignature.style = #'mensural
+               \override Rest.style = #'mensural
+%              \override Staff.TimeSignature.style = #'mensural
                \cadenzaOn
-         \override Score.Clef #'extra-offset = #'(-0.0 . 0.5)
-         \override Score.Clef #'font-size = #3
+         \override Score.Clef.extra-offset = #'(-0.0 . 0.5)
+         \override Score.Clef.font-size = #3
          \clef "vaticana-do1"
 }
 
@@ -94,10 +94,10 @@ incipitTenor = \markup{
 incipitBassus = \markup{
     \score{ {
     \set Staff.instrumentName = "Bassus  "
-    \override NoteHead   #'style = #'neomensural
-               \override Accidental #'style = #'neomensural
-       \override Rest #'style = #'neomensural
-       \override Staff.TimeSignature #'style = #'neomensural
+    \override NoteHead.style = #'neomensural
+               \override Accidental.style = #'neomensural
+       \override Rest.style = #'neomensural
+       \override Staff.TimeSignature.style = #'neomensural
        \cadenzaOn
        \clef "petrucci-f3"
        \key f \major
@@ -121,12 +121,12 @@ incipitBassus = \markup{
 #(ly:set-option 'point-and-click #f)
 
 global = {
-  \override Staff.TimeSignature #'stencil = #(lambda (grob)
+  \override Staff.TimeSignature.stencil = #(lambda (grob)
        (bracketify-stencil (ly:time-signature::print grob) Y 0.1 0.2 0.1))
   \time 3/4
-       \override Staff.BarLine #'transparent = ##t
-  \override HorizontalBracket #'direction = #UP
-  \override HorizontalBracket #'bracket-flare = #'(0 . 0)
+       \override Staff.BarLine.transparent = ##t
+  \override HorizontalBracket.direction = #UP
+  \override HorizontalBracket.bracket-flare = #'(0 . 0)
 }
 
 %%%%%%%%% MACRO FOR MAKING SLASHES THROUGH STEMS %%%%%%%%%%
@@ -135,7 +135,7 @@ thick y-factor offset)
                                     (number? number? number? number? number?
 pair?)
 #{
-\once \override Voice.Stem #'text = \markup {
+\once \override Voice.Stem.text = \markup {
     \postscript #(let ((x-off (car offset))
                        (y-off (cdr offset)))
     (string-append
@@ -154,7 +154,7 @@ thick)) " moveto "
 270 90 arc "
                                              " gsave fill grestore stroke")) }
 
-\once \override Voice.Stem #'stencil = #(lambda (grob)
+\once \override Voice.Stem.stencil = #(lambda (grob)
     (let* ((sten1 (ly:stem::print grob))
            (sten2 (ly:text-interface::print grob))
            (extent1 (ly:stencil-extent sten1 Y))
@@ -182,8 +182,8 @@ triplumNotes = \relative c' {
   \clef "treble_8"
        %\set Staff.midiInstrument = "flute"
 %      \global
-       \override StemTremolo #'beam-thickness = #.125
-       \override StemTremolo #'slope = #1.0
+       \override StemTremolo.beam-thickness = #.125
+       \override StemTremolo.slope = #1.0
   f8 f4 e8 d c f f f | % 1
        % the \scaleDurations command below makes 5 notes last the
        % duration of a dotted quarter
index 951e99ff738388a72ed075bb3547dfe497877c9b..ea861ec404e937115b5feb5042d84d8dcff6e726 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 %\include "example-header.ily"
 
 
@@ -30,7 +30,7 @@
 global = {
    \key c \minor
    \time 4/4
-   \accidentalStyle "default"
+   \accidentalStyle default
 }
 
 halsup = {
index 721427eacbec533f6bce37e44842342f9ac3229c..749976a250f434b2cd71971d38175f530709d358 100644 (file)
@@ -13,9 +13,9 @@
 % 'Add color...' sections are not the original author's, but added
 % afterwards specifically for illustration in LilyPond's Documentation.
 
-I = \once \override NoteColumn #'ignore-collision = ##t
+I = \once \override NoteColumn.ignore-collision = ##t
 
-\version "2.16.0"
+\version "2.17.6"
 
 staffPiano = \new PianoStaff {
   \set Score.timing = ##f
@@ -25,13 +25,12 @@ staffPiano = \new PianoStaff {
       \clef treble
       \key g \major
       \relative c'' {
-       \override Staff.NoteCollision
-       #'merge-differently-headed = ##t
+       \override Staff.NoteCollision.merge-differently-headed = ##t
        <<
          {
-           \override Beam #'positions = #'(8 . 8)
-           \override NoteHead #'transparent = ##t
-           \override NoteHead #'duration-log = #1
+           \override Beam.positions = #'(8 . 8)
+           \override NoteHead.transparent = ##t
+           \override NoteHead.duration-log = #1
            s1 b8[^\markup {
              \override #'(baseline-skip . 0.5)
               % Add color to markup in top staff
@@ -48,42 +47,41 @@ staffPiano = \new PianoStaff {
              \column { \with-color #red \small { ^ 1 } }
            }
            s4.
-           \revert Beam #'positions
-           \revert NoteHead #'transparent
-           \revert NoteHead #'duration-log
+           \revert Beam.positions
+           \revert NoteHead.transparent
+           \revert NoteHead.duration-log
          }
        \\
          {
             % Add color to both Dashed Slurs in top staff
-            \override Slur #'color = #(x11-color "purple")
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
+            \override Slur.color = #(x11-color "purple")
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
            s1
-           \once \override Slur #'height-limit = #6
-           \once \override Slur #'extra-offset = #'(1.25 . 0)
+           \once \override Slur.height-limit = #6
+           \once \override Slur.extra-offset = #'(1.25 . 0)
            \slurDashed
            \I b2_( s2
-           \once \override NoteHead #'transparent = ##t
+           \once \override NoteHead.transparent = ##t
            b4) s
-           \once \override Slur #'height-limit = #3.25
-           \once \override Slur #'extra-offset = #'(.75 . 0)
+           \once \override Slur.height-limit = #3.25
+           \once \override Slur.extra-offset = #'(.75 . 0)
            a2_( s4
-           \once \override NoteHead #'transparent = ##t
+           \once \override NoteHead.transparent = ##t
            a4) g2
-           \revert Stem #'transparent
-           \revert Flag #'transparent
+           \revert Stem.transparent
+           \revert Flag.transparent
          }
        \\
-         \override Staff.NoteCollision
-         #'merge-differently-headed = ##t
+         \override Staff.NoteCollision.merge-differently-headed = ##t
          {
-           \override Beam #'positions = #'(4 . -3.25)
+           \override Beam.positions = #'(4 . -3.25)
            \stemUp
            g8[ s s4 s2
            \stemDown
-           \once \override NoteHead #'transparent = ##t
+           \once \override NoteHead.transparent = ##t
            \I b8] s8
-           \override Beam #'positions = #'(3 . -2.25)
+           \override Beam.positions = #'(3 . -2.25)
            \stemUp
            a8[ s s4
            \stemDown
@@ -92,58 +90,58 @@ staffPiano = \new PianoStaff {
        \\
          {
             % Add color to all remaining Slurs in top staff
-            \override Slur #'color = #(x11-color "violet")
-            \override PhrasingSlur #'color = #(x11-color "violet")
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \override Stem #'length = #0
+            \override Slur.color = #(x11-color "violet")
+            \override PhrasingSlur.color = #(x11-color "violet")
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \override Stem.length = #0
             % Add color to text markups in top staff
            g4_\( fis^(_\markup { \with-color #blue \tiny N } g)\)
            a^(^\markup { \with-color #blue \tiny P } b2)
            b4^(^\markup { \with-color #blue \tiny P }
            \stemUp
-           \revert Stem #'transparent
-           \revert Flag #'transparent
-           \override Stem #'length = #10
+           \revert Stem.transparent
+           \revert Flag.transparent
+           \override Stem.length = #10
            c8)^( s
-           \override Stem #'length = #14
+           \override Stem.length = #14
            b4) s s
-           \override Stem #'length = #0
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \once \override Slur #'extra-offset = #'(0 . 0.35)
+           \override Stem.length = #0
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \once \override Slur.extra-offset = #'(0 . 0.35)
             % Add color to remaining text markup in top staff
            c4^\( b_(_\markup { \with-color #blue \tiny P } a)\) s2
-           \revert Stem #'length
+           \revert Stem.length
          }
        \\
          {
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \override NoteHead #'transparent = ##t
-           \override Stem #'length = #0
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \override NoteHead.transparent = ##t
+           \override Stem.length = #0
            s1 s4 e4 s
            \change Staff = "LH"
            fis,4 s2
-           \revert Stem #'transparent
-           \revert Flag #'transparent
-           \revert NoteHead #'transparent
-           \revert Stem #'length
+           \revert Stem.transparent
+           \revert Flag.transparent
+           \revert NoteHead.transparent
+           \revert Stem.length
          }
        \\
          {
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \override NoteHead #'transparent = ##t
-           \override Stem #'length = #0
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \override NoteHead.transparent = ##t
+           \override Stem.length = #0
            s1 s s2
            fis'4 s
            \change Staff = "LH"
            g,4 s s2
-           \revert Stem #'transparent
-           \revert Flag #'transparent
-           \revert NoteHead #'transparent
-           \revert Stem #'length
+           \revert Stem.transparent
+           \revert Flag.transparent
+           \revert NoteHead.transparent
+           \revert Stem.length
          }
        >>
        \bar "|."
@@ -154,12 +152,11 @@ staffPiano = \new PianoStaff {
       \clef bass
       \key g \major
       \relative c' {
-       \override Staff.NoteCollision
-       #'merge-differently-headed = ##t
+       \override Staff.NoteCollision.merge-differently-headed = ##t
        <<
          {
-           \override Beam #'positions = #'(-8 . -8)
-           \override NoteHead #'transparent = ##t
+           \override Beam.positions = #'(-8 . -8)
+           \override NoteHead.transparent = ##t
            \stemDown
             % Add color to long beam text markups in bottom staff
            \I g8[_\markup { \with-color #(x11-color 'LawnGreen) \bold I }
@@ -168,110 +165,110 @@ staffPiano = \new PianoStaff {
             s4.
            \I g,8]_\markup { \with-color #(x11-color 'LawnGreen) \bold I }
             s4.
-           \revert Beam #'positions
-           \revert NoteHead #'transparent
+           \revert Beam.positions
+           \revert NoteHead.transparent
          }
        \\
          {
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
            \stemDown
-           \override TextScript #'extra-offset = #'(-11.75 . -12.25)
+           \override TextScript.extra-offset = #'(-11.75 . -12.25)
            \I g'2 s1 s s2 \I d2 g,2
-           \revert Stem #'transparent
-           \revert Flag #'transparent
+           \revert Stem.transparent
+           \revert Flag.transparent
          }
        \\
          {
             % Add color to all single-note Slurs in bottom staff
-            \override Slur #'color = #(x11-color "violet")
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \once \override NoteHead #'transparent = ##t
-           \override Stem #'length = #0
+            \override Slur.color = #(x11-color "violet")
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \once \override NoteHead.transparent = ##t
+           \override Stem.length = #0
            g'4
-           \once \override TextScript #'padding = #0.25
+           \once \override TextScript.padding = #0.25
             % Add color to text markups in bottom staff
            a4_(^\markup { \with-color #blue \tiny P } b)
            fis4^(^\markup { \with-color #blue \tiny P } e)
-           \once \override NoteHead #'transparent = ##t
-           \once \override Slur #'height-limit = #1.5
+           \once \override NoteHead.transparent = ##t
+           \once \override Slur.height-limit = #1.5
             % Add color to remaining text markup in bottom staff
            c4^( d)^\markup { \with-color #blue \tiny N }
-           \once \override NoteHead #'transparent = ##t
-           \once \override Slur #'extra-offset = #'(0 . 0.5)
+           \once \override NoteHead.transparent = ##t
+           \once \override Slur.extra-offset = #'(0 . 0.5)
            \I fis,4_(
-           \revert Stem #'transparent
-           \revert Flag #'transparent
-           \override Stem #'length = #10
+           \revert Stem.transparent
+           \revert Flag.transparent
+           \override Stem.length = #10
            \stemDown
            g4) s
-           \once \override Slur #'extra-offset = #'(0 . 0.25)
+           \once \override Slur.extra-offset = #'(0 . 0.25)
            \I c8_( s
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \revert Stem #'length
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \revert Stem.length
            a4)
-           \once \override NoteHead #'transparent = ##t
+           \once \override NoteHead.transparent = ##t
            \I d4^( d,4) s2
          }
        \\
          {
             % Add color to all two-note Slurs in bottom staff
-            \override Slur #'color = #(x11-color "violet")
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \override NoteHead #'transparent = ##t
+            \override Slur.color = #(x11-color "violet")
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \override NoteHead.transparent = ##t
            \I g'4^( s b) s2
-           \revert Stem #'transparent
-           \revert Flag #'transparent
-           \revert NoteHead #'transparent
-           \override Beam #'positions = #'(-4 . 1)
+           \revert Stem.transparent
+           \revert Flag.transparent
+           \revert NoteHead.transparent
+           \override Beam.positions = #'(-4 . 1)
            \stemDown
            c,8[ s s4
            \stemUp
            fis,8] s
-           \override Beam #'positions = #'(1 . -4)
+           \override Beam.positions = #'(1 . -4)
            g8[ s
            \stemDown
            b8] s
-           \revert Beam #'positions
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \override NoteHead #'transparent = ##t
+           \revert Beam.positions
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \override NoteHead.transparent = ##t
            c4^( s d4) s s2
          }
        \\
          {
             % Add color to four-note Slur in bottom staff
-            \override Slur #'color = #(x11-color "violet")
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \override NoteHead #'transparent = ##t
-           \override Stem #'length = #0
+            \override Slur.color = #(x11-color "violet")
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \override NoteHead.transparent = ##t
+           \override Stem.length = #0
            \stemDown
-           \once \override Slur #'height-limit = #3
-           \once \override Slur #'extra-offset = #'(0 . 0.25)
+           \once \override Slur.height-limit = #3
+           \once \override Slur.extra-offset = #'(0 . 0.25)
            \I g4_( s2. e4) s2. s2 s1 s2
-           \revert Stem #'transparent
-           \revert Flag #'transparent
-           \revert NoteHead #'transparent
+           \revert Stem.transparent
+           \revert Flag.transparent
+           \revert NoteHead.transparent
          }
        \\
          {
             % Add color to dashed Slur in bottom staff
-            \override Slur #'color = #(x11-color "purple")
-           \override Stem #'transparent = ##t
-           \override Flag #'transparent = ##t
-           \override NoteHead #'transparent = ##t
+            \override Slur.color = #(x11-color "purple")
+           \override Stem.transparent = ##t
+           \override Flag.transparent = ##t
+           \override NoteHead.transparent = ##t
            \slurDashed
-           \once \override Slur #'height-limit = #6.0
-           \once \override Slur #'extra-offset = #'(0.5 . -0.25)
-           \override Stem #'length = #0
+           \once \override Slur.height-limit = #6.0
+           \once \override Slur.extra-offset = #'(0.5 . -0.25)
+           \override Stem.length = #0
            g4_( s2. s1 g,4) s s1 s2
-           \revert Stem #'transparent
-           \revert Flag #'transparent
-           \revert NoteHead #'transparent
+           \revert Stem.transparent
+           \revert Flag.transparent
+           \revert NoteHead.transparent
          }
        >>
        \bar "|."
index 4d2faf4c1e1583d0fdd87858c2f24fb4cbd55da7..fb30bb04db754bdc3d1e60e631d307bd6c8e898e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   indent = #0
@@ -8,18 +8,18 @@
     \Score
 
     proportionalNotationDuration = #(ly:make-moment 1 64)
-    \override Beam #'breakable = ##t
+    \override Beam.breakable = ##t
     autoBeaming = ##f
     tupletFullLength = ##t
-    \override BarNumber #'transparent = ##t
-    \override BarLine #'transparent = ##t
-    \override SpanBar #'transparent = ##t
-    \override Beam #'break-overshoot = #'(-0.5 . 1.0)
-    \override TextScript #'staff-padding = #6
-    \override Glissando #'thickness = #3
-    \override SpacingSpanner #'strict-grace-spacing = ##t
-    \override TupletBracket #'bracket-visibility = ##t
-    \override NoteColumn #'ignore-collision = ##t
+    \override BarNumber.transparent = ##t
+    \override BarLine.transparent = ##t
+    \override SpanBar.transparent = ##t
+    \override Beam.break-overshoot = #'(-0.5 . 1.0)
+    \override TextScript.staff-padding = #6
+    \override Glissando.thickness = #3
+    \override SpacingSpanner.strict-grace-spacing = ##t
+    \override TupletBracket.bracket-visibility = ##t
+    \override NoteColumn.ignore-collision = ##t
   }
 }
 
@@ -74,7 +74,7 @@ beam = #(define-music-function (parser location left right) (number? number?)
 )
 
 fraction = #(define-music-function (parser location music) (ly:music?)
-       #{ \tweak #'text #tuplet-number::calc-fraction-text #music #})
+       #{ \tweak text #tuplet-number::calc-fraction-text #music #})
 
 triangle = #(define-music-function (parser location music) (ly:music?)
        #{ \once \set shapeNoteStyles = #'#(do do do do do do do) #music #})
@@ -101,4 +101,4 @@ cross = #(define-music-function (parser location music) (ly:music?)
        #{ \once \set shapeNoteStyles = #'#(cross cross cross cross cross cross cross) #music #})
 
 white = #(define-music-function (parser location music) (ly:music?)
-       #{ \once \override NoteHead #'duration-log = #1 #music #})
+       #{ \once \override NoteHead.duration-log = #1 #music #})
index 37f4dfd0d4d0280b7a866837e65b1cebc0b4cbd0..1c96edd1bcd03bea59099b567229609098c4b5d0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 % the example header file caused the head to be chopped off
 %\include "example-header.ily"
 
        \new StaffGroup <<
 
                \new Staff \with {
-                       \override Stem #'direction = #down
-                       \override Beam #'positions = #'(-7 . -7)
-                       \override TupletBracket #'direction = #down
-                       \override TupletBracket #'staff-padding = #5
-                       \override TupletBracket #'padding = #2.25
+                       \override Stem.direction = #down
+                       \override Beam.positions = #'(-7 . -7)
+                       \override TupletBracket.direction = #down
+                       \override TupletBracket.staff-padding = #5
+                       \override TupletBracket.padding = #2.25
                } <<
 
                        \new Voice {
 
-            \override Score.MetronomeMark #'extra-offset = #'(0 . 6)
-            \override Score.MetronomeMark #'font-size = #3
+            \override Score.MetronomeMark.extra-offset = #'(0 . 6)
+            \override Score.MetronomeMark.font-size = #3
             \tempo 8=42
                                \time 5/16       s4 ~ s16       \noBreak                 % measure 6
                                \time 4/8        s2                     \noBreak                 % measure 7
                >>
 
                \new Staff \with {
-                       \override Clef #'transparent = ##t
-                       \override StaffSymbol #'line-positions = #'(-4 -2   2 4)
-                       \override Stem #'direction = #down
-                       \override TupletBracket #'staff-padding = #5
-                       \override TupletBracket #'padding = #2.25
+                       \override Clef.transparent = ##t
+                       \override StaffSymbol.line-positions = #'(-4 -2   2 4)
+                       \override Stem.direction = #down
+                       \override TupletBracket.staff-padding = #5
+                       \override TupletBracket.padding = #2.25
                } <<
 
                        \new Voice \with {
                                \remove "Forbid_line_break_engraver"
-                               \override Stem #'direction = #up
-                               \override Flag #'stroke-style = #"grace"
-                               \override Stem #'font-size = #-3
-                               \override Rest #'transparent = ##t
-                               \override NoteHead #'no-ledgers = ##t
-                               \override Dots #'transparent = ##t
-                               \override TupletBracket #'transparent = ##t
-                               \override TupletNumber #'transparent = ##t
+                               \override Stem.direction = #up
+                               \override Flag.stroke-style = #"grace"
+                               \override Stem.font-size = #-3
+                               \override Rest.transparent = ##t
+                               \override NoteHead.no-ledgers = ##t
+                               \override Dots.transparent = ##t
+                               \override TupletBracket.transparent = ##t
+                               \override TupletNumber.transparent = ##t
                        } {
 
                                % measure 6
 
                        \new Voice \with {
                                \remove "Forbid_line_break_engraver"
-                               \override Stem #'transparent = ##t
-                               \override Flag #'transparent = ##t
-                               \override Rest #'transparent = ##t
-                               \override Rest #'staff-position = #-0.5
-                               \override Dots #'transparent = ##t
-                               \override Beam #'transparent = ##t
-                               \override TupletBracket #'transparent = ##t
-                               \override TupletNumber #'transparent = ##t
+                               \override Stem.transparent = ##t
+                               \override Flag.transparent = ##t
+                               \override Rest.transparent = ##t
+                               \override Rest.staff-position = #-0.5
+                               \override Dots.transparent = ##t
+                               \override Beam.transparent = ##t
+                               \override TupletBracket.transparent = ##t
+                               \override TupletNumber.transparent = ##t
                        } {
 
                                % measure 6
 
                        \new Voice \with {
                                \remove "Forbid_line_break_engraver"
-                               \override Stem #'direction = #down
-                               \override Stem #'font-size = #-3
-                               \override Flag #'stroke-style = #"grace"
-                               \override Rest #'transparent = ##t
-                               \override NoteHead #'no-ledgers = ##t
-                               \override Dots #'transparent = ##t
-                               \override TupletBracket #'transparent = ##t
-                               \override TupletNumber #'transparent = ##t
+                               \override Stem.direction = #down
+                               \override Stem.font-size = #-3
+                               \override Flag.stroke-style = #"grace"
+                               \override Rest.transparent = ##t
+                               \override NoteHead.no-ledgers = ##t
+                               \override Dots.transparent = ##t
+                               \override TupletBracket.transparent = ##t
+                               \override TupletNumber.transparent = ##t
                        } {
 
                                % measure 6
 
                        \new Voice \with {
                                \remove "Forbid_line_break_engraver"
-                               \override Stem #'direction = #down
-                               \override NoteHead #'transparent = ##t
-                               \override NoteHead #'no-ledgers = ##t
-                               \override Rest #'staff-position = #-18
-                               \override Stem #'length = #10
-                               \override Beam #'positions = #'(-13 . -13)
-                               \override DynamicLineSpanner #'staff-padding = #18
-                               \override TextSpanner #'(bound-details left text) = #(markup (#:italic "covered"))
-                               \override TextSpanner #'dash-period = #1
-                               \override TextSpanner #'dash-fraction = #0.2
-                               \override TextSpanner #'(bound-details left padding) = #0.5
-                               \override TextSpanner #'(bound-details right padding) = #0.5
-                               \override TextSpanner #'staff-padding = #4
+                               \override Stem.direction = #down
+                               \override NoteHead.transparent = ##t
+                               \override NoteHead.no-ledgers = ##t
+                               \override Rest.staff-position = #-18
+                               \override Stem.length = #10
+                               \override Beam.positions = #'(-13 . -13)
+                               \override DynamicLineSpanner.staff-padding = #18
+                               \override TextSpanner.bound-details.left.text = #(markup (#:italic "covered"))
+                               \override TextSpanner.dash-period = #1
+                               \override TextSpanner.dash-fraction = #0.2
+                               \override TextSpanner.bound-details.left.padding = #0.5
+                               \override TextSpanner.bound-details.right.padding = #0.5
+                               \override TextSpanner.staff-padding = #4
                        } {
 
                                % measure 6
index 31834c1b01901f18780367557448c6828415fe88..96603b5e6007dd204b0262b78c5984a99dbbb928 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \include "example-header.ily"
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -26,13 +26,13 @@ appassmolto = \markup { \italic \large "appassionato molto" }
 global = {
   \time 3/4
   \set fontSize = #1
-  \override Beam #'thickness = #0.5
-  \override NoteColumn #'ignore-collision = ##t
+  \override Beam.thickness = #0.5
+  \override NoteColumn.ignore-collision = ##t
 }
 
 upperVoiceOne = \relative c'' {
   \voiceOne
-  \override TupletBracket #'transparent = ##t
+  \override TupletBracket.transparent = ##t
   <aes f'>8\([ \times 4/5{g'32( aes g f g]) }
     <es aes>8[ \times 4/5{<d bes'>32( c' bes aes bes]) }
     <es, aes es'>8 <d fis b d>\) | % end m. 1
@@ -55,20 +55,20 @@ upperVoiceTwo = \relative c'' {
   \voiceTwo
   s8 c8\< <bes, f'>[ <bes aes'> c' <bes, d fis>\!]
   s32 s32_\appassmolto s8. \voiceOne r8 <bes'' es bes'>-> s4
-  \override Stem #'cross-staff = ##t
-  \override Stem #'length = #28
-  \override Flag #'style = #'no-flag
+  \override Stem.cross-staff = ##t
+  \override Stem.length = #28
+  \override Flag.style = #'no-flag
   s8 \voiceTwo g,8 aes4 s4
 }
 
 middleVoiceOne = \relative c' {
-  \override Stem #'cross-staff = ##t
-  \override Stem #'length = #32
-  \override Flag #'style = #'no-flag
+  \override Stem.cross-staff = ##t
+  \override Stem.length = #32
+  \override Flag.style = #'no-flag
   d!8\noBeam s8 s8 s8_\crmolto s4  % 1
   s4 <g bes\arpeggio>8[ <es' g>] \voiceOne e,8( dis16 e) | % 2
-  \revert Stem #'length
-  \revert Stem #'cross-staff
+  \revert Stem.length
+  \revert Stem.cross-staff
   \showStaffSwitch
   \csh \stemUp f4 s2
   %s2.  % beginning m. 3
@@ -76,16 +76,16 @@ middleVoiceOne = \relative c' {
 
 middleVoiceTwo = \relative c' {
   s2. | % 1
-  \override Stem #'cross-staff = ##t
-  \override Stem #'length = #24
-  \override Flag #'style = #'no-flag
+  \override Stem.cross-staff = ##t
+  \override Stem.length = #24
+  \override Flag.style = #'no-flag
   s2 \voiceTwo e!4 | % 2
   s4 \voiceTwo <bes c es f>8 <f' aes es'>16 d' <bes, f' aes c>8 <bes' fis'> | % 3
 }
 
 lowerVoiceOne = \relative c, {
-  \override Staff.NoteCollision #'merge-differently-headed = ##t
-  \override Staff.NoteCollision #'merge-differently-dotted = ##t
+  \override Staff.NoteCollision.merge-differently-headed = ##t
+  \override Staff.NoteCollision.merge-differently-dotted = ##t
   bes8 \csm \stemDown <bes'' c es>8 s2
   \csl \stemUp
   \set subdivideBeams = ##t
@@ -101,9 +101,9 @@ lowerVoiceTwo = \relative c, {
   \voiceTwo
   bes2.
   \csh
-  \once \override Beam #'damping = #+inf.0
+  \once \override Beam.damping = #+inf.0
   <bes'' es g>8 \csl \slurUp
-  %\once\override Slur #'extra-offset = #'(0 . 4)
+  %\once\override Slur.extra-offset = #'(0 . 4)
   es,,64 bes' es g s32.
     c64
     s4 <bes des>
@@ -114,7 +114,7 @@ lowerVoiceTwo = \relative c, {
 \score {
   \new PianoStaff <<
     \set PianoStaff.connectArpeggios = ##t
-%    \override PianoStaff.Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket
+%    \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
     \new Staff = "high" <<
       \global
       \context Voice = "upperVoiceOne" { \upperVoiceOne }
@@ -135,7 +135,7 @@ lowerVoiceTwo = \relative c, {
   \layout {
     \context {
       \Score
-      \override TimeSignature #'stencil = ##f
+      \override TimeSignature.stencil = ##f
       \remove "Bar_number_engraver"
     }
   }
index 219acafdc90ac8c1452f2ad018e04f848b1caa09..56f17685b80ab74c3cb73b9dc1b34b95545be903 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   tagline = ##f
@@ -41,23 +41,23 @@ naturale = \markup { \bold \italic "Naturale" }
 moltocr = {
   \set crescendoText = \markup { \italic "Molto cresc." }
   \set crescendoSpanner = #'text
-  \override DynamicTextSpanner #'style = #'dotted-line
+  \override DynamicTextSpanner.style = #'dotted-line
 }
 offCr = {
   \unset crescendoText
   \unset crescendoSpanner
-  \revert DynamicTextSpanner #'style
+  \revert DynamicTextSpanner.style
 }
 
 %% Layout for piano dynamics
 \layout {
   \context {
     \Voice
-    \override Glissando #'breakable = ##t
-    \override TextSpanner #'breakable = ##t
-    \override DynamicLineSpanner #'breakable = ##t
-    \override DynamicTextSpanner #'breakable = ##t
-    \override TrillSpanner #'breakable = ##t
+    \override Glissando.breakable = ##t
+    \override TextSpanner.breakable = ##t
+    \override DynamicLineSpanner.breakable = ##t
+    \override DynamicTextSpanner.breakable = ##t
+    \override TrillSpanner.breakable = ##t
   }
 }
 
@@ -107,10 +107,10 @@ offCr = {
     \consists "Text_engraver"
     \consists "Text_spanner_engraver"
     \consists "Font_size_engraver"
-    \override VerticalAxisGroup #'staff-affinity = #DOWN
-    \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #2
-    \override VerticalAxisGroup #'nonstaff-unrelatedstaff-spacing #'padding = #5
-    \override TextSpanner #'breakable = ##t
+    \override VerticalAxisGroup.staff-affinity = #DOWN
+    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #2
+    \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = #5
+    \override TextSpanner.breakable = ##t
   }
   \context {
     \Score
@@ -132,8 +132,8 @@ offCr = {
   \context {
     \MarkLine
     \name "SmallMarkLine"
-    \override MetronomeMark #'outside-staff-priority = #800
-    \override RehearsalMark #'outside-staff-priority = #1200
+    \override MetronomeMark.outside-staff-priority = #800
+    \override RehearsalMark.outside-staff-priority = #1200
   }
   \context {
     \Score
index 60fcf208818f2e02e20cdc85ceed6720c104ad0a..6030ab371c09e312a67bffbf34c31f42c12897c2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 #(set-global-staff-size 22.45)
 
@@ -47,17 +47,17 @@ lower= \relative c {
     \new Staff = "guitar" <<
       \context Voice = "upper guitar" {
         \clef "G_8" \voiceOne
-        \override Glissando #'gap = #0.5
-        \override Glissando #'extra-offset = #'(-0.5 . 0)
-        \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
-        \override Glissando #'minimum-length = #4
-        \override Glissando #'extra-dy = #glissando::calc-extra-dy
+        \override Glissando.gap = #0.5
+        \override Glissando.extra-offset = #'(-0.5 . 0)
+        \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
+        \override Glissando.minimum-length = #4
+        \override Glissando.extra-dy = #glissando::calc-extra-dy
         \upper
       }
       \context Voice = "lower guitar" {
         \clef "G_8" \voiceTwo
-        \override Glissando #'bound-details #'right #'padding = #1
-        \override Glissando #'bound-details #'left #'padding = #0.2
+        \override Glissando.bound-details.right.padding = #1
+        \override Glissando.bound-details.left.padding = #0.2
         \lower
       }
     >>
@@ -70,11 +70,11 @@ lower= \relative c {
   \layout {
     \context {
       \Staff
-      \override StringNumber #'transparent = ##t
+      \override StringNumber.transparent = ##t
     }
     \context {
       \TabStaff
-      \revert Arpeggio #'stencil
+      \revert Arpeggio.stencil
     }
   }
 }
index b617fc99cd7dc1be42fa10f140a4317659ce5887..c39d80119301852ab1bf65edc85ab9e1267027e3 100644 (file)
@@ -4,9 +4,11 @@ NAME = documentation
 
 STEPMAKE_TEMPLATES = documentation texinfo
 
-TEXTS = $(call src-wildcard,ANNOUNCE-*[0-9]) $(call src-wildcard,CHANGES-*[0-9]) $(call src-wildcard,ChangeLog*[0-9]) $(call src-wildcard,NEWS-*[0-9])
-EXTRA_DIST_FILES = $(TEXTS)
-EXTRA_DIST_FILES += $(call src-wildcard,*.html)
+TEXTS = $(call src-wildcard,ANNOUNCE-*[0-9]) \
+  $(call src-wildcard,CHANGES-*[0-9]) \
+  $(call src-wildcard,ChangeLog*[0-9]) \
+  $(call src-wildcard,NEWS-*[0-9]) \
+  $(call src-wildcard,THANKS-*[0-9])
 
 include $(depth)/make/stepmake.make
 
@@ -24,5 +26,5 @@ $(outdir)/%.txt: %
        cp $< $@
 
 txt-to-html:
-       $(PYTHON) $(step-bindir)/text2html.py $(OUT_TXT_FILES)
+       $(buildscript-dir)/text2html $(OUT_TXT_FILES)
        $(footify) $(addprefix $(outdir)/, $(addsuffix .html, $(TEXTS)))
diff --git a/Documentation/misc/THANKS-1.8 b/Documentation/misc/THANKS-1.8
new file mode 100644 (file)
index 0000000..dcd3163
--- /dev/null
@@ -0,0 +1,53 @@
+Release 1.8
+***********
+
+HEAD HACKERS
+
+Han-Wen Nienhuys
+Jan Nieuwenhuizen
+
+CONTRIBUTORS
+
+Graham Percival
+Heikki Junes
+Jügen Reuter
+Kim Shrier
+Rune Zedeler
+Werner Lemberg
+
+
+BUG HUNTERS
+
+Amelie Zapf
+Andrew Schaaf
+Atte Andre Jensen
+Bob Harrington
+Chris Jackson
+Chris Sawer
+David Bobroff
+Erik Sandberg
+Fernando Pablo Lopez-Lezcano
+Hans Kieserman
+Jeremie Lumbroso
+John Potelle
+John Williams
+Karl Berry
+Karl-Johan Karlsson 
+Klaus Zimmermann
+Koblinger Egmont
+Paul Scott
+Pedro Kroger
+Richard Shann
+Roland Stigge
+Ryan O'Neil
+Simon Bailey
+Simon Weatherill
+Stanislav Brabec
+Thomas Rijniers
+Werner Lemberg
+Yotam Medini
+
+
+#Local variables:
+#coding: utf-8
+#End:
diff --git a/Documentation/misc/THANKS-2.0 b/Documentation/misc/THANKS-2.0
new file mode 100644 (file)
index 0000000..8ef6b0c
--- /dev/null
@@ -0,0 +1,44 @@
+Release 2.0
+***********
+
+HEAD HACKERS
+
+Han-Wen Nienhuys
+Jan Nieuwenhuizen
+
+CONTRIBUTORS
+
+Mats Bengtsson
+Heikki Junes
+Jürgen Reuter
+
+BUG HUNTERS/SUGGESTIONS
+
+Antonio Palama
+Benjamin Milde
+Daniel Berjon Diez
+David Bobroff
+David Rayleigh Arnold
+Erik Ronstroem
+Fabio dos Santos
+Fodor Bertalan 
+Frederic Bron
+Graham Percival
+Ian Bailey-Mortimer
+John Williams
+Josza Marton
+Marco Caliari
+Matthieu Amiguet
+Michael Welsh Duggan
+Patrick Atamaniuk
+Paul Scott
+Pedro Kroeger
+Peter Lutek
+Richard Schoeller
+Thorkil Wolvendans
+Werner Trobin 
+
+
+#Local variables:
+#coding: utf-8
+#End:
diff --git a/Documentation/misc/THANKS-2.10 b/Documentation/misc/THANKS-2.10
new file mode 100644 (file)
index 0000000..be908e9
--- /dev/null
@@ -0,0 +1,129 @@
+Release 2.10
+************
+
+
+DEVELOPMENT TEAM
+
+Han-Wen Nienhuys  - Core development
+Jan Nieuwenhuizen - Core development
+Graham Percival   - Documentation Editor and Bug Meister
+John Mandereau    - Translation Meister
+Mats Bengtsson    - Support Guru 
+
+
+CONTRIBUTORS
+
+Angelo Contardi
+David Feuer
+Erik Sandberg
+Erlend Aasland
+Guido Amoruso
+Heikki Junes
+Joe Neeman
+John Mandereau
+
+
+TRANSLATORS
+
+Frédéric Chiasson
+Gauvain Pocentek
+Jean-Charles Malahieude
+John Mandereau
+Ludovic Sardain
+Nicolas Grandclaude
+Valentin Villenave
+
+
+SPONSORS
+
+Andrew Sidwell
+Anthony Youngman 
+Chris Sawer
+David Griffel
+Jamie Bullock
+Kieren MacMillan
+Michael Meixner 
+Paul Scott
+Rick Hansen
+Steve Doonan
+Trent Johnston
+Trevor Bača
+Vivian Barty-Taylor
+William Wilson
+
+DOCUMENTATION HELPERS
+
+Cameron Horsburgh
+Dave Luttinen
+Eduardo Vieira
+Erlend Aasland
+Geoff Horton
+Juergen Reuter
+
+
+BUG HUNTERS/SUGGESTIONS
+
+Albert Frantz
+Arvid Grøtting
+Anthony Youngman
+Aurèle Duda
+Ben Hoefer
+Bernie Arai
+Cameron Horsburgh
+Charles Cave
+Christian Hitz
+Christopher Ellis
+Claude Routhier
+Colin Wilding
+Daniel Tonda Castillo
+David Rogers
+Francisco Vila
+Harald Wellmann
+Henrik Frisk
+Hernán J. González 
+Johannes Schindelin
+John Williams
+J. Leung
+Karim Haddad
+Karl Hammar
+Keith Packard
+Kieren MacMillan
+Lee T. Wilkirson
+Lieke van der Meer
+Luc Wehli
+Manuzhai
+Mark Dewey
+Marcus Macauley
+Markus Schneider
+Matti Aaltonen
+Michael Meixner
+Michael Welsh Duggan
+Milan Zamazal
+Orm Finnendahl
+Paul Scott
+Phillip Kirlin
+Quentin Spencer
+Rainer Typke
+Rick Hansen
+Rutger Helmers
+Ruud van Silfhout
+Sietse Brouwer
+Stephen Carter
+Stephen Kress
+Thies Albrecht
+Toine Schreurs
+Trent Johnston
+Trevor Bača
+Trevor Daniels
+Vaclav Smilauer
+Vicente Solsona Dellá
+Victor Eijkhout
+Villum Sejersen
+Werner Lemberg
+Will Oram
+Zoltan V. Laszlo
+
+
+#Local variables:
+#coding: utf-8
+#End:
diff --git a/Documentation/misc/THANKS-2.12 b/Documentation/misc/THANKS-2.12
new file mode 100644 (file)
index 0000000..1928e06
--- /dev/null
@@ -0,0 +1,144 @@
+Release 2.12
+************
+
+
+DEVELOPMENT TEAM
+
+Han-Wen Nienhuys   - Core development
+Jan Nieuwenhuizen  - Core development
+Joe Neeman         - Core development
+Graham Percival    - Documentation Editor and Bug Meister
+Valentin Villenave - LSR Editor and Bug Meister
+Mats Bengtsson     - Support Guru
+John Mandereau     - Translation Meister
+
+
+CONTRIBUTORS
+
+Rune Zedeler
+Maximilian Albert
+Milan Zamazal
+Reinhold Kainhofer - musicxml2ly development
+Erlend Aasland
+Stan Sanderson     - Regression Checker
+Neil Puttock
+
+
+GRAND DOCUMENTATION PROJECT
+
+Trevor Daniels     - Assistant Documentation Editor
+Andrew Hawryluk    - NR work
+Carl Sorensen      - NR work
+Eyolf Østrem       - NR work
+Francisco Vila     - NR work
+Jay Hamilton       - NR work
+Jonathan Kulp      - NR work
+Joseph Harfouch    - NR work
+Patrick McCarty    - NR work
+Ralph Palmer       - NR work
+Till Rettig        - NR work
+Kurt Kroon         - Glossary Updates, NR work
+Alard de Boer      - Formatting
+Michael Rasmussen  - Formatting
+Trevor Bača        - Inspirational Headwords
+Reinhold Kainhofer - Technical Aid
+Neil Puttock       - Snippet Editor, Technical Aid
+
+
+TRANSLATORS
+
+Clytie Siddall
+Damien Heurtebise
+Francisco Vila
+Heikki Junes
+Jean-Charles Malahieude
+John Mandereau
+Matthieu Jacquot
+Nicolas Klutchnikoff
+Till Rettig
+Valentin Villenave
+
+
+SPONSORS
+
+Mike Amundsen
+Trevor Bača
+
+
+BUG HUNTERS/SUGGESTIONS
+
+Adam James Wilson
+Alard de Boer
+Alex Rolex
+Andy Haupt
+Arvid Grøtting
+Bertalan Fodor
+Benjamin Drung
+Cameron Horsburgh
+Carl Sorensen
+Christian Hitz
+Christian Herzberg
+David Bobroff
+David Griffel
+Daniel Hulme
+Daniel Johnson
+Dominic Neumann
+Eduardo Vieira
+Frédéric Chiasson
+Georg Dummer
+Georg Romstorfer
+Gilles Thibault
+Hernán J. González
+Hu Haipeng
+Jay Anderson
+James Kilfinger
+Jean-Marie Mouchel
+Jean-Yves Baudais
+Jesús Guillermo Andrade
+Jonathan Henkelman
+Kazuhiro Suzuki
+Kevin Dalley
+Laura Conrad
+Luc Wehli
+Maarten Hijzelendoorn
+Marc Lanoiselée
+Mark Polesky
+Matthieu Jacquot
+Matthijs Frankeno
+Martijn Vromans
+Marnen Laibow-Koser
+Maximilian Albert
+Mirosław Doroszewski
+Mike Coleman
+Neil Puttock
+Nicolas Mayencourt
+Nicolas Sceaux
+Orm Finnendahl
+Peter Budny
+Phillip Kirlin
+Pierre-Emmanuel Brame
+Ralph Palmer
+Renaud Flavigny
+Rick Hansen
+Risto Vääräniemi
+Robin Bannister
+Roland Goretzki
+Rune Zedeler
+Ruud van Silfhout
+Sean Reed
+Steven Weber
+Tomas Sauer
+Thomas Scharkowski
+Trevor Bača
+Vivian Barty-Taylor
+Werner Lemberg
+Wilbert Berendsen
+William Oram
+Yota Moteuchi
+Zack Charter
+Zoltan Selyem
+
+
+#Local variables:
+#coding: utf-8
+#End:
diff --git a/Documentation/misc/THANKS-2.14 b/Documentation/misc/THANKS-2.14
new file mode 100644 (file)
index 0000000..c0cd0b0
--- /dev/null
@@ -0,0 +1,53 @@
+Release 2.14
+************
+
+DEVELOPMENT TEAM
+
+Han-Wen Nienhuys   - Core development
+Jan Nieuwenhuizen  - Core development
+Graham Percival    - Release Meister
+Valentin Villenave - LSR Editor and Bug Meister
+Mats Bengtsson     - Support Guru
+John Mandereau     - Translation Meister
+Trevor Daniels     - Documentation Editor
+
+CONTRIBUTORS
+
+Carl Sorensen      - Fret diagrams
+Jonathan Kulp      - Documentation Patches
+Ralph Palmer       - Documentation Indexing
+
+TRANSLATORS
+
+Francisco Vila
+Jean-Charles Malahieude
+Till Rettig
+Yoshiki Sawada
+
+FROGS
+
+Carl Sorensen     - Frog meister
+Andrew Hawryluk
+Andrew Wilson
+Marek Klein
+Ian Hulin
+Frédéric Bron
+Hajo Dezelski
+Kieren MacMillan
+
+
+BUG HUNTERS/SUGGESTIONS
+
+Chris Liddell
+Chris Snyder
+David Kastrup
+Karim Haddad
+Mark Polesky
+Martin Tarenskeen
+Michael Käppler
+Nick Payne
+
+
+#Local variables:
+#coding: utf-8
+#End:
diff --git a/Documentation/misc/THANKS-2.16 b/Documentation/misc/THANKS-2.16
new file mode 100644 (file)
index 0000000..cd561ee
--- /dev/null
@@ -0,0 +1,73 @@
+Release 2.16
+************
+
+For information about the various official or semi-official positions,
+check out <URL:http://lilypond.org/authors.html>
+
+The following are registered as having authored changes to the
+repository of LilyPond since 2.14.2:
+
+Adam Spiers
+Alberto Simoes
+Aleksandr Andreev
+Anthony Fok
+Arnold Theresius
+Benkő Pál
+Bertrand Bordage
+Carl D. Sorensen
+Choan Gálvez
+Colin Campbell
+Daisuke Yamashita
+David Kastrup
+David Nalesnik
+Dénes Harmath
+Federico Bruni
+Francisco Vila
+Frédéric Bron
+Graham Breed
+Graham Percival
+Han-Wen Nienhuys
+Heikki Tauriainen
+Ian Hulin
+James Lowe
+Jan Nieuwenhuizen
+Jan-Peter Voigt
+Janek Warchoł
+Jean-Charles Malahieude
+Joe Neeman
+John Mandereau
+Joseph Wakeling
+Julien Rioux
+Karin Hoethker
+Keith OHara
+Marc Hohl
+Markus Oehme
+Matthias Kilian
+Michael Welsh Duggan
+Mike Solomon
+Neil Puttock
+Nicolas Sceaux
+Patrick McCarty
+Patrick Schmidt
+Pavel Roskin
+Peter Chubb
+Phil Holmes
+Piers Titus van der Torren
+Reinhold Kainhofer
+Rodolfo Zitellini
+Seafire
+Stefan Weil
+Sven Axelsson
+Thomas Morley
+Till Rettig
+Trevor Daniels
+Valentin Villenave
+Werner Lemberg
+Wol
+Yoshiki Sawada
+Łukasz Czerwiński
+
+
+#Local variables:
+#coding: utf-8
+#End:
diff --git a/Documentation/misc/THANKS-2.2 b/Documentation/misc/THANKS-2.2
new file mode 100644 (file)
index 0000000..afdbf7e
--- /dev/null
@@ -0,0 +1,60 @@
+Release 2.2
+***********
+
+HEAD HACKERS
+
+Han-Wen Nienhuys
+Jan Nieuwenhuizen
+
+CONTRIBUTORS
+
+David Bobroff
+Edward Sanford Sutton
+Heikki Junes
+Nicolas Sceaux
+
+BUG HUNTERS/SUGGESTIONS
+
+Alexandre Beneteau
+Andrew McNabb
+Atte Andre Jensen 
+Bertalan Fodor
+Bruce McIntyre
+Dave Symonds
+David Bobroff
+Darius
+Delma Avers
+Doug Linhardt
+Eric Wurbel
+Erik Sandberg
+Ferenc Wagner
+Hans Forbrich
+John Williams
+José Luis Cruz
+Jürgen Reuter
+Kieren Richard MacMillan
+Laurent Martelli
+Mats Bengtsson
+Matthias Kilian
+Nancho Alvarez
+Nick Busigin
+Nicolas Sceaux 
+Olivier Guéry
+Patrick Atamaniuk
+Paul Scott
+Pawel D
+Pedro Kroger
+Ray McKinney
+Reuben Thomas
+Robert Vlasaty
+Stef Epardaud
+Thomas Willhalm
+Thomas Scharkowski
+Tom Bäckström
+Werner Lemberg
+Will Oram
+
+
+#Local variables:
+#coding: utf-8
+#End:
diff --git a/Documentation/misc/THANKS-2.4 b/Documentation/misc/THANKS-2.4
new file mode 100644 (file)
index 0000000..9d89dd2
--- /dev/null
@@ -0,0 +1,63 @@
+Release 2.4
+***********
+
+DEVELOPMENT TEAM
+
+Han-Wen Nienhuys  - Core development
+Jan Nieuwenhuizen - Core development
+Erik Sandberg     - Bug Meister
+Pedro Kroger      - Build Meister
+Graham Percival   - Documentation Editor
+
+
+CONTRIBUTORS
+
+Carl Sorensen
+David Svoboda
+Guy Gascoigne-Piggford
+Heikki Junes
+Hendrik Maryns
+Kristof Bastiaensen
+Lisa Opus Goldstein
+Mats Bengtsson
+Michael Welsh Duggan
+Peter Lutek
+Werner Lemberg
+
+BUG HUNTERS/SUGGESTIONS
+
+
+Antti Kaihola
+Bertalan Fodor
+Brian Clements
+Christian Hitz
+Christoph Ludwig
+Christophe Papazian
+Daniel Berjón Díez
+Dave Phillips
+David Bobroff
+David Brandon
+Doug Asherman
+Ed Jackson
+Fernando Pablo Lopez-Lezcano
+Heinz Stolba
+Jack O'Quin
+Jefferson dos Santos Felix
+Karl Hammar
+Marco Gusy
+Martin Norbäck
+Matthias Neeracher
+Maurizio Tomasi
+Michael Kiermaier
+Pascal Legris
+Peter Rosenbeck
+Russ Ross
+Stephen Pollei
+Thomas Scharlowski
+Will Oram
+Yuval Harel
+
+
+#Local variables:
+#coding: utf-8
+#End:
diff --git a/Documentation/misc/THANKS-2.6 b/Documentation/misc/THANKS-2.6
new file mode 100644 (file)
index 0000000..0c58657
--- /dev/null
@@ -0,0 +1,109 @@
+Release 2.6
+***********
+
+DEVELOPMENT TEAM
+
+Han-Wen Nienhuys  - Core development
+Jan Nieuwenhuizen - Core development
+Erik Sandberg     - Bug Meister
+Pedro Kroger      - Build Meister
+Graham Percival   - Documentation Editor
+
+CONTRIBUTORS
+
+Andreas Scherer
+Arno Waschk
+Bertalan Fodor
+Carl Sorensen
+Christian Hitz
+David Jedlinsky
+Erlend Aasland
+Heikki Junes
+John Williams
+Jonatan Liljedahl
+Jürgen Reuter
+Mats Bengtsson
+Matthias Neeracher
+Mathieu Giraud
+Nicolas Sceaux
+Pal Benko
+Sebastiano Vigna
+Tatsuya Ono
+Vicente Solsona Della
+Werner Lemberg
+Yuval Harel
+
+TRANSLATORS
+
+Abel Cheung
+John Mandereau
+Olcay Yıldırım
+Roland Stigge
+Steven Michael Murphy
+
+
+WEBSITE TRANSLATORS
+
+Gauvain Pocentek
+Jean-Charles Malahieude
+John Mandereau
+Tineke de Munnik
+
+
+SPONSORS
+
+Bertalan Fodor
+Chris Sawer
+Gunther Strube
+Hans Forbrich
+Jonathan Walther
+Marcus Macauley
+Steve Doonan
+
+BUG HUNTERS/SUGGESTIONS
+
+Alexandre Beneteau
+Andreas Scherer
+Anthony W. Youngman
+Antti Kaihola
+Arjan Bos
+David Bobroff
+Bernard Hurley
+Bruce Fairchild
+Bruce McIntyre
+Daniel Johnson
+David Rogers
+Dylan Nicholson
+Ed Jackson
+Erik Ronström
+Fernando Pablo Lopez-Lezcano
+Gilles Sadowski
+Pothárn Imre
+Jack O'Quin
+Jeff Smith
+Johannes Schindelin
+John Mandereau
+Jose Miguel Pasini
+Josiah Boothby
+Juergen Reuter
+Karl Hammar
+Laura Conrad
+Olivier Guéry
+Paul Scott
+Richard Schoeller
+Rob Platt
+Roman Stöckl-Schmidt
+Russ Jorgensen
+Simon Bailey
+Stephen McCarthy
+Sven Axelsson
+Tapio Tuovila
+Tom Cato Amundsen
+Tyler Eaves
+Will Oram
+Wolfgang Hoffmann
+
+
+#Local variables:
+#coding: utf-8
+#End:
diff --git a/Documentation/misc/THANKS-2.8 b/Documentation/misc/THANKS-2.8
new file mode 100644 (file)
index 0000000..f75d0e0
--- /dev/null
@@ -0,0 +1,119 @@
+Release 2.8
+***********
+
+DEVELOPMENT TEAM
+
+Han-Wen Nienhuys  - Core development
+Jan Nieuwenhuizen - Core development
+Erik Sandberg     - Bug Meister
+Pedro Kroger      - Build Meister
+Graham Percival   - Documentation Editor
+Mats Bengtsson    - Support Guru 
+
+CONTRIBUTORS
+
+Erlend Aasland
+Heikki Junes
+Joe Neeman
+Johannes Schindelin
+Nicolas Sceaux
+Werner Lemberg
+Yoshinobu Ishizaki
+
+
+SPONSORS
+
+Aaron Mehl
+Basil Crow
+Bertalan Fodor
+Christian Ebert
+Henrik Frisk
+Jay Hamilton
+Jamie Bullock
+John Mandereau
+D. Josiah Boothby
+Kieren MacMillan
+Kris Shaffer
+Mark van den Borre
+Mike Rolish
+Muziekacademie Lede
+Nancho Alvarez
+Nicolas Sceaux
+Sean Reed
+Steve Doonan
+Sven Axelsson
+Trent Johnston
+Trevor Bača
+Vicente Solsona Dellá
+Yoshinobu Ishizaki   
+
+
+BUG HUNTERS/SUGGESTIONS
+
+Alan Stern
+Andrea Valle
+Bertalan Fodor
+Bob Broadus
+Bruce Fairchild
+Cameron Horsburgh
+Chris Sawer
+Christian Ebert
+Christian Hitz
+Darius Blasband
+David Bobroff
+David Raleigh Arnold
+Donald Axel
+Don Blaheta
+Dunstan Vavasour
+Edward Neeman
+Eduardo Vieira
+Ernesto Gancedo
+François Vion
+Frédéric Bron
+Geoff Horton
+Gianluca D.
+Hans Forbrich
+Hoang Nguyen
+Joe Neeman
+Jordi Nadal
+Jukka Akkanen
+Kieren Richard MacMillan
+Lambros Lambrou
+Laura Conrad
+Libero Mureddu
+Marcus Macauley
+Mark Steinheuser
+Matevž Jekovec
+Michael Kiermaier
+Michael Welsh Duggan
+Milan Zamazal
+Nicolas Mayencourt
+Orm Finnendahl
+Patrick K Welton
+Paul Scott
+Ralph Little
+Richard Schoeller
+Robert Vlasaty
+Roman Kurakin
+Russell Lang
+Scott Russell
+Sean Reed
+Seng Liang
+Steve Doonan
+Steven Weber
+Sven Axelsson
+Thomas Scharkowski
+Thomas Bushnell BSG
+Toine Schreurs
+Trent Johnston
+Trevor Bača
+Vicente Solsona Dellá
+Vincenzo Colonnella
+Werner Lemberg
+Will Oram
+Wolfgang Hoffmann
+
+
+#Local variables:
+#coding: utf-8
+#End:
index f4072b845c15b88f32dfc1d23d15dece5d793dbd..d4f25727e648f030b8f02b1fc6bb5c6f9fae2cee 100644 (file)
@@ -1,6 +1,5 @@
 ISOLANG = nl
 depth = ../..
-SUBDIRS = included web learning texidocs
 STEPMAKE_TEMPLATES = documentation texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
 # NO_PDF_FILES = 1
diff --git a/Documentation/nl/included/GNUmakefile b/Documentation/nl/included/GNUmakefile
deleted file mode 100644 (file)
index afe7a4d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth = ../../..
-
-STEPMAKE_TEMPLATES=documentation
-
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ly)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/nl/learning/GNUmakefile b/Documentation/nl/learning/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 0311790c8572c18565332965a59ac0b39d8f4e34..aa0b74bf145874dff10b1afb1abea3536b60789a 100644 (file)
@@ -12,7 +12,7 @@
 @c Translation checker:
 @c Translation checker committish:
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Fundamentele concepten
 @translationof Fundamental concepts
@@ -827,9 +827,9 @@ later sections.
   \\  % Voice four
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'force-hshift = #0
+      \once \override NoteColumn.force-hshift = #0
       <ees c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   >> |
@@ -876,9 +876,9 @@ not understand.
   \\  % Voice four
     { \voiceThreeStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn #'force-hshift = #0
+      \once \override NoteColumn.force-hshift = #0
       <ees c>2
-      \once \override NoteColumn #'force-hshift = #0.5
+      \once \override NoteColumn.force-hshift = #0.5
       des2
     }
   >> |
@@ -2896,8 +2896,7 @@ so that the values are identical.
         @}
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with @{
-        \override VerticalAxisGroup
-          #'staff-staff-spacing  #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       @} <<
         \keyTime
         \clef "bass"
@@ -2960,8 +2959,7 @@ PedalOrganMusic = \relative c {
         }
       >>  % end ManualOne Staff context
       \new Staff = "ManualTwo" \with {
-        \override VerticalAxisGroup
-          #'staff-staff-spacing #'stretchability = 5
+        \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
       } <<
         \keyTime
         \clef "bass"
@@ -3028,7 +3026,7 @@ macros, or user-defined commands) for tweaks:
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
 
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
 fthenp =_\markup {
   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
 }
@@ -3061,7 +3059,7 @@ the last line.
 violin = \relative c'' @{
   \repeat volta 2 @{
     c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
-    \once \override TextScript #'padding = #5.0
+    \once \override TextScript.padding = #5.0
     c4.^"hi there!" d8 e' f g d |
     c,4.\markup @{
       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
@@ -3088,7 +3086,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = $padding
+     \once \override TextScript.padding = $padding
    #})
 
 \relative c''' {
diff --git a/Documentation/nl/learning/preface.itely b/Documentation/nl/learning/preface.itely
new file mode 100644 (file)
index 0000000..93c5c03
--- /dev/null
@@ -0,0 +1,60 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
+@end ignore
+
+@c \version "2.16.0"
+
+@node Preface
+@unnumbered Preface
+
+
+It must have been during a rehearsal of the EJE (Eindhoven Youth
+Orchestra), somewhere in 1995 that Jan, one of the cranked violists,
+told Han-Wen, one of the distorted French horn players, about the
+grand new project he was working on.  It was an automated system for
+printing music (to be precise, it was MPP, a preprocessor for
+MusiXTeX).  As it happened, Han-Wen accidentally wanted to print out
+some parts from a score, so he started looking at the software, and he
+quickly got hooked.  It was decided that MPP was a dead end.  After
+lots of philosophizing and heated email exchanges, Han-Wen started
+LilyPond in 1996.  This time, Jan got sucked into Han-Wen's new
+project.
+
+In some ways, developing a computer program is like learning to play
+an instrument.  In the beginning, discovering how it works is fun, and
+the things you cannot do are challenging.  After the initial excitement,
+you have to practice and practice.  Scales and studies can be dull, and
+if you are not motivated by others -- teachers, conductors or
+audience -- it is very tempting to give up.  You continue, and gradually
+playing becomes a part of your life.  Some days it comes naturally, and
+it is wonderful, and on some days it just does not work, but you keep
+playing, day after day.
+
+Like making music, working on LilyPond can be dull work, and on
+some days it feels like plodding through a morass of bugs.
+Nevertheless, it has become a part of our life, and we keep doing it.
+Probably the most important motivation is that our program actually
+does something useful for people.  When we browse around the net we
+find many people who use LilyPond, and produce impressive pieces of
+sheet music.  Seeing that feels unreal, but in a very pleasant way.
+
+Our users not only give us good vibes by using our program, many of
+them also help us by giving suggestions and sending bug reports, so we
+would like to thank all users that sent us bug reports, gave
+suggestions or contributed in any other way to LilyPond.
+
+Playing and printing music is more than a nice analogy.  Programming
+together is a lot of fun, and helping people is deeply satisfying, but
+ultimately, working on LilyPond is a way to express our deep love for
+music.  May it help you create lots of beautiful music!
+
+Han-Wen and Jan
+
+Utrecht/Eindhoven, The Netherlands, July 2002.
+
diff --git a/Documentation/nl/learning/templates.itely b/Documentation/nl/learning/templates.itely
new file mode 100644 (file)
index 0000000..0b6bc00
--- /dev/null
@@ -0,0 +1,233 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
+@end ignore
+
+@c \version "2.16.0"
+
+@node Templates
+@appendix Templates
+
+This section of the manual contains templates with the LilyPond score
+already set up for you.  Just add notes, run LilyPond, and enjoy
+beautiful printed scores!
+
+@c bad node name for ancient notation to avoid conflict
+@menu
+* Single staff::
+* Piano templates::
+* String quartet::
+* Vocal ensembles::
+* Orchestral templates::
+* Ancient notation templates::
+* Other templates::
+@end menu
+
+
+@node Single staff
+@appendixsec Single staff
+
+@appendixsubsec Notes only
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc,addversion]
+{single-staff-template-with-only-notes.ly}
+
+
+@appendixsubsec Notes and lyrics
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc,addversion]
+{single-staff-template-with-notes-and-lyrics.ly}
+
+@appendixsubsec Notes and chords
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{single-staff-template-with-notes-and-chords.ly}
+
+@appendixsubsec Notes, lyrics, and chords.
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{single-staff-template-with-notes,-lyrics,-and-chords.ly}
+
+
+@node Piano templates
+@appendixsec Piano templates
+
+@appendixsubsec Solo piano
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{piano-template-simple.ly}
+
+@appendixsubsec Piano and melody with lyrics
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{piano-template-with-melody-and-lyrics.ly}
+
+@appendixsubsec Piano centered lyrics
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{piano-template-with-centered-lyrics.ly}
+
+
+@node String quartet
+@appendixsec String quartet
+
+@appendixsubsec String quartet
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{string-quartet-template-simple.ly}
+
+@appendixsubsec String quartet parts
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{string-quartet-template-with-separate-parts.ly}
+
+
+@node Vocal ensembles
+@appendixsec Vocal ensembles
+
+@appendixsubsec SATB vocal score
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{vocal-ensemble-template.ly}
+
+@appendixsubsec SATB vocal score and automatic piano reduction
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{vocal-ensemble-template-with-automatic-piano-reduction.ly}
+
+@appendixsubsec SATB with aligned contexts
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly}
+
+@appendixsubsec SATB on four staves
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{satb-choir-template---four-staves.ly}
+
+@appendixsubsec Solo verse and two-part refrain
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{vocal-ensemble-template-with-verse-and-refrain.ly}
+
+@appendixsubsec Hymn tunes
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{hymn-template.ly}
+
+@appendixsubsec Psalms
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{anglican-psalm-template.ly}
+
+
+@node Orchestral templates
+@appendixsec Orchestral templates
+
+@appendixsubsec Orchestra, choir and piano
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{orchestra,-choir-and-piano-template.ly}
+
+
+@c bad node name to avoid node name conflict
+@node Ancient notation templates
+@appendixsec Ancient notation templates
+
+@appendixsubsec Transcription of mensural music
+
+@c Line-width below is because of Issue 766.  If that's fixed, it can be removed.
+@lilypondfile[verbatim,quote,ragged-right,texidoc,line-width=140]
+{ancient-notation-template----modern-transcription-of-mensural-music.ly}
+
+@appendixsubsec Gregorian transcription template
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
+{ancient-notation-template----modern-transcription-of-gregorian-music.ly}
+
+
+@node Other templates
+@appendixsec Other templates
+
+@appendixsubsec Jazz combo
+
+@c Line-width below is because of Issue 766.  If that's fixed, it can be removed.
+@lilypondfile[verbatim,quote,ragged-right,texidoc,line-width=140]
+{jazz-combo-template.ly}
+
+
+
+
+@ignore
+This isn't very useful, and only duplicates material in
+"global issues".  And if this info changes, this section often
+gets forgotten.
+
+@no de Other templates
+@se ction Other templates
+@su bsection All headers
+
+This template displays all available headers.  Some of them are only
+used in the Mutopia project; they don't affect the printed output at
+all.  They are used if you want the piece to be listed with different
+information in the Mutopia database than you wish to have printed on the
+music.  For example, Mutopia lists the composer of the famous D major
+violin concerto as TchaikovskyPI, whereas perhaps you wish to print
+"Petr Tchaikowski" on your music.
+
+@ The `line-width' is for \header.
+@li lypond[quote,verbatim,ragged-right,line-width]
+\version "2.16.0"
+\header {
+  dedication = "dedication"
+  title = "Title"
+  subtitle = "Subtitle"
+  subsubtitle = "Subsubtitle"
+  composer = "Composer (xxxx-yyyy)"
+  opus = "Opus 0"
+  piece = "Piece I"
+  meter = "meter"
+  instrument = "Instrument"
+  arranger = "Arranger"
+  poet = "Poet"
+  texttranslator = "Translator"
+  copyright = "public domain"
+
+  % These are headers used by the Mutopia Project
+  % http://www.mutopiaproject.org/
+  mutopiatitle = ""
+  mutopiacomposer = ""
+  mutopiapoet = ""
+  mutopiainstrument = ""
+  date = "composer's dates"
+  source = "urtext "
+  maintainer = "your name here"
+  maintainerEmail = "your email here"
+  maintainerWeb = "your home page"
+  lastupdated = "2004/Aug/26"
+}
+
+\score {
+  { c'4 }
+  \header {
+    piece = "piece1"
+    opus = "opus1"
+  }
+}
+
+\score {
+  { c'4 }
+  \header {
+    piece = "piece2"
+    opus = "opus2"
+  }
+}
+@end lilypond
+@end ignore
+
+
+
diff --git a/Documentation/nl/learning/tweaks.itely b/Documentation/nl/learning/tweaks.itely
new file mode 100644 (file)
index 0000000..6cc699a
--- /dev/null
@@ -0,0 +1,4178 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
+@end ignore
+
+@c \version "2.17.6"
+
+@node Tweaking output
+@chapter Tweaking output
+
+This chapter discusses how to modify output.  LilyPond is extremely
+configurable; virtually every fragment of output may be changed.
+
+
+@menu
+* Tweaking basics::
+* The Internals Reference manual::
+* Appearance of objects::
+* Placement of objects::
+* Collisions of objects::
+* Further tweaking::
+@end menu
+
+@node Tweaking basics
+@section Tweaking basics
+
+@menu
+* Introduction to tweaks::
+* Objects and interfaces::
+* Naming conventions of objects and properties::
+* Tweaking methods::
+@end menu
+
+@node Introduction to tweaks
+@subsection Introduction to tweaks
+
+@q{Tweaking} is a LilyPond term for the various methods available
+to the user for modifying the actions taken during interpretation
+of the input file and modifying the appearance of the printed
+output.  Some tweaks are very easy to use; others are more
+complex.  But taken together the methods available for tweaking
+permit almost any desired appearance of the printed music to be
+achieved.
+
+In this section we cover the basic concepts required to understand
+tweaking.  Later we give a variety of ready-made commands which can
+simply be copied to obtain the same effect in your own scores, and
+at the same time we show how these commands may be constructed so
+that you may learn how to develop your own tweaks.
+
+Before starting on this Chapter you may wish to review the section
+@ref{Contexts and engravers}, as Contexts, Engravers, and the
+Properties contained within them are fundamental to understanding
+and constructing Tweaks.
+
+@node Objects and interfaces
+@subsection Objects and interfaces
+
+@cindex object
+@cindex grob
+@cindex spanner
+@cindex interface
+@cindex properties, object
+@cindex object properties
+@cindex layout object
+@cindex object, layout
+@cindex interface
+
+Tweaking involves modifying the internal operation and structures
+of the LilyPond program, so we must first introduce some terms
+which are used to describe those internal operations and
+structures.
+
+The term @q{Object} is a generic term used to refer to the
+multitude of internal structures built by LilyPond during the
+processing of an input file.  So when a command like @code{\new
+Staff} is encountered a new object of type @code{Staff} is
+constructed.  That @code{Staff} object then holds all the
+properties associated with that particular staff, for example, its
+name and its key signature, together with details of the engravers
+which have been assigned to operate within that staff's context.
+Similarly, there are objects to hold the properties of all other
+contexts, such as @code{Voice} objects, @code{Score} objects,
+@code{Lyrics} objects, as well as objects to represent all
+notational elements such as bar lines,
+note heads, ties, dynamics, etc.  Every object has its own set of
+property values.
+
+Some types of object are given special names.  Objects which represent
+items of notation on the printed output such as note heads, stems,
+slurs, ties, fingering, clefs, etc are called @q{Layout objects},
+often known as @q{Graphical Objects}, or @q{Grobs} for short.  These
+are still objects in the generic sense above, and so they too all have
+properties associated with them, such as their position, size, color,
+etc.
+
+Some layout objects are still more specialized.  Phrasing slurs,
+crescendo hairpins, ottava marks, and many other grobs are not
+localized in a single place -- they have a starting point, an
+ending point, and maybe other properties concerned with their
+shape.  Objects with an extended shape like these are called
+@q{Spanners}.
+
+It remains to explain what @q{Interfaces} are.  Many objects, even
+though they are quite different, share common features which need to
+be processed in the same way.  For example, all grobs have a color, a
+size, a position, etc, and all these properties are processed in the
+same way during LilyPond's interpretation of the input file.  To
+simplify these internal operations these common actions and properties
+are grouped together in an object called a @code{grob-interface}.
+There are many other groupings of common properties like this, each
+one given a name ending in @code{interface}.  In total there are over
+100 such interfaces.  We shall see later why this is of interest and
+use to the user.
+
+These, then, are the main terms relating to objects which we
+shall use in this chapter.
+
+@node Naming conventions of objects and properties
+@subsection Naming conventions of objects and properties
+
+@cindex naming conventions for objects
+@cindex naming conventions for properties
+@cindex objects, naming conventions
+@cindex properties, naming conventions
+
+We met some object naming conventions previously, in
+@ref{Contexts and engravers}.  Here for reference is a list
+of the most common object and property types together with
+the conventions for naming them and a couple of examples of
+some real names.  We have used @q{A} to stand for any capitalized
+alphabetic character and @q{aaa} to stand for any number of
+lower-case alphabetic characters.  Other characters are used
+verbatim.
+
+@multitable @columnfractions .33 .33 .33
+@headitem Object/property type
+  @tab Naming convention
+  @tab Examples
+@item Contexts
+  @tab Aaaa or AaaaAaaaAaaa
+  @tab Staff, GrandStaff
+@item Layout Objects
+  @tab Aaaa or AaaaAaaaAaaa
+  @tab Slur, NoteHead
+@item Engravers
+  @tab Aaaa_aaa_engraver
+  @tab Clef_engraver, Note_heads_engraver
+@item Interfaces
+  @tab aaa-aaa-interface
+  @tab grob-interface, break-aligned-interface
+@item Context Properties
+  @tab aaa or aaaAaaaAaaa
+  @tab alignAboveContext, skipBars
+@item Layout Object Properties
+  @tab aaa or aaa-aaa-aaa
+  @tab direction, beam-thickness
+@end multitable
+
+As we shall see shortly, the properties of different types of object are
+modified by different commands, so it is useful to be able to recognize
+the types of objects and properties from their names.
+
+
+@node Tweaking methods
+@subsection Tweaking methods
+
+@cindex tweaking methods
+
+@strong{\override command}
+
+@cindex override command
+@cindex override syntax
+
+@funindex \override
+@funindex override
+
+We have already met the commands @code{\set} and @code{\with}, used to
+change the properties of @strong{contexts} and to remove and add
+@strong{engravers}, in @ref{Modifying context properties}, and
+@ref{Adding and removing engravers}.  We must now introduce some more
+important commands.
+
+The command to change the properties of @strong{layout objects} is
+@code{\override}.  Because this command has to modify
+internal properties deep within LilyPond its syntax is not
+as simple as the commands you have used so far.  It needs to
+know precisely which property of which object in which context
+has to be modified, and what its new value is to be.  Let's see
+how this is done.
+
+The general syntax of this command is:
+
+@example
+\override @var{Context}.@var{LayoutObject} #'@var{layout-property} =
+#@var{value}
+@end example
+
+@noindent
+This will set the property with the name @var{layout-property} of the
+layout object with the name @var{LayoutObject}, which is a member of
+the @var{Context} context, to the value @var{value}.
+
+The @var{Context} can be omitted (and usually is) when the
+required context is unambiguously implied and is one of lowest
+level contexts, i.e., @code{Voice}, @code{ChordNames} or
+@code{Lyrics}, and we shall omit it in many of the following
+examples.  We shall see later when it must be specified.
+
+Later sections deal comprehensively with properties and their
+values, see @ref{Types of properties}.  But in this section we shall 
+use just a few simple properties and values which are easily
+understood in order to illustrate the format and use of these
+commands.
+
+For now, don't worry about the @code{#'}, which must precede the
+layout property, and the@tie{}@code{#}, which must precede the value.
+These must always be present in exactly this form.  This is the
+most common command used in tweaking, and most of the rest of
+this chapter will be directed to presenting examples of how it is
+used.  Here is a simple example to change the color of the
+note head:
+
+@cindex color property, example
+@cindex NoteHead, example of overriding
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c4 d
+\override NoteHead.color = #red
+e4 f |
+\override NoteHead.color = #green
+g4 a b c |
+@end lilypond
+
+@strong{\revert command}
+
+@cindex revert command
+
+@funindex \revert
+@funindex revert
+
+Once overridden, the property retains its new value until it is
+overridden again or a @code{\revert} command is encountered.
+The @code{\revert} command has the following syntax and causes
+the value of the property to revert to its original default
+value; note, not its previous value if several @code{\override}
+commands have been issued.
+
+@example
+\revert @var{Context}.@var{LayoutObject} #'@var{layout-property}
+@end example
+
+Again, just like @var{Context} in the @code{\override} command,
+@var{Context} is often not needed.  It will be omitted
+in many of the following examples.  Here we revert the color
+of the note head to the default value for the final two notes:
+
+@cindex color property, example
+@cindex NoteHead, example of overriding
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c4 d
+\override NoteHead.color = #red
+e4 f |
+\override NoteHead.color = #green
+g4 a
+\revert NoteHead.color
+b4 c |
+@end lilypond
+
+@strong{\once prefix}
+
+@funindex \once
+@funindex once
+
+Both the @code{\override} and the @code{\set} commands may be prefixed
+by @code{\once}.  This causes the following @code{\override} or
+@code{\set} command to be effective only during the current musical
+moment before the property reverts back to its previous value (this can
+be different from the default if another @code{\override} is still in
+effect).  Using the same example, we can change the color of a single
+note like this:
+
+@cindex color property, example
+@cindex NoteHead, example of overriding
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c4 d
+\override NoteHead.color = #red
+e4 f |
+\once \override NoteHead.color = #green
+g4 a
+\revert NoteHead.color
+b c |
+@end lilypond
+
+@strong{\overrideProperty command}
+
+@cindex overrideProperty command
+
+@funindex \overrideProperty
+@funindex overrideProperty
+
+There is another form of the override command,
+@code{\overrideProperty}, which is occasionally required.
+We mention it here for completeness, but for details see
+@rextend{Difficult tweaks}.
+@c Maybe explain in a later iteration  -td
+
+@strong{\tweak command}
+
+@cindex tweak command
+
+@funindex \tweak
+@funindex tweak
+
+The final tweaking command which is available is @code{\tweak}.  This
+should be used when several objects occur at the same musical moment,
+but you only want to change the properties of selected ones, such as a
+single note within a chord.  Using @code{\override} would affect all the
+notes within a chord, whereas @code{\tweak} affects just the following
+item in the input stream.
+
+Here's an example.  Suppose we wish to change the size of the
+middle note head (the E) in a C major chord.  Let's first see what
+@code{\once \override} would do:
+
+@cindex font-size property, example
+@cindex NoteHead, example of overriding
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+<c e g>4
+\once \override NoteHead.font-size = #-3
+<c e g>4
+<c e g>4
+@end lilypond
+
+We see the override affects @emph{all} the note heads in the chord.
+This is because all the notes of a chord occur at the same
+@emph{musical moment}, and the action of @code{\once} is to
+apply the override to all layout objects of the type specified
+which occur at the same musical moment as the @code{\override}
+command itself.
+
+The @code{\tweak} command operates in a different way.  It acts on
+the immediately following item in the input stream.  In its simplest
+form, it is effective only on objects which are created directly
+from the following item, essentially note heads and articulations.
+
+So to return to our example, the size of the middle note of
+a chord would be changed in this way:
+
+@cindex font-size property, example
+@cindex @code{\tweak}, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+<c e g>4
+<c \tweak font-size #-3 e g>4
+@end lilypond
+
+Note that the syntax of @code{\tweak} is different from that of the
+@code{\override} command.  The context should not be specified; in
+fact, it would generate an error to do so.  Both context and layout
+object are implied by the following item in the input stream.  Note
+also that an equals sign should not be present.  So the simple form
+of the @code{\tweak} command is
+
+@example
+\tweak #'@var{layout-property} #@var{value}
+@end example
+
+A @code{\tweak} command can also be used to modify just one in
+a series of articulations, as shown here:
+
+@cindex color property, example
+@cindex @code{\tweak}, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+a4^"Black"
+  -\tweak color #red ^"Red"
+  -\tweak color #green _"Green"
+@end lilypond
+
+@noindent
+Note that the @code{\tweak} command must be preceded by an articulation
+mark since the tweaked expression needs to be applied as an articulation
+itself.  In case of multiple direction overrides (@code{^} or @code{_}),
+the leftmost override wins since it is applied last.
+
+@cindex @code{\tweak}, Accidental
+@cindex @code{\tweak}, specific layout object
+
+Objects such as stems and accidentals are created later, and not
+directly from the following event.  It is still possible to use
+@code{\tweak} on such indirectly created objects by explicitly naming
+the layout object, provided that LilyPond can trace its origin back to
+the original event:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+<\tweak Accidental.color #red   cis4
+ \tweak Accidental.color #green es
+                                  g>
+@end lilypond
+
+This long form of the @code{\tweak} command can be described as
+@example
+\tweak @var{layout-object} #'@var{layout-property} @var{value}
+@end example
+
+@cindex tuplets, nested
+@cindex triplets, nested
+@cindex bracket, tuplet
+@cindex bracket, triplet
+@cindex tuplet bracket
+@cindex triplet bracket
+
+@funindex TupletBracket
+
+The @code{\tweak} command must also be used to change the
+appearance of one of a set of nested tuplets which begin at the
+same musical moment.  In the following example, the long tuplet
+bracket and the first of the three short brackets begin at the
+same musical moment, so any @code{\override} command would apply
+to both of them.  In the example, @code{\tweak} is used to
+distinguish between them.  The first @code{\tweak} command
+specifies that the long tuplet bracket is to be placed above the
+notes and the second one specifies that the tuplet number is to be
+printed in red on the first short tuplet bracket.
+
+@cindex @code{\tweak}, example
+@cindex direction property, example
+@cindex color property, example
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\tweak direction #up
+\times 4/3 {
+  \tweak color #red
+  \times 2/3 { c8[ c c] }
+  \times 2/3 { c8[ c c] }
+  \times 2/3 { c8[ c c] }
+}
+@end lilypond
+
+If nested tuplets do not begin at the same moment, their
+appearance may be modified in the usual way with
+@code{\override} commands:
+
+@cindex text property, example
+@cindex tuplet-number function, example
+@cindex transparent property, example
+@cindex TupletNumber, example of overriding
+
+@c NOTE Tuplet brackets collide if notes are high on staff
+@c See issue 509
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
+\times 2/3 { c8[ c c] }
+\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
+\times 2/3 {
+  c8[ c]
+  c8[ c]
+  \once \override TupletNumber.transparent = ##t
+  \times 2/3 { c8[ c c] }
+  \times 2/3 { c8[ c c] }
+}
+@end lilypond
+
+
+@seealso
+Notation Reference:
+@ruser{The tweak command}.
+
+
+@node The Internals Reference manual
+@section The Internals Reference manual
+
+@cindex Internals Reference
+
+@menu
+* Properties of layout objects::
+* Properties found in interfaces::
+* Types of properties::
+@end menu
+
+@node Properties of layout objects
+@subsection Properties of layout objects
+
+@cindex properties of layout objects
+@cindex properties of grobs
+@cindex grobs, properties of
+@cindex layout objects, properties of
+@cindex Internals Reference manual
+
+Suppose you have a slur in a score which, to your mind,
+appears too thin and you'd like to draw it a little heavier.
+How do you go about doing this?  You know from the statements
+earlier about the flexibility of LilyPond that such a thing
+should be possible, and you would probably guess that an
+@code{\override} command would be needed.  But is there a
+heaviness property for a slur, and if there is, how might it
+be modified?  This is where the Internals Reference manual
+comes in.  It contains all the information you might need to
+construct this and all other @code{\override} commands.
+
+Before we look at the Internals Reference a word of warning.
+This is a @strong{reference} document, which means there is
+little or no explanation contained within it: its purpose is
+to present information precisely and concisely.  This
+means it might look daunting at first sight.  Don't worry!
+The guidance and explanation presented here will enable you
+to extract the information from the Internals Reference for
+yourself with just a little practice.
+
+@cindex override example
+@cindex Internals Reference, example of using
+@cindex @code{\addlyrics} example
+
+Let's use a concrete example with a simple fragment of real
+music:
+
+@c Mozart, Die Zauberflöte Nr.7 Duett
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \key es \major
+  \time 6/8
+  {
+    r4 bes8 bes[( g]) g |
+    g8[( es]) es d[( f]) as |
+    as8 g
+  }
+  \addlyrics {
+    The man who | feels love's sweet e -- | mo -- tion
+  }
+}
+@end lilypond
+
+Suppose now that we decide we would like the slurs to be a
+little heavier.  Is this possible?  The slur is certainly a
+layout object, so the question is, @q{Is there a property
+belonging to a slur which controls the heaviness?}  To answer
+this we must look in the Internals Reference, or IR for short.
+
+The IR for the version of LilyPond you are using may be found
+on the LilyPond website at @uref{http://lilypond.org}.  Go to the
+documentation page and click on the Internals Reference link.
+For learning purposes you should use the standard HTML version,
+not the @q{one big page} or the PDF.  For the next few
+paragraphs to make sense you will need to actually do this
+as you read.
+
+Under the heading @strong{Top} you will see five links.  Select
+the link to the @emph{Backend}, which is where information about
+layout objects is to be found.  There, under the heading
+@strong{Backend}, select the link to @emph{All layout objects}.
+The page that appears lists all the layout objects used in your
+version of LilyPond, in alphabetic order.  Select the link to
+Slur, and the properties of Slurs are listed.
+
+An alternative way of finding this page is from the Notation
+Reference.  On one of the pages that deals with slurs you may find a
+link to the Internals Reference.  This link will take you directly to
+this page, but if you have an idea about the name of the layout object
+to be tweaked, it is easier to go straight to the IR and search there.
+
+This Slur page in the IR tells us first that Slur objects are created
+by the Slur_engraver.  Then it lists the standard settings.  Browse
+through them looking for a property that might control the heaviness of
+slurs, and you should find
+
+@example
+@code{thickness} (number)
+     @code{1.2}
+     Line thickness, generally measured in @code{line-thickness}
+@end example
+
+This looks a good bet to change the heaviness.  It tells us that
+the value of @code{thickness} is a simple @emph{number},
+that the default value is 1.2, and that the units are
+in another property called @code{line-thickness}.
+
+As we said earlier, there are few to no explanations in the IR,
+but we already have enough information to try changing the
+slur thickness.  We see that the name of the layout object
+is @code{Slur}, that the name of the property to change is
+@code{thickness} and that the new value should be a number
+somewhat larger than 1.2 if we are to make slurs thicker.
+
+We can now construct the @code{\override} command by simply
+substituting the values we have found for the names, omitting
+the context.  Let's use a very large value for the thickness
+at first, so we can be sure the command is working.  We get:
+
+@example
+\override Slur.thickness = #5.0
+@end example
+
+Don't forget the @code{#'} preceding the
+property name and a@tie{}@code{#} preceding the new value!
+
+The final question is, @q{Where should this command be
+placed?}  While you are unsure and learning, the best
+answer is, @q{Within the music, before the first slur and
+close to it.}  Let's do that:
+
+@cindex Slur example of overriding
+@cindex thickness property, example
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \key es \major
+  \time 6/8
+  {
+    % Increase thickness of all following slurs from 1.2 to 5.0
+    \override Slur.thickness = #5.0
+    r4 bes8 bes[( g]) g |
+    g8[( es]) es d[( f]) as |
+    as8 g
+  }
+  \addlyrics {
+    The man who | feels love's sweet e -- | mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+and we see that the slur is indeed heavier.
+
+So this is the basic way of constructing @code{\override}
+commands.  There are a few more complications that we
+shall meet in later sections, but you now know all the
+essentials required to make up your own -- but you will
+still need some practice.  This is provided in the examples
+which follow.
+
+@subheading Finding the context
+
+@cindex context, finding
+@cindex context, identifying correct
+
+But first, what if we had needed to specify the Context?
+What should it be?  We could guess that slurs are in
+the Voice context, as they are clearly closely associated
+with individual lines of music, but can we be sure?  To
+find out, go back to the top of the IR page describing the
+Slur, where it says @q{Slur objects are created by: Slur
+engraver}.  So slurs will be created in whichever context
+the @code{Slur_engraver} is in.  Follow the link to the
+@code{Slur_engraver} page.  At the very bottom it tells
+us that @code{Slur_engraver} is part of seven Voice contexts,
+including the standard voice context, @code{Voice}, so our
+guess was correct.  And because @code{Voice} is one of the
+lowest level contexts which is implied unambiguously by
+the fact that we are entering notes, we can omit it in this
+location.
+
+@subheading Overriding once only
+
+@cindex overriding once only
+@cindex once override
+
+@funindex \once
+@funindex once
+
+As you can see, @emph{all} the slurs are thicker in the final example
+above.  But what if we wanted just the first slur to be thicker?  This
+is achieved with the @code{\once} command.  Placed immediately before
+the @code{\override} command it causes it to change only the slur
+which begins on the @strong{immediately following} note.  If the
+immediately following note does not begin a slur the command has no
+effect at all -- it is not remembered until a slur is encountered, it
+is simply discarded.  So the command with @code{\once} must be
+repositioned as follows:
+
+@cindex Slur, example of overriding
+@cindex thickness property, example
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \key es \major
+  \time 6/8
+  {
+    r4 bes8
+    % Increase thickness of immediately following slur only
+    \once \override Slur.thickness = #5.0
+    bes8[( g]) g |
+    g8[( es]) es d[( f]) as |
+    as8 g
+  }
+  \addlyrics {
+    The man who | feels love's sweet e -- | mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+Now only the first slur is made heavier.
+
+The @code{\once} command can also be used before the @code{\set}
+command.
+
+@subheading Reverting
+
+@cindex revert
+@cindex default properties, reverting to
+
+@funindex \revert
+@funindex revert
+
+Finally, what if we wanted just the first two slurs to be
+heavier?  Well, we could use two commands, each preceded by
+@code{\once} placed immediately before each of the notes where
+the slurs begin:
+
+@cindex Slur, example of overriding
+@cindex thickness property, example
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \key es \major
+  \time 6/8
+  {
+    r4 bes8
+    % Increase thickness of immediately following slur only
+    \once \override Slur.thickness = #5.0
+    bes[( g]) g |
+    % Increase thickness of immediately following slur only
+    \once \override Slur.thickness = #5.0
+    g8[( es]) es d[( f]) as |
+    as8 g
+  }
+  \addlyrics {
+    The man who | feels love's sweet e -- | mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+or we could omit the @code{\once} command and use the @code{\revert}
+command to return the @code{thickness} property to its default value
+after the second slur:
+
+@cindex Slur, example of overriding
+@cindex thickness property, example
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \key es \major
+  \time 6/8
+  {
+    r4 bes8
+    % Increase thickness of all following slurs from 1.2 to 5.0
+    \override Slur.thickness = #5.0
+    bes[( g]) g |
+    g8[( es]) es
+    % Revert thickness of all following slurs to default of 1.2
+    \revert Slur.thickness
+    d8[( f]) as |
+    as8 g
+  }
+  \addlyrics {
+    The man who | feels love's sweet e -- | mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+The @code{\revert} command can be used to return any property
+changed with @code{\override} back to its default value.
+You may use whichever method best suits what you want to do.
+
+That concludes our introduction to the IR, and the basic
+method of tweaking.  Several examples follow in the later
+sections of this Chapter, partly to introduce you to some of the
+additional features of the IR, and partly to give you more
+practice in extracting information from it.  These examples will
+contain progressively fewer words of guidance and explanation.
+
+
+@node Properties found in interfaces
+@subsection Properties found in interfaces
+
+@cindex interface
+@cindex interface properties
+@cindex properties in interfaces
+
+Suppose now that we wish to print the lyrics in italics.  What form of
+@code{\override} command do we need to do this?  We first look in the
+IR page listing @q{All layout objects}, as before, and look for an
+object that might control lyrics.  We find @code{LyricText}, which
+looks right.  Clicking on this shows the settable properties for lyric
+text.  These include the @code{font-series} and @code{font-size}, but
+nothing that might give an italic shape.  This is because the shape
+property is one that is common to all font objects, so, rather than
+including it in every layout object, it is grouped together with other
+similar common properties and placed in an @strong{Interface}, the
+@code{font-interface}.
+
+So now we need to learn how to find the properties of interfaces,
+and to discover what objects use these interface properties.
+
+Look again at the IR page which describes LyricText.  At the bottom of
+the page is a list of clickable interfaces which LyricText supports.
+The list has several items, including @code{font-interface}.  Clicking
+on this brings up the properties associated with this interface, which
+are also properties of all the objects which support it, including
+LyricText.
+
+Now we see all the user-settable properties which control fonts,
+including @code{font-shape(symbol)}, where @code{symbol} can be
+set to @code{upright}, @code{italics} or @code{caps}.
+
+You will notice that @code{font-series} and @code{font-size} are also
+listed there.  This immediately raises the question: Why are the
+common font properties @code{font-series} and @code{font-size} listed
+under @code{LyricText} as well as under the interface
+@code{font-interface} but @code{font-shape} is not?  The answer is
+that @code{font-series} and @code{font-size} are changed from their
+global default values when a @code{LyricText} object is created, but
+@code{font-shape} is not.  The entries in @code{LyricText} then tell
+you the values for those two properties which apply to
+@code{LyricText}.  Other objects which support @code{font-interface}
+will set these properties differently when they are created.
+
+Let's see if we can now construct the @code{\override} command
+to change the lyrics to italics.  The object is @code{LyricText},
+the property is @code{font-shape} and the value is
+@code{italic}.  As before, we'll omit the context.
+
+As an aside, although it is an important one, note that because the
+values of @code{font-shape} are symbols they must be introduced with a
+single apostrophe, @code{'}.  That is why apostrophes are needed
+before @code{thickness} in the earlier example and @code{font-shape}.
+These are both symbols too.  Symbols are then read internally by
+LilyPond.  Some of them are the names of properties, like
+@code{thickness} or @code{font-shape}, others are used as values that
+can be given to properties, like @code{italic}.  Note the distinction
+from arbitrary text strings, which would appear as @code{"a text
+string"}; for more details about symbols and strings, see
+@rextend{Scheme tutorial}.
+
+So we see that the @code{\override} command needed to print the lyrics
+in italics is:
+
+@example
+\override LyricText.font-shape = #'italic
+@end example
+
+@noindent
+This should be placed just in front of the lyrics we wish to affect,
+like so:
+
+@cindex font-shape property, example
+@cindex italic, example
+@cindex LyricText, example of overriding
+@cindex @code{\addlyrics}, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \key es \major
+  \time 6/8
+  {
+    r4 bes8 bes[( g]) g |
+    g8[( es]) es d[( f]) as |
+    as8 g
+  }
+  \addlyrics {
+    \override LyricText.font-shape = #'italic
+    The man who | feels love's sweet e -- | mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+and the lyrics are all printed in italics.
+
+@subheading Specifying the context in lyric mode
+
+@cindex context, specifying in lyric mode
+@cindex lyric mode, specifying context
+
+In the case of lyrics, if you try specifying the context in the
+format given earlier the command will fail.  A syllable
+entered in lyricmode is terminated by either a space,
+a newline or a digit.  All other characters are included
+as part of the syllable.  For this reason a space or newline
+must appear before the terminating @code{@}} to prevent it being
+included as part of the final syllable.  Similarly,
+spaces must be inserted before and after the
+period or dot, @q{.}, separating the context name from the
+object name, as otherwise the two names are run together and
+the interpreter cannot recognize them.  So the command should be:
+
+@example
+\override Lyrics.LyricText.font-shape = #'italic
+@end example
+
+@warning{In lyrics always leave whitespace between the final
+syllable and the terminating brace.}
+
+@warning{In overrides in lyrics always place spaces around
+the dot between the context name and the object name.}
+
+
+@seealso
+Extending: @rextend{Scheme tutorial}.
+
+
+@node Types of properties
+@subsection Types of properties
+
+@cindex property types
+
+So far we have seen two types of property: @code{number} and
+@code{symbol}.  To be valid, the value given to a property
+must be of the correct type and obey the rules for that type.
+The type of property is always shown in brackets after the
+property name in the IR.  Here is a list of the types you may
+need, together with the rules for that type, and some examples.
+You must always add a hash symbol, @code{#}, of course,
+to the front of these values when they are entered in the
+@code{\override} command.
+
+@multitable @columnfractions .2 .45 .35
+@headitem Property type
+  @tab Rules
+  @tab Examples
+@item Boolean
+  @tab Either True or False, represented by #t or #f
+  @tab @code{#t}, @code{#f}
+@item Dimension (in staff space)
+  @tab A positive decimal number (in units of staff space)
+  @tab @code{2.5}, @code{0.34}
+@item Direction
+  @tab A valid direction constant or its numerical equivalent (decimal
+values between -1 and 1 are allowed)
+  @tab @code{LEFT}, @code{CENTER}, @code{UP},
+       @code{1}, @w{@code{-1}}
+@item Integer
+  @tab A positive whole number
+  @tab @code{3}, @code{1}
+@item List
+  @tab A set of values separated by spaces, enclosed in parentheses
+and preceded by an apostrophe
+  @tab @code{'(left-edge staff-bar)}, @code{'(1)},
+       @code{'(1.0 0.25 0.5)}
+@item Markup
+  @tab Any valid markup
+  @tab @code{\markup @{ \italic "cresc." @}}
+@item Moment
+  @tab A fraction of a whole note constructed with the
+make-moment function
+  @tab @code{(ly:make-moment 1 4)},
+       @code{(ly:make-moment 3 8)}
+@item Number
+  @tab Any positive or negative decimal value
+  @tab @code{3.5}, @w{@code{-2.45}}
+@item Pair (of numbers)
+  @tab Two numbers separated by a @q{space . space} and enclosed
+in brackets preceded by an apostrophe
+  @tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
+@item Symbol
+  @tab Any of the set of permitted symbols for that property,
+preceded by an apostrophe
+  @tab @code{'italic}, @code{'inside}
+@item Unknown
+  @tab A procedure, or @code{#f} to cause no action
+  @tab @code{bend::print}, @code{ly:text-interface::print},
+       @code{#f}
+@item Vector
+  @tab A list of three items enclosed in parentheses and preceded
+by apostrophe-hash, @code{'#}.
+  @tab @code{'#(#t #t #f)}
+@end multitable
+
+
+@seealso
+Extending: @rextend{Scheme tutorial}.
+
+
+@node Appearance of objects
+@section Appearance of objects
+
+Let us now put what we have learned into practice with a few
+examples which show how tweaks may be used to change the
+appearance of the printed music.
+
+@menu
+* Visibility and color of objects::
+* Size of objects::
+* Length and thickness of objects::
+@end menu
+
+@node Visibility and color of objects
+@subsection Visibility and color of objects
+
+In the educational use of music we might wish to print a score
+with certain elements omitted as an exercise for the student,
+who is required to supply them.  As a simple example,
+let us suppose the exercise is to supply the missing bar lines
+in a piece of music.  But the bar lines are normally inserted
+automatically.  How do we prevent them printing?
+
+Before we tackle this, let us remember that object properties are
+grouped in what are called @emph{interfaces} -- see @ref{Properties
+found in interfaces}.  This is simply to group together those
+properties that may be used together to tweak a graphical object -- if
+one of them is allowed for an object, so are the others.  Some objects
+then use the properties in some interfaces, others use them from other
+interfaces.  The interfaces which contain the properties used by a
+particular grob are listed in the IR at the bottom of the page
+describing that grob, and those properties may be viewed by looking at
+those interfaces.
+
+We explained how to find information about grobs in @ref{Properties of
+layout objects}.  Using the same approach, we go to the IR to find the
+layout object which prints bar lines.  Going via @emph{Backend} and
+@emph{All layout objects} we find there is a layout object called
+@code{BarLine}.  Its properties include two that control its
+visibility: @code{break-visibility} and @code{stencil}.  Barline also
+supports a number of interfaces, including the @code{grob-interface},
+where we find the @code{transparent} and the @code{color} properties.
+All of these can affect the visibility of bar lines (and, of course,
+by extension, many other layout objects too.)  Let's consider each of
+these in turn.
+
+@subheading stencil
+
+@cindex stencil property
+
+This property controls the appearance of the bar lines by specifying
+the symbol (glyph) which should be printed.  In common
+with many other properties, it can be set to print nothing by
+setting its value to @code{#f}.  Let's try it, as before, omitting
+the implied Context, @code{Voice}:
+
+@cindex BarLine, example of overriding
+@cindex stencil property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override BarLine.stencil = ##f
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+The bar lines are still printed.  What is wrong?  Go back to the IR
+and look again at the page giving the properties of BarLine.  At the
+top of the page it says @qq{Barline objects are created by:
+Bar_engraver}.  Go to the @code{Bar_engraver} page.  At the bottom it
+gives a list of Contexts in which the bar engraver operates.  All of
+them are of the type @code{Staff}, so the reason the @code{\override}
+command failed to work as expected is because @code{Barline} is not in
+the default @code{Voice} context.  If the context is specified
+incorrectly, the command simply does not work.  No error message is
+produced, and nothing is logged in the log file.  Let's try correcting
+it by adding the correct context:
+
+@cindex BarLine, example of overriding
+@cindex stencil property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine.stencil = ##f
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+Now the bar lines have vanished.
+
+Note, though, that setting the @code{stencil} property to @code{#f}
+will cause errors when the dimensions of the object are required for
+correct processing.  For example, errors will be generated if the
+@code{stencil} property of the @code{NoteHead} object is set to
+@code{#f}.  If this is the case, you can instead use the
+@code{point-stencil} function, which sets the stencil to a object
+with zero size:
+
+@lilypond[quote,verbatim,relative=2]
+{
+  c4 c
+  \once \override NoteHead.stencil = #point-stencil
+  c4 c
+}
+@end lilypond
+
+@subheading break-visibility
+
+@cindex break-visibility property
+
+We see from the @code{BarLine} properties in the IR that the
+@code{break-visibility} property requires a vector of three booleans.
+These control respectively whether bar lines are printed at the end of
+a line, in the middle of lines, and at the beginning of lines.  For
+our example we want all bar lines to be suppressed, so the value we
+need is @code{'#(#f #f #f)}.  Let's try that, remembering to include
+the @code{Staff} context.  Note also that in writing this value we
+have @code{#'#} before the opening bracket.  The @code{'#} is required
+as part of the value to introduce a vector, and the first@tie{}@code{#} is
+required, as always, to precede the value itself in the
+@code{\override} command.
+
+@cindex BarLine, example of overriding
+@cindex break-visibility property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine.break-visibility = #'#(#f #f #f)
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+And we see this too removes all the bar lines.
+
+@subheading transparent
+
+@cindex transparent property
+@cindex transparency
+
+We see from the properties specified in the @code{grob-interface} page
+in the IR that the @code{transparent} property is a boolean.  This
+should be set to @code{#t} to make the grob transparent.  In this next
+example let us make the time signature invisible rather than the bar
+lines.  To do this we need to find the grob name for the time
+signature.  Back to the @q{All layout objects} page in the IR to find
+the properties of the @code{TimeSignature} layout object.  This is
+produced by the @code{Time_signature_engraver} which you can check
+also lives in the @code{Staff} context and also supports the
+@code{grob-interface}.  So the command to make the time signature
+transparent is:
+
+@cindex TimeSignature, example of overriding
+@cindex transparent property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.TimeSignature.transparent = ##t
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+The time signature is gone, but this command leaves a gap where
+the time signature should be.  Maybe this is what is wanted for
+an exercise for the student to fill it in, but in other
+circumstances a gap might be undesirable.  To remove it, the
+stencil for the time signature should be set to @code{#f}
+instead:
+
+@cindex TimeSignature, example of overriding
+@cindex stencil property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.TimeSignature.stencil = ##f
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+and the difference is obvious: setting the stencil to @code{#f}
+removes the object entirely; making the object @code{transparent}
+leaves it where it is, but makes it invisible.
+
+@subheading color
+
+@cindex color property
+
+Finally let us try making the bar lines invisible by coloring
+them white.  (There is a difficulty with this in that the
+white bar line may or may not blank out the staff lines where
+they cross.  You may see in some of the examples below that this
+happens unpredictably.  The details of why this is so and how to
+control it are covered in @ruser{Painting objects white}.  But at
+the moment we are learning about color, so please just accept this
+limitation for now.)
+
+The @code{grob-interface} specifies that the
+color property value is a list, but there is no
+explanation of what that list should be.  The list it
+requires is actually a list of values in internal units,
+but, to avoid having to know what these are, several ways
+are provided to specify colors.  The first way is to use one
+of the @q{normal} colors listed in the first table in
+@ruser{List of colors}.  To set the bar lines to white
+we write:
+
+@cindex BarLine, example of overriding
+@cindex color property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine.color = #white
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+and again, we see the bar lines are not visible.  Note that
+@emph{white} is not preceded by an apostrophe -- it is not
+a symbol, but a @emph{function}.  When called, it provides
+the list of internal values required to set the color to
+white.  The other colors in the normal list are functions
+too.  To convince yourself this is working you might like
+to change the color to one of the other functions in the
+list.
+
+@cindex color, X11
+@cindex X11 colors
+
+@funindex x11-color
+
+The second way of changing the color is to use the list of
+X11 color names in the second list in @ruser{List of colors}.
+However, these must be preceded by another function, which
+converts X11 color names into the list of internal values,
+@code{x11-color}, like this:
+
+@cindex BarLine, example of overriding
+@cindex color property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine.color = #(x11-color 'white)
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+Note that in this case the function @code{x11-color} takes
+a symbol as an argument, so the symbol must be preceded by
+an apostrophe and the two enclosed in brackets.
+
+@cindex rgb colors
+@cindex color, rgb
+
+@funindex rgb-color
+
+There is yet a third function, one which converts RGB values into
+internal colors -- the @code{rgb-color} function.  This takes
+three arguments giving the intensities of the red, green and
+blue colors.  These take values in the range 0 to 1.  So to
+set the color to red the value should be @code{(rgb-color 1 0 0)}
+and to white it should be @code{(rgb-color 1 1 1)}:
+
+@cindex BarLine, example of overriding
+@cindex color property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine.color = #(rgb-color 1 1 1)
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+Finally, there is also a grey scale available as part of the
+X11 set of colors.  These range from black, @code{'grey0},
+to white, @code{'grey100}, in steps of 1.  Let's illustrate
+this by setting all the layout objects in our example to
+various shades of grey:
+
+@cindex StaffSymbol, example of overriding
+@cindex TimeSignature, example of overriding
+@cindex Clef, example of overriding
+@cindex NoteHead, example of overriding
+@cindex Stem, example of overriding
+@cindex BarLine, example of overriding
+@cindex color property, example
+@cindex x11-color, example of using
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.StaffSymbol.color = #(x11-color 'grey30)
+  \override Staff.TimeSignature.color = #(x11-color 'grey60)
+  \override Staff.Clef.color = #(x11-color 'grey60)
+  \override Voice.NoteHead.color = #(x11-color 'grey85)
+  \override Voice.Stem.color = #(x11-color 'grey85)
+  \override Staff.BarLine.color = #(x11-color 'grey10)
+  c4 b8 c d16 c d8 |
+  g,8 a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+Note the contexts associated with each of the layout objects.
+It is important to get these right, or the commands will not
+work!  Remember, the context is the one in which the appropriate
+engraver is placed.  The default context for engravers can be
+found by starting from the layout object, going from there to
+the engraver which produces it, and on the engraver page in the
+IR it tells you in which context the engraver will normally be
+found.
+
+
+@node Size of objects
+@subsection Size of objects
+
+@cindex changing size of objects
+@cindex size of objects
+@cindex objects, size of
+@cindex objects, changing size of
+
+Let us begin by looking again at the earlier example
+(see @ref{Nesting music expressions}) which showed
+how to introduce a new temporary staff, as in an @rglos{ossia}.
+
+@cindex alignAboveContext property, example
+@cindex @code{\with}, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f8 c c }
+      \new Staff \with {
+        alignAboveContext = #"main" }
+      { f8 f c }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+Ossia are normally written without clef and time signature, and
+are usually printed slightly smaller than the main staff.  We
+already know now how to remove the clef and time signature --
+we simply set the stencil of each to @code{#f}, as follows:
+
+@cindex alignAboveContext property, example
+@cindex @code{\with}, example
+@cindex stencil property, example
+@cindex Clef, example of overriding
+@cindex TimeSignature, example of overriding
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f8 c c }
+      \new Staff \with {
+        alignAboveContext = #"main"
+      }
+      {
+        \override Staff.Clef.stencil = ##f
+        \override Staff.TimeSignature.stencil = ##f
+        { f8 f c }
+      }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+@noindent
+where the extra pair of braces after the @code{\with} clause are
+required to ensure the enclosed overrides and music are applied
+to the ossia staff.
+
+But what is the difference between modifying the staff context by
+using @code{\with} and modifying the stencils of the clef and the
+time signature with \override?  The main difference is that
+changes made in a @code{\with} clause are made at the time the
+context is created, and remain in force as the @strong{default}
+values for the duration of that context, whereas
+@code{\set} or @code{\override} commands embedded in the
+music are dynamic -- they make changes synchronized with
+a particular point in the music.  If changes are unset or
+reverted using @code{\unset} or @code{\revert} they return to
+their default values, which will be the ones set in the
+@code{\with} clause, or if none have been set there, the normal
+default values.
+
+Some context properties can be modified only in @code{\with} clauses.
+These are those properties which cannot sensibly be changed after the
+context has been created.  @code{alignAboveContext} and its partner,
+@code{alignBelowContext}, are two such properties -- once the staff
+has been created its alignment is decided and it would make no sense
+to try to change it later.
+
+The default values of layout object properties can also be set
+in @code{\with} clauses.  Simply use the normal @code{\override}
+command leaving out the context name, since this is unambiguously
+defined as the context which the @code{\with} clause is modifying.
+If fact, an error will be generated if a context is specified
+in this location.
+
+So we could replace the example above with
+
+@cindex alignAboveContext property, example
+@cindex @code{\with}, example
+@cindex Clef, example of overriding
+@cindex TimeSignature, example of overriding
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f8 c c }
+      \new Staff \with {
+        alignAboveContext = #"main"
+        % Don't print clefs in this staff
+        \override Clef.stencil = ##f
+        % Don't print time signatures in this staff
+        \override TimeSignature.stencil = ##f
+      }
+      { f8 f c }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+Finally we come to changing the size of layout objects.
+
+Some layout objects are created as glyphs selected from a typeface
+font.  These include note heads, accidentals, markup, clefs, time
+signatures, dynamics and lyrics.  Their size is changed by modifying
+the @code{font-size} property, as we shall shortly see.  Other layout
+objects such as slurs and ties -- in general, spanner objects -- are
+drawn individually, so there is no @code{font-size} associated with
+them.  These objects generally derive their size from the objects to
+which they are attached, so usually there is no need to change their
+size manually.  Still other properties such as the length of stems and
+bar lines, thickness of beams and other lines, and the separation of
+staff lines all need to be modified in special ways.
+
+Returning to the ossia example, let us first change the font-size.
+We can do this in two ways.  We can either change the size of the
+fonts of each object type, like @code{NoteHead}s with commands
+like
+
+@example
+\override NoteHead.font-size = #-2
+@end example
+
+or we can change the size of all fonts by setting a special
+property, @code{fontSize}, using @code{\set}, or by including
+it in a @code{\with} clause (but without the @code{\set}).
+
+@example
+\set fontSize = #-2
+@end example
+
+Both of these statements would cause the font size to be reduced
+by 2 steps from its previous value, where each
+step reduces or increases the size by approximately 12%.
+
+Let's try it in our ossia example:
+
+@cindex alignAboveContext property, example
+@cindex @code{\with}, example
+@cindex Clef, example of overriding
+@cindex TimeSignature, example of overriding
+@cindex fontSize property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f8 c c }
+      \new Staff \with {
+        alignAboveContext = #"main"
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
+        % Reduce all font sizes by ~24%
+        fontSize = #-2
+      }
+      { f8 f c }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+This is still not quite right.  The note heads and flags are
+smaller, but the stems are too long in proportion and the
+staff lines are spaced too widely apart.  These need to be
+scaled down in proportion to the font reduction.  The next
+sub-section discusses how this is done.
+
+@node Length and thickness of objects
+@subsection Length and thickness of objects
+
+@cindex distances
+@cindex thickness
+@cindex length
+@cindex magstep
+@cindex size, changing
+@cindex stem length, changing
+@cindex staff line spacing, changing
+
+Distances and lengths in LilyPond are generally measured in
+staff-spaces, the distance between adjacent lines in the staff,
+(or occasionally half staff spaces) while most @code{thickness}
+properties are measured in units of an internal property called
+@code{line-thickness.}  For example, by default, the lines of
+hairpins are given a thickness of 1 unit of @code{line-thickness},
+while the @code{thickness} of a note stem is 1.3.  Note, though,
+that some thickness properties are different; for example, the
+thickness of beams is controlled by the value of the
+@code{beam-thickness} property, which is measured in staff-spaces.
+
+So how are lengths to be scaled in proportion to the font size?
+This can be done with the help of a special function called
+@code{magstep} provided for exactly this purpose.  It takes
+one argument, the change in font size (#-2 in the example above)
+and returns a scaling factor suitable for reducing other
+objects in proportion.  It is used like this:
+
+@cindex alignAboveContext property, example
+@cindex @code{\with}, example
+@cindex Clef, example of overriding
+@cindex TimeSignature, example of overriding
+@cindex fontSize property, example
+@cindex StaffSymbol, example of overriding
+@cindex magstep function, example of using
+@cindex staff-space property, example
+@cindex stencil property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f8 c c }
+      \new Staff \with {
+        alignAboveContext = #"main"
+        \override Clef.stencil = ##f
+        \override TimeSignature.stencil = ##f
+        fontSize = #-2
+        % Reduce stem length and line spacing to match
+        \override StaffSymbol.staff-space = #(magstep -2)
+      }
+      { f8 f c }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+@noindent
+Since the length of stems and many other length-related properties are
+always calculated relative to the value of the @code{staff-space}
+property these are automatically scaled down in length too.  Note that
+this affects only the vertical scale of the ossia -- the horizontal
+scale is determined by the layout of the main music in order to remain
+synchronized with it, so it is not affected by any of these changes in
+size.  Of course, if the scale of all the main music were changed in
+this way then the horizontal spacing would be affected.  This is
+discussed later in the layout section.
+
+This, then, completes the creation of an ossia.  The sizes and
+lengths of all other objects may be modified in analogous ways.
+
+For small changes in scale, as in the example above, the
+thickness of the various drawn lines such as bar lines,
+beams, hairpins, slurs, etc does not usually require global
+adjustment.  If the thickness of any particular layout object
+needs to be adjusted this can be best achieved by overriding its
+@code{thickness} property.  An example of changing the thickness
+of slurs was shown above in @ref{Properties of layout objects}.
+The thickness of all drawn objects (i.e., those not produced
+from a font) may be changed in the same way.
+
+
+@node Placement of objects
+@section Placement of objects
+
+@menu
+* Automatic behavior::
+* Within-staff objects::
+* Outside-staff objects::
+@end menu
+
+
+@node Automatic behavior
+@subsection Automatic behavior
+
+@cindex within-staff objects
+@cindex outside-staff objects
+@cindex objects, within-staff
+@cindex objects, outside-staff
+
+There are some objects in musical notation that belong to
+the staff and there are other objects that should be
+placed outside the staff.  These are called within-staff
+objects and outside-staff objects respectively.
+
+Within-staff objects are those that are located on the staff
+-- note heads, stems, accidentals, etc.  The positions of
+these are usually fixed by the music itself -- they are
+vertically positioned on specific lines of the staff or are
+tied to other objects that are so positioned.  Collisions of
+note heads, stems and accidentals in closely set chords are
+normally avoided automatically.  There are commands and
+overrides which can modify this automatic behavior, as we
+shall shortly see.
+
+Objects belonging outside the staff include things such as
+rehearsal marks, text and dynamic markings.  LilyPond's rule for
+the vertical placement of outside-staff objects is to place them
+as close to the staff as possible but not so close that they
+collide with any other object.  LilyPond uses the
+@code{outside-staff-priority} property to determine the order in
+which the objects should be placed, as follows.
+
+First, LilyPond places all the within-staff objects.
+Then it sorts the outside-staff objects according to their
+@code{outside-staff-priority}.  The outside-staff objects are
+taken one by one, beginning with the object with the lowest
+@code{outside-staff-priority}, and placed so that they do not
+collide with any objects that have already been placed.  That is,
+if two outside-staff grobs are competing for the same space, the
+one with the lower @code{outside-staff-priority} will be placed
+closer to the staff.  If two objects have the same
+@code{outside-staff-priority} the one encountered first will be
+placed closer to the staff.
+
+In the following example all the markup texts have the same
+priority (since it is not explicitly set).  Note that @q{Text3}
+is automatically positioned close to the staff again, nestling
+under @q{Text2}.
+
+@cindex markup example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+c2^"Text1"
+c2^"Text2" |
+c2^"Text3"
+c2^"Text4" |
+@end lilypond
+
+Staves are also positioned, by default, as closely together as
+possible (subject to a minimum separation).  If notes project
+a long way towards an adjacent staff they will force the
+staves further apart only if an overlap of the notation
+would otherwise occur.  The following example demonstrates
+this @q{nestling} of the notes on adjacent staves:
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+  \new Staff {
+    \relative c' { c4 a, }
+  }
+  \new Staff {
+    \relative c'''' { c4 a, }
+  }
+>>
+@end lilypond
+
+
+@node Within-staff objects
+@subsection Within-staff objects
+
+We have already seen how the commands @code{\voiceXXX} affect the
+direction of slurs, ties, fingering and everything else which depends on
+the direction of the stems -- see @ref{Explicitly instantiating voices}.
+These commands are essential when writing polyphonic music to permit
+interweaving melodic lines to be distinguished.  But occasionally it may
+be necessary to override this automatic behavior.  This can be done for
+whole sections of music or even for an individual note.  The property
+which controls this behavior is the @code{direction} property of each
+layout object.  We first explain what this does, and then introduce a
+number of ready-made commands which avoid your having to code explicit
+overrides for the more common modifications.
+
+Some layout objects like slurs and ties curve, bend or point
+either up or down; others like stems and flags also move to
+right or left when they point up or down.  This is controlled
+automatically when @code{direction} is set.
+
+@cindex down
+@cindex up
+@cindex center
+@cindex neutral
+
+The following example shows in bar 1 the default behavior of stems,
+with those on high notes pointing down and those on low notes pointing
+up, followed by four notes with all stems forced down, four notes with
+all stems forced up, and finally four notes reverted back to the
+default behavior.
+
+@cindex Stem, example of overriding
+@cindex direction property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+a4 g c a |
+\override Stem.direction = #DOWN
+a4 g c a |
+\override Stem.direction = #UP
+a4 g c a |
+\revert Stem.direction
+a4 g c a |
+@end lilypond
+
+Here we use the constants @code{DOWN} and @code{UP}.
+These have the values @w{@code{-1}} and @code{+1} respectively, and
+these numerical values may be used instead.  The value @code{0}
+may also be used in some cases.  It is simply treated as meaning
+@code{UP} for stems, but for some objects it means @q{center}.
+There is a constant, @code{CENTER} which has the value @code{0}.
+
+However, these explicit overrides are not usually used, as there are
+simpler equivalent predefined commands available.  Here is a table of
+the commonest.  The meaning of each is stated where it is not obvious.
+
+@multitable @columnfractions .2 .2 .25 .35
+@headitem Down/Left
+  @tab Up/Right
+  @tab Revert
+  @tab Effect
+@item @code{\arpeggioArrowDown}
+  @tab @code{\arpeggioArrowUp}
+  @tab @code{\arpeggioNormal}
+  @tab Arrow is at bottom, at top, or no arrow
+@item @code{\dotsDown}
+  @tab @code{\dotsUp}
+  @tab @code{\dotsNeutral}
+  @tab Direction of movement to avoid staff lines
+@item @code{\dynamicDown}
+  @tab @code{\dynamicUp}
+  @tab @code{\dynamicNeutral}
+  @tab
+@item @code{\phrasingSlurDown}
+  @tab @code{\phrasingSlurUp}
+  @tab @code{\phrasingSlurNeutral}
+  @tab Note: distinct from slur commands
+@item @code{\slurDown}
+  @tab @code{\slurUp}
+  @tab @code{\slurNeutral}
+  @tab
+@item @code{\stemDown}
+  @tab @code{\stemUp}
+  @tab @code{\stemNeutral}
+  @tab
+@item @code{\textSpannerDown}
+  @tab @code{\textSpannerUp}
+  @tab @code{\textSpannerNeutral}
+  @tab Text entered as spanner is below/above staff
+@item @code{\tieDown}
+  @tab @code{\tieUp}
+  @tab @code{\tieNeutral}
+  @tab
+@item @code{\tupletDown}
+  @tab @code{\tupletUp}
+  @tab @code{\tupletNeutral}
+  @tab Tuplets are below/above notes
+@end multitable
+
+Note that these predefined commands may @strong{not} be
+preceded by @code{\once}.  If you wish to limit the
+effect to a single note you must either use the equivalent
+@code{\once \override} command or use the predefined command
+followed after the affected note by the corresponding
+@code{\xxxNeutral} command.
+
+@unnumberedsubsubsec Fingering
+
+@cindex fingering, placement
+@cindex fingering, chords
+
+The placement of fingering on single notes can also be controlled
+by the @code{direction} property, but changing @code{direction}
+has no effect on chords.  As we shall see, there are special
+commands which allow the fingering of individual notes
+of chords to be controlled, with the fingering being placed
+above, below, to the left or to the right of each note.
+
+First, here's the effect of @code{direction} on the fingering
+attached to single notes.  The first bar shows the default
+behaviour, and the following two bars shows the effect of
+specifying @code{DOWN} and @code{UP}:
+
+@cindex Fingering, example of overriding
+@cindex direction property, example
+
+@lilypond[quote,verbatim,relative=2]
+c4-5 a-3 f-1 c'-5 |
+\override Fingering.direction = #DOWN
+c4-5 a-3 f-1 c'-5 |
+\override Fingering.direction = #UP
+c4-5 a-3 f-1 c'-5 |
+@end lilypond
+
+However, overriding the @code{direction} property is not the
+easiest way of manually setting the fingering above or below
+the notes; using @code{_} or @code{^} instead of @code{-} before
+the fingering number is usually preferable.  Here is the previous
+example using this method:
+
+@cindex fingering example
+
+@lilypond[quote,verbatim,relative=2]
+c4-5 a-3 f-1 c'-5 |
+c4_5 a_3 f_1 c'_5 |
+c4^5 a^3 f^1 c'^5 |
+@end lilypond
+
+The @code{direction} property is ignored for chords, but the
+directional prefixes, @code{_} and @code{^} do work.  By default,
+the fingering is automatically placed both above and below the
+notes of a chord, as shown:
+
+@cindex fingering example
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3>4
+<c-5 g-3 e-2>4
+<c-5 g-3 e-2 c-1>4
+@end lilypond
+
+@noindent
+but this may be overridden to manually force all or any of the
+individual fingering numbers above or below:
+
+@cindex fingering example
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3 e-2 c-1>4
+<c^5 g_3 e_2 c_1>4
+<c^5 g^3 e^2 c_1>4
+@end lilypond
+
+Even greater control over the placement of fingering of the
+individual notes in a chord is possible by using the
+@code{\set fingeringOrientations} command.  The format of this
+command is:
+
+@example
+@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+@end example
+
+@noindent
+@code{\set} is used because @code{fingeringOrientations} is a
+property of the @code{Voice} context, created and used by the
+@code{New_fingering_engraver}.
+
+The property may be set to a list of one to three values.
+It controls whether fingerings may be placed above (if
+@code{up} appears in the list), below (if @code{down} appears),
+to the left (if @code{left} appears, or to the right
+(if @code{right} appears).  Conversely, if a location is not
+listed, no fingering is placed there.  LilyPond takes these
+constraints and works out the best placement for the fingering
+of the notes of the following chords.  Note that @code{left} and
+@code{right} are mutually exclusive -- fingering may be placed
+only on one side or the other, not both.
+
+@warning{To control the placement of the fingering of a single
+note using this command it is necessary to write it as a single
+note chord by placing angle brackets round it.}
+
+Here are a few examples:
+
+@cindex fingering example
+@cindex @code{\set}, example of using
+@cindex fingeringOrientations property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+\set fingeringOrientations = #'(left)
+<f-2>4
+<c-1 e-2 g-3 b-5>4
+\set fingeringOrientations = #'(left)
+<f-2>4
+<c-1 e-2 g-3 b-5>4 |
+\set fingeringOrientations = #'(up left down)
+<f-2>4
+<c-1 e-2 g-3 b-5>4
+\set fingeringOrientations = #'(up left)
+<f-2>4
+<c-1 e-2 g-3 b-5>4 |
+\set fingeringOrientations = #'(right)
+<f-2>4
+<c-1 e-2 g-3 b-5>4
+@end lilypond
+
+@noindent
+If the fingering seems a little crowded the @code{font-size}
+could be reduced.  The default value can be seen from the
+@code{Fingering} object in the IR to be @w{@code{-5}}, so let's
+try @w{@code{-7}}:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+\override Fingering.font-size = #-7
+\set fingeringOrientations = #'(left)
+<f-2>4
+<c-1 e-2 g-3 b-5>4
+\set fingeringOrientations = #'(left)
+<f-2>4
+<c-1 e-2 g-3 b-5>4 |
+\set fingeringOrientations = #'(up left down)
+<f-2>4
+<c-1 e-2 g-3 b-5>4
+\set fingeringOrientations = #'(up left)
+<f-2>4
+<c-1 e-2 g-3 b-5>4 |
+\set fingeringOrientations = #'(right)
+<f-2>4
+<c-1 e-2 g-3 b-5>4
+@end lilypond
+
+@node Outside-staff objects
+@subsection Outside-staff objects
+
+Outside-staff objects are automatically placed to avoid collisions.
+Objects with the lower value of the @code{outside-staff-priority}
+property are placed nearer to the staff, and other outside-staff
+objects are then raised as far as necessary to avoid collisions.
+The @code{outside-staff-priority} is defined in the
+@code{grob-interface} and so is a property of all layout objects.
+By default it is set to @code{#f} for all within-staff objects,
+and to a numerical value appropriate to each outside-staff object
+when the object is created.  The following table shows the default
+numerical values for some of the commonest outside-staff objects.
+
+@cindex spanners
+
+Note the unusual names for some of the objects: spanner objects
+are automatically created to control the vertical positioning of
+grobs which (might) start and end at different musical moments, so
+changing the @code{outside-staff-priority} of the underlying grob
+will have no effect.  For example, changing
+@code{outside-staff-priority} of the @code{Hairpin} object will
+have no effect on the vertical positioning of hairpins -- you must
+change @code{outside-staff-priority} of the associated
+@code{DynamicLineSpanner} object instead.  This override must be
+placed at the start of the spanner, which might include several
+linked hairpins and dynamics.
+
+@multitable @columnfractions .3 .3 .3
+@headitem Layout Object
+  @tab Priority
+  @tab Controls position of:
+@item @code{RehearsalMark}
+  @tab @code{1500}
+  @tab Rehearsal marks
+@item @code{MetronomeMark}
+  @tab @code{1000}
+  @tab Metronome marks
+@item @code{VoltaBracketSpanner}
+  @tab @code{600}
+  @tab Volta brackets
+@item @code{TextScript}
+  @tab @code{450}
+  @tab Markup text
+@item @code{MultiMeasureRestText}
+  @tab @code{450}
+  @tab Markup text over full-bar rests
+@item @code{OttavaBracket}
+  @tab @code{400}
+  @tab Ottava brackets
+@item @code{TextSpanner}
+  @tab @code{350}
+  @tab Text spanners
+@item @code{DynamicLineSpanner}
+  @tab @code{250}
+  @tab All dynamic markings
+@item @code{BarNumber}
+  @tab @code{ 100}
+  @tab Bar numbers
+@item @code{TrillSpanner}
+  @tab @code{50}
+  @tab Spanning trills
+@end multitable
+
+Here is an example showing the default placement of some of
+these.
+
+@cindex text spanner
+@cindex ottava bracket
+
+@funindex \startTextSpan
+@funindex startTextSpan
+@funindex \stopTextSpan
+@funindex stopTextSpan
+
+@cindex TextSpanner, example of overriding
+@cindex bound-details property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+% Set details for later Text Spanner
+\override TextSpanner.bound-details.left.text
+    = \markup { \small \bold Slower }
+% Place dynamics above staff
+\dynamicUp
+% Start Ottava Bracket
+\ottava #1
+c'4 \startTextSpan
+% Add Dynamic Text and hairpin
+c4\pp\<
+c4
+% Add Text Script
+c4^Text |
+c4 c
+% Add Dynamic Text and terminate hairpin
+c4\ff c \stopTextSpan |
+% Stop Ottava Bracket
+\ottava #0
+c,4 c c c |
+@end lilypond
+
+This example also shows how to create Text Spanners --
+text with extender lines above a section of music.  The
+spanner extends from the @code{\startTextSpan} command to
+the @code{\stopTextSpan} command, and the format of the
+text is defined by the @code{\override TextSpanner} command.
+For more details see @ruser{Text spanners}.
+
+It also shows how ottava brackets are created.
+
+@cindex tweaking bar number placement
+@cindex bar numbers, tweaking placement
+@cindex tweaking metronome mark placement
+@cindex metronome mark, tweaking placement
+@cindex tweaking rehearsal mark placement
+@cindex rehearsal marks, tweaking placement
+
+If the default values of @code{outside-staff-priority} do not give you
+the placing you want, the priority of any of the objects may be
+overridden.  Suppose we would like the ottava bracket to be placed
+below the text spanner in the example above.  All we need to do is to
+look up the priority of @code{OttavaBracket} in the IR or in the
+tables above, and reduce it to a value lower than that of a
+@code{TextSpanner}, remembering that @code{OttavaBracket} is created
+in the @code{Staff} context:
+
+@cindex TextSpanner, example of overriding
+@cindex bound-details property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+% Set details for later Text Spanner
+\override TextSpanner.bound-details.left.text
+    = \markup { \small \bold Slower }
+% Place dynamics above staff
+\dynamicUp
+% Place following Ottava Bracket below Text Spanners
+\once \override Staff.OttavaBracket.outside-staff-priority = #340
+% Start Ottava Bracket
+\ottava #1
+c'4 \startTextSpan
+% Add Dynamic Text
+c4\pp
+% Add Dynamic Line Spanner
+c4\<
+% Add Text Script
+c4^Text |
+c4 c
+% Add Dynamic Text
+c4\ff c \stopTextSpan |
+% Stop Ottava Bracket
+\ottava #0
+c,4 c c c |
+@end lilypond
+
+Note that some of these objects, in particular bar numbers,
+metronome marks and rehearsal marks, live by default in the
+@code{Score} context, so be sure to use the correct context
+when these are being overriden.
+
+@cindex slurs and outside-staff-priority
+@cindex slurs and articulations
+@cindex articulations and slurs
+
+Slurs by default are classed as within-staff objects, but
+they often appear above the staff if the notes to
+which they are attached are high on the staff.  This can push
+outside-staff objects such as articulations too high, as the slur
+will be placed first.  The @code{avoid-slur} property of the
+articulation can be set to @code{'inside} to bring the articulation
+inside the slur, but the @code{avoid-slur} property is effective
+only if the @code{outside-staff-priority} is also set to @code{#f}.
+Alternatively, the @code{outside-staff-priority} of the slur
+can be set to a numerical value to cause it to be placed along with
+other outside-staff objects according to that value.  Here's an
+example showing the effect of the two methods:
+
+@lilypond[quote,verbatim,relative=2]
+c4( c^\markup { \tiny \sharp } d4.) c8 |
+c4(
+\once \override TextScript.avoid-slur = #'inside
+\once \override TextScript.outside-staff-priority = ##f
+c4^\markup { \tiny \sharp } d4.) c8 |
+\once \override Slur.outside-staff-priority = #500
+c4( c^\markup { \tiny \sharp } d4.) c8 |
+@end lilypond
+
+Changing the @code{outside-staff-priority} can also be used to
+control the vertical placement of individual objects, although
+the results may not always be desirable.  Suppose we would
+like @qq{Text3} to be placed above @qq{Text4} in the example
+under Automatic behavior, above (see @ref{Automatic behavior}).
+All we need to do is to look up the priority of @code{TextScript}
+in the IR or in the tables above, and increase the priority of
+@qq{Text3} to a higher value:
+
+@cindex TextScript, example of overriding
+@cindex outside-staff-priority property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+c2^"Text1"
+c2^"Text2" |
+\once \override TextScript.outside-staff-priority = #500
+c2^"Text3"
+c2^"Text4" |
+@end lilypond
+
+This certainly lifts @qq{Text3} above @qq{Text4} but it also lifts it
+above @qq{Text2}, and @qq{Text4} now drops down.  Perhaps this is not
+so good.  What we would really like to do is to position all the
+annotation at the same distance above the staff.  To do this, we
+clearly will need to space the notes out horizontally to make more
+room for the text.  This is done using the @code{textLengthOn}
+command.
+
+@subheading \textLengthOn
+
+@cindex notes, spreading out with text
+
+@funindex \textLengthOn
+@funindex textLengthOn
+@funindex \textLengthOff
+@funindex textLengthOff
+
+By default, text produced by markup takes up no horizontal space
+as far as laying out the music is concerned.  The @code{\textLengthOn}
+command reverses this behavior, causing the notes to be spaced
+out as far as is necessary to accommodate the text:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\textLengthOn  % Cause notes to space out to accommodate text
+c2^"Text1"
+c2^"Text2" |
+c2^"Text3"
+c2^"Text4" |
+@end lilypond
+
+The command to revert to the default behavior is
+@code{\textLengthOff}.  Remember @code{\once} only works with
+@code{\override}, @code{\set}, @code{\revert} or @code{\unset},
+so cannot be used with @code{\textLengthOn}.
+
+@cindex markup text, allowing collisions
+
+Markup text will also avoid notes which project above the staff.
+If this is not desired, the automatic displacement upwards may
+be turned off by setting the priority to @code{#f}.  Here's an
+example to show how markup text interacts with such notes.
+
+@cindex TextScript, example of overriding
+@cindex outside-staff-priority property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+% This markup is short enough to fit without collision
+c2^"Tex" c'' |
+R1 |
+
+% This is too long to fit, so it is displaced upwards
+c,,2^"Text" c'' |
+R1 |
+
+% Turn off collision avoidance
+\once \override TextScript.outside-staff-priority = ##f
+c,,2^"Long Text   " c'' |
+R1 |
+
+% Turn off collision avoidance
+\once \override TextScript.outside-staff-priority = ##f
+\textLengthOn        % and turn on textLengthOn
+c,,2^"Long Text   "  % Spaces at end are honored
+c''2 |
+@end lilypond
+
+
+@subheading Dynamics
+
+@cindex tweaking dynamics placement
+@cindex dynamics, tweaking placement
+
+Dynamic markings will normally be positioned beneath the
+staff, but may be positioned above with the @code{\dynamicUp}
+command.  They will be positioned vertically relative to the
+note to which they are attached, and will float below (or above)
+all within-staff objects such as phrasing slurs and bar numbers.
+This can give quite acceptable results, as this example
+shows:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+\clef "bass"
+\key aes \major
+\time 9/8
+\dynamicUp
+bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
+ees,2.~\)\mf ees4 r8 |
+@end lilypond
+
+However, if the notes and attached dynamics are close
+together the automatic placement will avoid collisions
+by displacing later dynamic markings further away, but this may
+not be the optimum placement, as this rather artificial example
+shows:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+Should a similar situation arise in @q{real} music, it may be
+preferable to space out the notes a little further, so the dynamic
+markings can all fit at the same vertical distance from the staff.  We
+were able to do this for markup text by using the @code{\textLengthOn}
+command, but there is no equivalent command for dynamic marks.  So we
+shall have to work out how to do this using @code{\override} commands.
+
+@subheading Grob sizing
+
+@cindex grob sizing
+@cindex sizing grobs
+
+First we must learn how grobs are sized.  All grobs have a
+reference point defined within them which is used to position
+them relative to their parent object.  This point in the grob
+is then positioned at a horizontal distance, @code{X-offset},
+and at a vertical distance, @code{Y-offset}, from its parent.
+The horizontal extent of the object is given by a pair of
+numbers, @code{X-extent}, which say where the left and right
+edges are relative to the reference point.  The vertical extent
+is similarly defined by a pair of numbers, @code{Y-extent}.
+These are properties of all grobs which support the
+@code{grob-interface}.
+
+@cindex @code{extra-spacing-width}
+
+By default, outside-staff objects are given a width of zero so
+that they may overlap in the horizontal direction.  This is done
+by the trick of adding infinity to the leftmost extent and
+minus infinity to the rightmost extent by setting the
+@code{extra-spacing-width} to @code{'(+inf.0 . -inf.0)}.  So
+to ensure they do not overlap in the horizontal direction we
+must override this value of @code{extra-spacing-width} to
+@code{'(0 . 0)} so the true width shines through.  This is
+the command to do this for dynamic text:
+
+@example
+\override DynamicText.extra-spacing-width = #'(0 . 0)
+@end example
+
+@noindent
+Let's see if this works in our previous example:
+
+@cindex DynamicText, example of overriding
+@cindex extra-spacing-width property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+\override DynamicText.extra-spacing-width = #'(0 . 0)
+a4\f b\mf c\mp b\p |
+@end lilypond
+
+@noindent
+Well, it has certainly stopped the dynamic marks being
+displaced, but two problems remain.  The marks should be
+spaced a little further apart and it would be better
+if they were all the same distance from the staff.
+We can solve the first problem easily.  Instead of making
+the @code{extra-spacing-width} zero we could add a little
+more to it.  The units are the space between two staff
+lines, so moving the left edge half a unit to the left and the
+right edge half a unit to the right should do it:
+
+@cindex DynamicText, example of overriding
+@cindex extra-spacing-width property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+% Extend width by 1 staff space
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+This looks better, but maybe we would prefer the dynamic marks
+to be aligned along the same baseline rather than going up and
+down with the notes.  The property to do this is
+@code{staff-padding} which is covered in the following section.
+
+
+@node Collisions of objects
+@section Collisions of objects
+
+@menu
+* Moving objects::
+* Fixing overlapping notation::
+* Real music example::
+@end menu
+
+@node Moving objects
+@subsection Moving objects
+
+@cindex moving overlapping objects
+@cindex moving colliding objects
+@cindex moving colliding grobs
+@cindex objects, moving colliding
+@cindex grobs, moving colliding
+
+This may come as a surprise, but LilyPond is not perfect.  Some
+notation elements can overlap.  This is unfortunate, but in fact
+rather rare.  Usually the need to move objects is for clarity or
+aesthetic reasons -- they would look better with a little more
+or a little less space around them.
+
+There are three main approaches to resolving overlapping
+notation.  They should be considered in the following order:
+
+@enumerate
+@item
+The @strong{direction} of one of the overlapping objects may
+be changed using the predefined commands listed above for
+within-staff objects (see @ref{Within-staff objects}).
+Stems, slurs, beams, ties, dynamics, text and tuplets may be
+repositioned easily in this way.  The limitation is that you
+have a choice of only two positions, and neither may be
+suitable.
+
+@item
+The @strong{object properties}, which LilyPond uses when positioning
+layout objects, may be modified using @code{\override}.  The
+advantages of making changes to this type of property are (a) that
+some other objects will be moved automatically if necessary to make
+room and (b) the single override can apply to all instances of the
+same type of object.  Such properties include:
+
+@itemize
+
+@item
+@code{direction}
+
+This has already been covered in some detail -- see
+@ref{Within-staff objects}.
+
+@item
+@code{padding}, @code{right-padding}, @code{staff-padding}
+
+@cindex padding
+@cindex padding property
+@cindex right-padding property
+@cindex staff-padding property
+
+As an object is being positioned the value of its @code{padding}
+property specifies the gap that must be left between itself and the
+nearest edge of the object against which it is being positioned.  Note
+that it is the @code{padding} value of the object @strong{being
+placed} that is used; the @code{padding} value of the object which is
+already placed is ignored.  Gaps specified by @code{padding} can be
+applied to all objects which support the
+@code{side-position-interface}.
+
+Instead of @code{padding}, the placement of groups of accidentals
+is controlled by @code{right-padding}.  This property is to be found
+in the @code{AccidentalPlacement} object which, note, lives in the
+@strong{Staff} context.  In the typesetting process the note heads
+are typeset first and then the accidentals, if any, are added to the
+left of the note heads using the @code{right-padding} property to determine
+the separation from the note heads and between individual accidentals.
+So only the @code{right-padding} property of the @code{AccidentalPlacement}
+object has any effect on the placement of the accidentals.
+
+The @code{staff-padding} property is closely related to the
+@code{padding} property: @code{padding} controls the minimum amount of
+space between any object which supports the
+@code{side-position-interface} and the nearest other object (generally
+the note or the staff lines); @code{staff-padding} applies only to
+those objects which are always set outside the staff -- it controls
+the minimum amount of space that should be inserted between that
+object and the staff.  Note that @code{staff-padding} has no effect on
+objects which are positioned relative to the note rather than the
+staff, even though it may be overridden without error for such objects
+-- it is simply ignored.
+
+To discover which padding property is required for the object you wish
+to reposition, you need to return to the IR and look up the object's
+properties.  Be aware that the padding properties might not be located
+in the obvious object, so look in objects that appear to be related.
+
+All padding values are measured in staff spaces.  For most
+objects, this value is set by default to be around 1.0 or less
+(it varies with each object).  It may be overridden if a larger
+(or smaller) gap is required.
+
+@item
+@code{self-alignment-X}
+
+@cindex self-alignment-X property
+
+This property can be used to align the object to the left, to
+the right, or to center it with respect to the parent object's
+reference point.  It may be used with all objects which support
+the @code{self-alignment-interface}.  In general these are objects
+that contain text.  The values are @code{LEFT}, @code{RIGHT}
+or @code{CENTER}.  Alternatively, a numerical value between
+@w{@code{-1}} and @code{+1} may be specified, where @w{@code{-1}} is
+left-aligned, @code{+1} is right-aligned, and numbers in between
+move the text progressively from left-aligned to right-aligned.
+Numerical values greater than @code{1} may be specified to move
+the text even further to the left, or less than @w{@code{-1}} to
+move the text even further to the right.  A change of @code{1}
+in the value corresponds to a movement of half the text's length.
+
+@item
+@code{extra-spacing-width}
+
+@cindex extra-spacing-width property
+
+This property is available for all objects which support the
+@code{item-interface}.  It takes two numbers, the first is added
+to the leftmost extent and the second is added to the rightmost
+extent.  Negative numbers move the edge to the left, positive to
+the right, so to widen an object the first number must be negative,
+the second positive.  Note that not all objects honor both
+numbers.  For example, the @code{Accidental} object only takes
+notice of the first (left edge) number.
+
+@item
+@code{staff-position}
+
+@cindex staff-position property
+
+@code{staff-position} is a property of the
+@code{staff-symbol-referencer-interface}, which is supported by
+objects which are positioned relative to the staff.  It specifies
+the vertical position of the object relative to the center line
+of the staff in half staff-spaces.  It is useful in resolving
+collisions between layout objects like multi-measure rests, ties
+and notes in different voices.
+
+@item
+@code{force-hshift}
+
+@cindex force-hshift property
+
+Closely spaced notes in a chord, or notes occurring at the same
+time in different voices, are arranged in two, occasionally more,
+columns to prevent the note heads overlapping.  These are called
+note columns, and an object called @code{NoteColumn} is created
+to lay out the notes in that column.
+
+The @code{force-hshift} property is a property of a @code{NoteColumn}
+(actually of the @code{note-column-interface}).  Changing it permits a
+note column to be moved in units appropriate to a note column,
+viz. the note head width of the first voice note.  It should be used
+in complex situations where the normal @code{\shiftOn} commands (see
+@ref{Explicitly instantiating voices}) do not resolve the note
+conflict.  It is preferable to the @code{extra-offset} property for
+this purpose as there is no need to work out the distance in
+staff-spaces, and moving the notes into or out of a @code{NoteColumn}
+affects other actions such as merging note heads.
+
+@end itemize
+
+@item
+Finally, when all else fails, objects may be manually repositioned
+relative to the staff center line vertically, or by displacing them by
+any distance to a new position.  The disadvantages are that the
+correct values for the repositioning have to be worked out, often by
+trial and error, for every object individually, and, because the
+movement is done after LilyPond has placed all other objects, the user
+is responsible for avoiding any collisions that might ensue.  But the
+main difficulty with this approach is that the repositioning values
+may need to be reworked if the music is later modified.  The
+properties that can be used for this type of manual repositioning are:
+
+@table @code
+@item extra-offset
+
+@cindex extra-offset property
+
+This property applies to any layout object supporting the
+@code{grob-interface}.  It takes a pair of numbers which specify the
+extra displacement in the horizontal and vertical directions.
+Negative numbers move the object to the left or down.  The units are
+staff-spaces.  The extra displacement is made after the typesetting of
+objects is finished, so an object may be repositioned anywhere without
+affecting anything else.
+
+@item positions
+
+@cindex positions property
+
+This is most useful for manually adjusting the slope and height
+of beams, slurs, and tuplets.  It takes a pair of numbers
+giving the position of the left and right ends of the beam, slur,
+etc. relative to the center line of the staff.  Units are
+staff-spaces.  Note, though, that slurs and phrasing slurs cannot
+be repositioned by arbitrarily large amounts.  LilyPond first
+generates a list of possible positions for the slur and by default
+finds the slur that @qq{looks best}.  If the @code{positions}
+property has been overridden the slur that is closest to the
+requested positions is selected from the list.
+@end table
+
+@end enumerate
+
+A particular object may not have all of these properties.
+It is necessary to go to the IR to look up which properties
+are available for the object in question.
+
+Here is a list of the objects which are most likely to be
+involved in collisions, together with the name of the object which
+should be looked up in the IR in order to discover which properties
+should be used to move them.
+
+@multitable @columnfractions .5 .5
+@headitem Object type           @tab Object name
+@item Articulations             @tab @code{Script}
+@item Beams                     @tab @code{Beam}
+@item Dynamics (vertically)     @tab @code{DynamicLineSpanner}
+@item Dynamics (horizontally)   @tab @code{DynamicText}
+@item Fingerings                @tab @code{Fingering}
+@item Rehearsal / Text marks    @tab @code{RehearsalMark}
+@item Slurs                     @tab @code{Slur}
+@item Text e.g. @code{^"text"}  @tab @code{TextScript}
+@item Ties                      @tab @code{Tie}
+@item Tuplets                   @tab @code{TupletBracket}
+@end multitable
+
+
+@node Fixing overlapping notation
+@subsection Fixing overlapping notation
+
+Let's now see how the properties in the previous section can
+help to resolve overlapping notation.
+
+@subheading padding property
+
+@cindex padding
+@cindex fixing overlapping notation
+@cindex overlapping notation
+
+The @code{padding} property can be set to increase
+(or decrease) the distance between symbols that are printed
+above or below notes.
+
+@cindex Script, example of overriding
+@cindex padding property, example
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c2\fermata
+\override Script.padding = #3
+b2\fermata
+@end lilypond
+
+@cindex MetronomeMark, example of overriding
+@cindex padding property, example
+
+@lilypond[quote,fragment,relative=1,verbatim]
+% This will not work, see below
+\override MetronomeMark.padding = #3
+\tempo 4 = 120
+c1 |
+% This works
+\override Score.MetronomeMark.padding = #3
+\tempo 4 = 80
+d1 |
+@end lilypond
+
+Note in the second example how important it is to figure out what
+context handles a certain object.  Since the @code{MetronomeMark}
+object is handled in the @code{Score} context, property changes in the
+@code{Voice} context will not be noticed.  For more details, see
+@ruser{Modifying properties}.
+
+If the @code{padding} property of an object is increased when that
+object is in a stack of objects being positioned according to
+their @code{outside-staff-priority}, then that object and all
+objects outside it are moved.
+
+
+@subheading right-padding
+
+@cindex right-padding property
+
+The @code{right-padding} property affects the spacing between the
+accidental and the note to which it applies.  It is not often
+required, but the default spacing may be wrong for certain special
+accidental glyphs or combination of glyphs used in some microtonal
+music.  These have to be entered by overriding the accidental
+stencil with a markup containing the desired symbol(s), like this:
+
+@cindex Accidental, example of overriding
+@cindex text property, example
+@cindex stencil property, example
+@cindex AccidentalPlacement, example of overriding
+@cindex right-padding property, example
+
+@lilypond[quote,ragged-right,verbatim]
+sesquisharp = \markup { \sesquisharp }
+\relative c'' {
+  c4
+  % This prints a sesquisharp but the spacing is too small
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
+  cis4 c
+  % This improves the spacing
+  \once \override Score.AccidentalPlacement.right-padding = #0.6
+  \once \override Accidental.stencil = #ly:text-interface::print
+  \once \override Accidental.text = #sesquisharp
+  cis4 |
+}
+@end lilypond
+
+@noindent
+This necessarily uses an override for the accidental stencil which
+will not be covered until later.  The stencil type must be a
+procedure, here changed to print the contents of the @code{text}
+property of @code{Accidental}, which itself is set to be a
+sesquisharp sign.  This sign is then moved further away from the
+note head by overriding @code{right-padding}.
+
+@noindent
+
+@subheading staff-padding property
+
+@cindex aligning objects on a baseline
+@cindex objects, aligning on a baseline
+
+@code{staff-padding} can be used to align objects such as dynamics
+along a baseline at a fixed height above the staff, rather than at a
+height dependent on the position of the note to which they are
+attached.  It is not a property of @code{DynamicText} but of
+@code{DynamicLineSpanner}.  This is because the baseline should apply
+equally to @strong{all} dynamics, including those created as extended
+spanners.  So this is the way to align the dynamic marks in the
+example taken from the previous section:
+
+@cindex DynamicText, example of overriding
+@cindex extra-spacing-width property, example
+@cindex DynamicLineSpanner, example of overriding
+@cindex staff-padding property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+% Extend width by 1 unit
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
+% Align dynamics to a base line 2 units above staff
+\override DynamicLineSpanner.staff-padding = #2
+a4\f b\mf c\mp b\p
+@end lilypond
+
+
+@subheading self-alignment-X property
+
+The following example shows how this can resolve the collision
+of a string fingering object with a note's stem by aligning the
+right edge with the reference point of the parent note:
+
+@cindex StringNumber, example of overriding
+@cindex self-alignment-X property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
+\voiceOne
+<a\2>
+\once \override StringNumber.self-alignment-X = #RIGHT
+<a\2>
+@end lilypond
+
+@subheading staff-position property
+
+@cindex object collision within a staff
+
+Multimeasure rests in one voice can collide with notes in another.
+Since these rests are typeset centered between the bar lines, it
+would require significant effort for LilyPond to figure out which
+other notes might collide with it, since all the current collision
+handling between notes and between notes and rests is done only
+for notes and rests that occur at the same time.  Here's an
+example of a collision of this type:
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<< { c4 c c c } \\ { R1 } >>
+@end lilypond
+
+The best solution here is to move the multimeasure rest down, since
+the rest is in voice two.  The default in @code{\voiceTwo} (i.e. in
+the second voice of a @code{<<@{...@} \\ @{...@}>>} construct) is that
+@code{staff-position} is set to -4 for MultiMeasureRest, so we need to
+move it, say, four half-staff spaces down to @w{@code{-8}}.
+
+@cindex MultiMeasureRest, example of overriding
+@cindex staff-position property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<<
+  { c4 c c c }
+  \\
+  \override MultiMeasureRest.staff-position = #-8
+  { R1 }
+>>
+@end lilypond
+
+This is better than using, for example, @code{extra-offset},
+because the ledger line above the rest is inserted automatically.
+
+@subheading extra-offset property
+
+@cindex positioning objects
+@cindex positioning grobs
+@cindex objects, positioning
+@cindex grobs, positioning
+
+The @code{extra-offset} property provides complete control over the
+positioning of an object both horizontally and vertically.
+
+In the following example, the second fingering is moved a little to
+the left, and 1.8 staff space downwards:
+
+@cindex Fingering, example of overriding
+@cindex extra-offset property, example
+
+@lilypond[quote,fragment,relative=1,verbatim]
+\stemUp
+f4-5
+\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
+f4-5
+@end lilypond
+
+
+@subheading positions property
+
+@cindex controlling tuplets, slurs, phrasing slurs, and beams manually
+@cindex manually controlling tuplets, slurs, phrasing slurs, and beams
+@cindex tuplet beams, controlling manually
+@cindex slurs, controlling manually
+@cindex phrasing slurs, controlling manually
+@cindex beams, controlling manually
+
+The @code{positions} property allows the position and slope of
+tuplets, slurs, phrasing slurs and beams to be controlled manually.
+Here's an example which has an ugly phrasing slur due to its trying to
+avoid the slur on the acciaccatura.
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4 \acciaccatura e8\( d8 c~ c d c d\)
+@end lilypond
+
+@noindent
+We could simply move the phrasing slur above the notes, and this
+would be the preferred solution:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4
+\phrasingSlurUp
+\acciaccatura e8\( d8 c~ c d c d\)
+@end lilypond
+
+@noindent
+But if there were some reason why this could not be done the
+other alternative would be to move the left end of the phrasing
+slur down a little using the @code{positions} property.  This
+also resolves the rather nasty shape.
+
+@cindex PhrasingSlur, example of overriding
+@cindex positions property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4
+\once \override PhrasingSlur.positions = #'(-4 . -3)
+\acciaccatura e8\( d8 c~ c d c d\)
+@end lilypond
+
+Here's a further example.  We see that the beams
+collide with the ties:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+  \time 4/2
+  <<
+    { c'1 ~ c'2. e'8 f' }
+    \\
+    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
+  >>
+  <<
+    { c'1 ~ c'2. e'8 f' }
+    \\
+    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
+  >>
+}
+@end lilypond
+
+@noindent
+This can be resolved by manually moving both ends of the beam
+up from their position at 1.81 staff-spaces below the center line to,
+say, 1:
+
+@cindex Beam, example of overriding
+@cindex positions property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+  \time 4/2
+  <<
+    { c'1 ~ c'2. e'8 f' }
+    \\
+    {
+      \override Beam.positions = #'(-1 . -1)
+      e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
+    }
+  >>
+  <<
+    { c'1 ~ c'2. e'8 f' }
+    \\
+    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
+  >>
+}
+@end lilypond
+
+@noindent
+Note that the override continues to apply in the first voice of
+the second measure of eighth notes, but not to any of the beams in the
+second voice.
+
+@subheading force-hshift property
+
+We can now see how to apply the final corrections to the Chopin
+example introduced at the end of @ref{I'm hearing Voices}, which
+was left looking like this:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { c2 aes4. bes8 }
+    \\
+    { <ees, c>2 des }
+    \\
+    \\
+    { aes'2 f4 fes }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+@noindent
+The inner note of the first chord (i.e. the A-flat in the fourth
+Voice) need not be shifted away from the note column of the higher
+note.  To correct this we set @code{force-hshift}, which is a property
+of @code{NoteColumn}, of this note to zero.
+
+In the second chord we prefer the F to line up with the A-flat and the
+lowest note to be positioned slightly right to avoid a collision of
+stems.  We achieve this by setting @code{force-hshift} in the
+@code{NoteColumn} of the low D-flat to move it to the right by half
+a staff-space.
+
+Here's the final result:
+
+@cindex NoteColumn, example of overriding
+@cindex force-hshift property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { c2 aes4. bes8 }
+    \\
+    {
+      <ees, c>2
+      \once \override NoteColumn.force-hshift = #0.5
+      des2
+    }
+    \\
+    \\
+    {
+      \override NoteColumn.force-hshift = #0
+      aes'2 f4 fes
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+
+@node Real music example
+@subsection Real music example
+
+We end this section on Tweaks by showing the steps to be taken to
+deal with a tricky example which needs several tweaks to produce
+the desired output.  The example has been deliberately chosen to
+illustrate the use of the Notation Reference to resolve unusual
+problems with notation.  It is not representative of the more usual
+engraving process, so please do not let these difficulties put
+you off!  Fortunately, difficulties like these are not very common!
+
+The example is from Chopin's Première Ballade, Op. 23, bars 6 to
+9, the transition from the opening Lento to Moderato.
+Here, first, is what we want the output to look like, but to avoid
+over-complicating the example too much we have left out the
+dynamics, fingering and pedalling.
+
+@c The following should appear as music without code
+@c This example should not be indexed
+@c line-width ensures no break
+@lilypond[quote,ragged-right,line-width=6\in]
+rhMusic = \relative c'' {
+  \new Voice {
+    r2 c4.\( g8 |
+    \once \override Tie.staff-position = #3.5
+    bes1~ |
+    \bar "||"
+    \time 6/4
+    \mergeDifferentlyHeadedOn
+    \mergeDifferentlyDottedOn
+    bes2.^\markup { \bold "Moderato" } r8
+    <<
+      { c,8 d fis bes a }
+      \new Voice {
+        \voiceTwo
+        c,8~
+        % Reposition the c2 to the right of the merged note
+        \once \override NoteColumn.force-hshift = #1.0
+        % Move the c2 out of the main note column
+        % so the merge will work
+        \shiftOnn
+        c2
+      }
+      \new Voice {
+        \voiceThree
+        s8
+        % Stem on the d2 must be down to permit merging
+        \stemDown
+        % Stem on the d2 should be invisible
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
+        d2
+      }
+      \new Voice {
+        \voiceFour
+        s4 fis4.
+      }
+    >> |
+    \mergeDifferentlyHeadedOff
+    \mergeDifferentlyDottedOff
+    g2.\)
+  }
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+We note first that the right hand part in the third bar
+requires four voices.  These are the five beamed eighth notes,
+the tied C, the half-note D which is merged with the eighth note
+D, and the dotted quarter note F-sharp, which is also merged with
+the eighth note at the same pitch.  Everything else is in a single
+voice, so the easiest way is to introduce these extra three voices
+temporarily at the time they are needed.  If you have forgotten
+how to do this, look at @ref{I'm hearing Voices} and @ref{Explicitly
+instantiating voices}.  Here we choose to use explicitly instantiated
+voices for the polyphonic passage, as LilyPond is better able to
+avoid collisions if all voices are instantiated explicitly in this
+way.
+
+So let us begin by entering the notes as two variables, setting up
+the staff structure in a score block, and seeing what LilyPond
+produces by default:
+
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=6\in]
+rhMusic = \relative c'' {
+  \new Voice {
+    r2 c4. g8 |
+    bes1~ |
+    \time 6/4
+    bes2. r8
+    % Start polyphonic section of four voices
+    <<
+      { c,8 d fis bes a }  % continuation of main voice
+      \new Voice {
+        \voiceTwo
+        c,8~ c2
+      }
+      \new Voice {
+        \voiceThree
+        s8 d2
+      }
+      \new Voice {
+        \voiceFour
+        s4 fis4.
+      }
+    >> |
+    g2.  % continuation of main voice
+  }
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2 |
+  <d g, d>1 |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+All the notes are right, but the appearance is far from
+satisfactory.  The tie collides with the change in time signature,
+some notes are not merged together, and several notation elements
+are missing.  Let's first deal with the easier things.  We can
+easily add the left hand slur and the right hand phrasing slur,
+since these were all covered in the Tutorial.  Doing this gives:
+
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=6\in]
+rhMusic = \relative c'' {
+  \new Voice {
+    r2 c4.\( g8 |
+    bes1~ |
+    \time 6/4
+    bes2. r8
+    % Start polyphonic section of four voices
+    <<
+      { c,8 d fis bes a }  % continuation of main voice
+      \new Voice {
+        \voiceTwo
+        c,8~ c2
+      }
+      \new Voice {
+        \voiceThree
+        s8 d2
+      }
+      \new Voice {
+        \voiceFour
+        s4 fis4.
+      }
+    >> |
+    g2.\)  % continuation of main voice
+  }
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1) |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+The first bar is now correct.  The second bar contains an arpeggio and
+is terminated by a double bar line.  How do we do these, as they have
+not been mentioned in this Learning Manual?  This is where we need to
+turn to the Notation Reference.  Looking up @q{arpeggio} and @q{bar
+line} in the index quickly shows us that an arpeggio is produced by
+appending @code{\arpeggio} to a chord, and a double bar line is
+produced by the @code{\bar "||"} command.  That's easily done.  We
+next need to correct the collision of the tie with the time signature.
+This is best done by moving the tie upwards.  Moving objects was
+covered earlier in @ref{Moving objects}, which says that objects
+positioned relative to the staff can be moved vertically by overriding
+their @code{staff-position} property, which is specified in half staff
+spaces relative to the center line of the staff.  So the following
+override placed just before the first tied note would move the tie up
+to 3.5 half staff spaces above the center line:
+
+@code{\once \override Tie.staff-position = #3.5}
+
+This completes bar two, giving:
+
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=6\in]
+rhMusic = \relative c'' {
+  \new Voice {
+    r2 c4.\( g8 |
+    \once \override Tie.staff-position = #3.5
+    bes1~ |
+    \bar "||"
+    \time 6/4
+    bes2. r8
+    % Start polyphonic section of four voices
+    <<
+      { c,8 d fis bes a }  % continuation of main voice
+      \new Voice {
+        \voiceTwo
+        c,8~ c2
+      }
+      \new Voice {
+        \voiceThree
+        s8 d2
+      }
+      \new Voice {
+        \voiceFour
+        s4 fis4.
+      }
+    >> |
+    g2.\)  % continuation of main voice
+  }
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+On to bar three and the start of the Moderato section.  The tutorial
+showed how to add bold text with the @code{\markup} command, so
+adding @qq{Moderato} in bold is easy.  But how do we merge notes in
+different voices together?  This is where we need to turn again to
+the Notation Reference for help.  A search for @qq{merge} in the
+Notation Reference index quickly leads us to the commands for merging
+differently headed and differently dotted notes in
+@ruser{Collision resolution}.  In our example we need to merge both
+types of note for the duration of the polyphonic section in bar 3,
+so using the information we find in the Notation Reference we add
+
+@example
+\mergeDifferentlyHeadedOn
+\mergeDifferentlyDottedOn
+@end example
+
+@noindent
+to the start of that section and
+
+@example
+\mergeDifferentlyHeadedOff
+\mergeDifferentlyDottedOff
+@end example
+
+@noindent
+to the end, giving:
+
+@c line-width ensures no break
+@lilypond[quote,ragged-right,line-width=6\in]
+rhMusic = \relative c'' {
+  \new Voice {
+    r2 c4.\( g8 |
+    \once \override Tie.staff-position = #3.5
+    bes1~ |
+    \bar "||"
+    \time 6/4
+    bes2.^\markup { \bold "Moderato" } r8
+    \mergeDifferentlyHeadedOn
+    \mergeDifferentlyDottedOn
+    % Start polyphonic section of four voices
+    <<
+      { c,8 d fis bes a }  % continuation of main voice
+      \new Voice {
+        \voiceTwo
+        c,8~ c2
+      }
+      \new Voice {
+        \voiceThree
+        s8 d2
+      }
+      \new Voice {
+        \voiceFour
+        s4 fis4.
+      }
+    >> |
+    \mergeDifferentlyHeadedOff
+    \mergeDifferentlyDottedOff
+    g2.\)  % continuation of main voice
+  }
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+These overrides have merged the two F-sharp notes, but not the two
+on D.  Why not?  The answer is there in the same section in the
+Notation Reference -- notes being merged must have stems in
+opposite directions and two notes cannot be merged successfully if
+there is a third note in the same note column.  Here the two D's
+both have upward stems and there is a third note -- the C.  We know
+how to change the stem direction using @code{\stemDown}, and
+the Notation Reference also says how to move the C -- apply a shift
+using one of the @code{\shift} commands.  But which one?
+The C is in voice two which has shift off, and the two D's are in
+voices one and three, which have shift off and shift on,
+respectively.  So we have to shift the C a further level still
+using @code{\shiftOnn} to avoid it interfering with the two D's.
+Applying these changes gives:
+
+@cindex Tie, example of overriding
+@cindex staff-position property, example
+
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=6\in]
+rhMusic = \relative c'' {
+  \new Voice {
+    r2 c4.\( g8 |
+    \once \override Tie.staff-position = #3.5
+    bes1~ |
+    \bar "||"
+    \time 6/4
+    bes2.^\markup { \bold "Moderato" } r8
+    \mergeDifferentlyHeadedOn
+    \mergeDifferentlyDottedOn
+    % Start polyphonic section of four voices
+    <<
+      { c,8 d fis bes a }  % continuation of main voice
+      \new Voice {
+        \voiceTwo
+        % Move the c2 out of the main note column
+        % so the merge will work
+        c,8~ \shiftOnn c2
+      }
+      \new Voice {
+        \voiceThree
+        % Stem on the d2 must be down to permit merging
+        s8 \stemDown d2
+      }
+      \new Voice {
+        \voiceFour
+        s4 fis4.
+      }
+    >> |
+    \mergeDifferentlyHeadedOff
+    \mergeDifferentlyDottedOff
+    g2.\)  % continuation of main voice
+  }
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+Nearly there.  Only two problems remain: The downward stem on the
+merged D should not be there, and the C would be better positioned
+to the right of the D's.  We know how to do both of these from the
+earlier tweaks: we make the stem transparent, and move the C with
+the @code{force-hshift} property.  Here's the final result:
+
+@cindex NoteColumn, example of overriding
+@cindex force-hshift property, example
+@cindex Stem, example of overriding
+@cindex transparent property, example
+
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=6\in]
+rhMusic = \relative c'' {
+  \new Voice {
+    r2 c4.\( g8 |
+    \once \override Tie.staff-position = #3.5
+    bes1~ |
+    \bar "||"
+    \time 6/4
+    bes2.^\markup { \bold "Moderato" } r8
+    \mergeDifferentlyHeadedOn
+    \mergeDifferentlyDottedOn
+    % Start polyphonic section of four voices
+    <<
+      { c,8 d fis bes a }  % continuation of main voice
+      \new Voice {
+        \voiceTwo
+        c,8~
+        % Reposition the c2 to the right of the merged note
+        \once \override NoteColumn.force-hshift = #1.0
+        % Move the c2 out of the main note column
+        % so the merge will work
+        \shiftOnn
+        c2
+      }
+      \new Voice {
+        \voiceThree
+        s8
+        % Stem on the d2 must be down to permit merging
+        \stemDown
+        % Stem on the d2 should be invisible
+        \tweak Stem.transparent ##t
+        \tweak Flag.transparent ##t
+        d2
+      }
+      \new Voice {
+        \voiceFour
+        s4 fis4.
+      }
+    >> |
+    \mergeDifferentlyHeadedOff
+    \mergeDifferentlyDottedOff
+    g2.\)  % continuation of main voice
+  }
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+
+@node Further tweaking
+@section Further tweaking
+
+@menu
+* Other uses for tweaks::
+* Using variables for tweaks::
+* Style sheets::
+* Other sources of information::
+* Advanced tweaks with Scheme::
+@end menu
+
+@node Other uses for tweaks
+@subsection Other uses for tweaks
+
+@cindex transparent property, use of
+@cindex objects, making invisible
+@cindex removing objects
+@cindex objects, removing
+@cindex hiding objects
+@cindex objects, hiding
+@cindex invisible objects
+@cindex objects, invisible
+@cindex tying notes across voices
+
+@subheading Tying notes across voices
+
+The following example demonstrates how to connect notes in
+different voices using ties.  Normally, only two notes in the
+same voice can be connected with ties.  By using two voices,
+with the tied notes in one of them
+
+@lilypond[quote,fragment,relative=2]
+<< { b8~ b\noBeam } \\ { b8[ g] } >>
+@end lilypond
+
+@noindent
+and blanking the first up-stem in that voice, the tie appears to
+cross voices:
+
+@cindex Stem, example of overriding
+@cindex transparent property, example
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+  {
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
+    b8~ b\noBeam
+  }
+\\
+  { b8[ g] }
+>>
+@end lilypond
+
+To make sure that the just-blanked stem doesn't squeeze the tie
+too much, we can lengthen the stem by setting the
+@code{length} to @code{8},
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+  {
+    \tweak Stem.transparent ##t
+    \tweak Flag.transparent ##t
+    \tweak Stem.length #8
+    b8~ b\noBeam
+  }
+\\
+  { b8[ g] }
+>>
+@end lilypond
+
+@subheading Simulating a fermata in MIDI
+
+@cindex stencil property, use of
+@cindex fermata, implementing in MIDI
+
+For outside-staff objects it is usually better to override the
+object's @code{stencil} property rather than its @code{transparent}
+property when you wish to remove it from the printed output.
+Setting the @code{stencil} property of an object to @code{#f} will
+remove that object entirely from the printed output.  This means it
+has no effect on the placement of other objects placed relative to
+it.
+
+For example, if we wished to change the metronome setting in order
+to simulate a fermata in the MIDI output we would not want the
+metronome markings to appear in the printed output, and we would
+not want it to influence the spacing between the two systems or
+the positions of adjacent annotations on the staff.  So setting
+its @code{stencil} property to @code{#f} would be the best way.
+We show here the effect of the two methods:
+
+@cindex MetronomeMark, example of overriding
+@cindex transparent property, example
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  \relative c'' {
+    % Visible tempo marking
+    \tempo 4=120
+    a4 a a
+    \once \override Score.MetronomeMark.transparent = ##t
+    % Invisible tempo marking to lengthen fermata in MIDI
+    \tempo 4=80
+    a4\fermata |
+    % New tempo for next section
+    \tempo 4=100
+    a4 a a a |
+  }
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+@cindex MetronomeMark, example of overriding
+@cindex stencil property, example
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  \relative c'' {
+    % Visible tempo marking
+    \tempo 4=120
+    a4 a a
+    \once \override Score.MetronomeMark.stencil = ##f
+    % Invisible tempo marking to lengthen fermata in MIDI
+    \tempo 4=80
+    a4\fermata |
+    % New tempo for next section
+    \tempo 4=100
+    a4 a a a |
+  }
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+@noindent
+Both methods remove the metronome mark which lengthens the fermata
+from the printed output, and both affect the MIDI timing as
+required, but the transparent metronome mark in the first line
+forces the following tempo indication too high while the
+second (with the stencil removed) does not.
+
+@seealso
+Music Glossary:
+@rglos{system}.
+
+@node Using variables for tweaks
+@subsection Using variables for tweaks
+
+@cindex variables, using for tweaks
+@cindex using variables for tweaks
+@cindex tweaks, using variables for
+
+Override commands are often long and tedious to type, and they
+have to be absolutely correct.  If the same overrides are to be
+used many times it may be worth defining variables to hold them.
+
+Suppose we wish to emphasize certain words in lyrics by printing
+them in bold italics.  The @code{\italic} and @code{\bold}
+commands only work within lyrics if they are embedded, together with
+the word or words to be modified, within a @code{\markup} block,
+which makes them tedious to enter.  The need to embed the words
+themselves prevents their use in simple variables.  As an
+alternative can we use @code{\override} and @code{\revert} commands?
+
+@example
+@code{\override Lyrics.LyricText.font-shape = #'italic}
+@code{\override Lyrics.LyricText.font-series = #'bold}
+
+@code{\revert Lyrics.LyricText.font-shape}
+@code{\revert Lyrics.LyricText.font-series}
+@end example
+
+These would also be extremely tedious to enter if there were many
+words requiring emphasis.  But we @emph{can} define these as two
+variables and use those to bracket the words to be emphasized.
+Another advantage of using variables for these overrides is that
+the spaces around the dot are not necessary, since they are not
+being interpreted in @code{\lyricmode} directly.  Here's an example
+of this, although in practice  we would choose shorter names
+for the variables to make them quicker to type:
+
+@cindex LyricText, example of overriding
+@cindex font-shape property, example
+@cindex font-series property, example
+
+@lilypond[quote,verbatim]
+emphasize = {
+  \override Lyrics.LyricText.font-shape = #'italic
+  \override Lyrics.LyricText.font-series = #'bold
+}
+
+normal = {
+  \revert Lyrics.LyricText.font-shape
+  \revert Lyrics.LyricText.font-series
+}
+
+global = { \key c \major \time 4/4 \partial 4 }
+
+SopranoMusic = \relative c' { c4 | e4. e8 g4 g    | a4   a   g  }
+AltoMusic    = \relative c' { c4 | c4. c8 e4 e    | f4   f   e  }
+TenorMusic   = \relative c  { e4 | g4. g8 c4.  b8 | a8 b c d e4 }
+BassMusic    = \relative c  { c4 | c4. c8 c4 c    | f8 g a b c4 }
+
+VerseOne = \lyrics {
+  E -- | ter -- nal \emphasize Fa -- ther, | \normal strong to save,
+}
+
+VerseTwo = \lyricmode {
+  O | \once \emphasize Christ, whose voice the | wa -- ters heard,
+}
+
+VerseThree = \lyricmode {
+  O | \emphasize Ho -- ly Spi -- rit, | \normal who didst brood
+}
+
+VerseFour = \lyricmode {
+  O | \emphasize Tri -- ni -- ty \normal of | love and pow'r
+}
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \clef "treble"
+      \new Voice = "Soprano"  { \voiceOne \global \SopranoMusic }
+      \new Voice = "Alto" { \voiceTwo \AltoMusic }
+      \new Lyrics \lyricsto "Soprano" { \VerseOne }
+      \new Lyrics \lyricsto "Soprano" { \VerseTwo }
+      \new Lyrics \lyricsto "Soprano" { \VerseThree }
+      \new Lyrics \lyricsto "Soprano" { \VerseFour }
+    >>
+    \new Staff <<
+      \clef "bass"
+      \new Voice = "Tenor" { \voiceOne \TenorMusic }
+      \new Voice = "Bass"  { \voiceTwo \BassMusic }
+    >>
+  >>
+}
+@end lilypond
+
+
+@node Style sheets
+@subsection Style sheets
+
+The output that LilyPond produces can be heavily modified; see
+@ref{Tweaking output}, for details.  But what if you have many
+input files that you want to apply your tweaks to?  Or what if you
+simply want to separate your tweaks from the actual music?  This
+is quite easy to do.
+
+Let's look at an example.  Don't worry if you don't understand
+the parts with all the @code{#()}.  This is explained in
+@ref{Advanced tweaks with Scheme}.
+
+@lilypond[quote,verbatim,ragged-right]
+mpdolce =
+#(make-dynamic-script
+  #{ \markup { \hspace #0
+               \translate #'(5 . 0)
+               \line { \dynamic "mp"
+                       \text \italic "dolce" } }
+  #})
+
+inst =
+#(define-music-function
+     (parser location string)
+     (string?)
+   #{ ^\markup \bold \box #string #})
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a |
+  b4 bes a2 |
+  \inst "Clarinet"
+  cis4.\< d8 e4 fis |
+  g8(\! fis)-. e( d)-. cis2 |
+}
+@end lilypond
+
+Let's do something about the @code{mpdolce} and @code{inst} definitions.
+They produce the output we desire, but we might want to use them in
+another piece.  We could simply copy-and-paste them at the top of every
+file, but that's an annoyance.  It also leaves those definitions in our
+input files, and I personally find all the @code{#()} somewhat ugly.
+Let's hide them in another file:
+
+@example
+%%% save this to a file called "definitions.ily"
+mpdolce =
+#(make-dynamic-script
+  #@{ \markup @{ \hspace #0
+               \translate #'(5 . 0)
+               \line @{ \dynamic "mp"
+                       \text \italic "dolce" @} @}
+  #@})
+
+inst =
+#(define-music-function
+     (parser location string)
+     (string?)
+   #@{ ^\markup \bold \box #string #@})
+@end example
+
+We will refer to this file using the @code{\include} command near
+the top of the music file.  (The extension @file{.ily} is used to
+distinguish this included file, which is not meant to be compiled
+on its own, from the main file.)
+Now let's modify our music (let's save this file as @file{music.ly}).
+
+@c  We have to do this awkward example/lilypond-non-verbatim
+@c  because we can't do the \include stuff in the manual.
+
+@example
+\include "definitions.ily"
+
+\relative c'' @{
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a |
+  b4 bes a2 |
+  \inst "Clarinet"
+  cis4.\< d8 e4 fis |
+  g8(\! fis)-. e( d)-. cis2 |
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce =
+#(make-dynamic-script
+  #{ \markup { \hspace #0
+               \translate #'(5 . 0)
+               \line { \dynamic "mp"
+                       \text \italic "dolce" } }
+  #})
+
+inst =
+#(define-music-function
+     (parser location string)
+     (string?)
+   #{ ^\markup \bold \box #string #})
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a |
+  b4 bes a2 |
+  \inst "Clarinet"
+  cis4.\< d8 e4 fis |
+  g8(\! fis)-. e( d)-. cis2 |
+}
+@end lilypond
+
+That looks better, but let's make a few changes.  The glissando is hard
+to see, so let's make it thicker and closer to the note heads.  Let's
+put the metronome marking above the clef, instead of over the first
+note.  And finally, my composition professor hates @q{C} time signatures,
+so we'd better make that @q{4/4} instead.
+
+Don't change @file{music.ly}, though.  Replace our @file{definitions.ily}
+with this:
+
+@example
+%%%  definitions.ily
+mpdolce =
+#(make-dynamic-script
+  #@{ \markup @{ \hspace #0
+               \translate #'(5 . 0)
+               \line @{ \dynamic "mp"
+                       \text \italic "dolce" @} @}
+  #@})
+
+inst =
+#(define-music-function
+     (parser location string)
+     (string?)
+   #@{ ^\markup \bold \box #string #@})
+
+\layout@{
+  \context @{
+    \Score
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
+  @}
+  \context @{
+    \Staff
+    \override TimeSignature.style = #'numbered
+  @}
+  \context @{
+    \Voice
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
+  @}
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce =
+#(make-dynamic-script
+  #{ \markup { \hspace #0
+               \translate #'(5 . 0)
+               \line { \dynamic "mp"
+                       \text \italic "dolce" } }
+  #})
+
+inst =
+#(define-music-function
+     (parser location string)
+     (string?)
+   #{ ^\markup \bold \box #string #})
+
+\layout{
+  \context {
+    \Score
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
+  }
+  \context {
+    \Staff
+    \override TimeSignature.style = #'numbered
+  }
+  \context {
+    \Voice
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
+  }
+}
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a |
+  b4 bes a2 |
+  \inst "Clarinet"
+  cis4.\< d8 e4 fis |
+  g8(\! fis)-. e( d)-. cis2 |
+}
+@end lilypond
+
+That looks nicer!  But now suppose that I want to publish this
+piece.  My composition professor doesn't like @q{C} time
+signatures, but I'm somewhat fond of them.  Let's copy the
+current @file{definitions.ily} to @file{web-publish.ily} and
+modify that.  Since this music is aimed at producing a pdf which
+will be displayed on the screen, we'll also increase the
+overall size of the output.
+
+@example
+%%%  web-publish.ily
+mpdolce =
+#(make-dynamic-script
+  #@{ \markup @{ \hspace #0
+               \translate #'(5 . 0)
+               \line @{ \dynamic "mp"
+                       \text \italic "dolce" @} @}
+  #@})
+
+inst =
+#(define-music-function
+     (parser location string)
+     (string?)
+   #@{ ^\markup \bold \box #string #@})
+
+#(set-global-staff-size 23)
+
+\layout@{
+  \context @{
+    \Score
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
+  @}
+  \context @{
+    \Staff
+  @}
+  \context @{
+    \Voice
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
+  @}
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce =
+#(make-dynamic-script
+  #{ \markup { \hspace #0
+               \translate #'(5 . 0)
+               \line { \dynamic "mp"
+                       \text \italic "dolce" } }
+  #})
+
+inst =
+#(define-music-function
+     (parser location string)
+     (string?)
+   #{ ^\markup \bold \box #string #})
+
+#(set-global-staff-size 23)
+
+\layout{
+  \context { \Score
+    \override MetronomeMark.extra-offset = #'(-9 . 0)
+    \override MetronomeMark.padding = #'3
+  }
+  \context { \Voice
+    \override Glissando.thickness = #3
+    \override Glissando.gap = #0.1
+  }
+}
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a |
+  b4 bes a2 |
+  \inst "Clarinet"
+  cis4.\< d8 e4 fis |
+  g8(\! fis)-. e( d)-. cis2 |
+}
+@end lilypond
+
+Now in our music, I simply replace
+@code{\include "definitions.ily"} with
+@code{\include "web-publish.ily"}.  Of course, we could make this
+even more convenient.  We could make a @file{definitions.ily} file which
+contains only the definitions of @code{mpdolce} and @code{inst}, a
+@file{web-publish.ily} file which contains only the @code{\layout}
+section listed above, and a @file{university.ily} file which
+contains only the tweaks to produce the output that my professor
+prefers.  The top of @file{music.ly} would then look like this:
+
+@example
+\include "definitions.ily"
+
+%%%  Only uncomment one of these two lines!
+\include "web-publish.ily"
+%\include "university.ily"
+@end example
+
+This approach can be useful even if you are only producing
+one set of parts.  I use half a dozen different
+@q{style sheet} files for my projects.  I begin every music
+file with @code{\include "../global.ily"}, which contains
+
+@example
+%%%   global.ily
+\version @w{"@version{}"}
+
+#(ly:set-option 'point-and-click #f)
+
+\include "../init/init-defs.ly"
+\include "../init/init-layout.ly"
+\include "../init/init-headers.ly"
+\include "../init/init-paper.ly"
+@end example
+
+
+@node Other sources of information
+@subsection Other sources of information
+
+The Internals Reference documentation contains a lot of information
+about LilyPond, but even more information can be gathered by
+looking at the internal LilyPond files.  To explore these, you must
+first find the directory appropriate to your system.  The location
+of this directory depends (a) on whether you obtained LilyPond
+by downloading a precompiled binary from lilypond.org
+or whether you installed it from a package manager (i.e.
+distributed with GNU/Linux, or installed under fink or cygwin) or
+compiled it from source, and (b) on which operating system it is
+being used:
+
+@strong{Downloaded from lilypond.org}
+
+@itemize @bullet
+@item GNU/Linux
+
+Navigate to
+@example
+@file{@var{INSTALLDIR}/lilypond/usr/@/share/lilypond/current/}
+@end example
+
+@item MacOS X
+
+Navigate to
+@example
+@file{@var{INSTALLDIR}/LilyPond.app/Contents/@/Resources/share/lilypond/current/}
+@end example
+
+by either @code{cd}-ing into this directory from the
+Terminal, or control-clicking on the LilyPond application and
+selecting @q{Show Package Contents}.
+
+@item Windows
+
+Using Windows Explorer, navigate to
+@example
+@file{@var{INSTALLDIR}/LilyPond/usr/@/share/lilypond/current/}
+@end example
+
+@end itemize
+
+@strong{Installed from a package manager or compiled from source}
+
+Navigate to
+@file{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, where
+@var{PREFIX} is set by your package manager or @code{configure}
+script, and @var{X.Y.Z} is the LilyPond version number.
+
+@smallspace
+
+Within this directory the two interesting subdirectories are
+
+@itemize
+@item @file{ly/} - contains files in LilyPond format
+@item @file{scm/} - contains files in Scheme format
+@end itemize
+
+Let's begin by looking at some files in @file{ly/}.
+Open @file{ly/property-init.ly} in a text editor.  The one
+you normally use for @code{.ly} files will be fine.  This file
+contains the definitions of all the standard LilyPond predefined
+commands, such as @code{\stemUp} and @code{\slurDotted}.  You will
+see that these are nothing more than definitions of variables
+containing one or a group of @code{\override} commands.  For
+example, @code{/tieDotted} is defined to be:
+
+@example
+tieDotted = @{
+  \override Tie.dash-period = #0.75
+  \override Tie.dash-fraction = #0.1
+@}
+@end example
+
+If you do not like the default values these predefined commands can
+be redefined easily, just like any other variable, at the
+head of your input file.
+
+The following are the most useful files to be found in
+@file{ly/}:
+
+@multitable @columnfractions .4 .6
+@headitem Filename
+  @tab Contents
+@item @file{ly/engraver-init.ly}
+  @tab Definitions of engraver Contexts
+@item @file{ly/paper-defaults-init.ly}
+  @tab Specifications of paper-related defaults
+@item @file{ly/performer-init.ly}
+  @tab Definitions of performer Contexts
+@item @file{ly/property-init.ly}
+  @tab Definitions of all common predefined commands
+@item @file{ly/spanner-init.ly}
+  @tab Definitions of spanner-related predefined commands
+@end multitable
+
+Other settings (such as the definitions of markup commands) are
+stored as @file{.scm} (Scheme) files.  The Scheme programming
+language is used to provide a programmable interface into
+LilyPond internal operation.  Further explanation of these files
+is currently outside the scope of this manual, as a knowledge of
+the Scheme language is required.  Users should be warned that
+a substantial amount of technical knowledge or time is required
+to understand Scheme and these files (see @rextend{Scheme tutorial}).
+
+If you have this knowledge, the Scheme files which may be of
+interest are:
+
+@multitable @columnfractions .4 .6
+@headitem Filename
+  @tab Contents
+@item @file{scm/auto-beam.scm}
+  @tab Sub-beaming defaults
+@item @file{scm/define-grobs.scm}
+  @tab Default settings for grob properties
+@item @file{scm/define-markup-commands.scm}
+  @tab Specify all markup commands
+@item @file{scm/midi.scm}
+  @tab Default settings for MIDI output
+@item @file{scm/output-lib.scm}
+  @tab Settings that affect appearance of frets, colors,
+       accidentals, bar lines, etc
+@item @file{scm/parser-clef.scm}
+  @tab Definitions of supported clefs
+@item @file{scm/script.scm}
+  @tab Default settings for articulations
+@end multitable
+
+
+@node Advanced tweaks with Scheme
+@subsection Advanced tweaks with Scheme
+
+Although many things are possible with the @code{\override} and
+@code{\tweak} commands, an even more powerful way of modifying
+the action of LilyPond is available through a programmable
+interface to the LilyPond internal operation.  Code written in
+the Scheme programming language can be incorporated directly in
+the internal operation of LilyPond.  Of course, at least a basic
+knowledge of programming in Scheme is required to do this, and an
+introduction is provided in the @rextend{Scheme tutorial}.
+
+As an illustration of one of the many possibilities, instead of
+setting a property to a constant it can be set to a Scheme
+procedure which is then called whenever that property is accessed
+by LilyPond.  The property can then be set dynamically to a value
+determined by the procedure at the time it is called.  In this
+example we color the note head in accordance with its position on
+the staff.
+
+@cindex x11-color function, example of using
+@cindex NoteHead, example of overriding
+@cindex color property, setting to Scheme procedure
+
+@lilypond[quote,verbatim,ragged-right]
+#(define (color-notehead grob)
+   "Color the notehead according to its position on the staff."
+   (let ((mod-position (modulo (ly:grob-property grob 'staff-position)
+                               7)))
+     (case mod-position
+       ;;   Return rainbow colors
+       ((1) (x11-color 'red    ))  ; for C
+       ((2) (x11-color 'orange ))  ; for D
+       ((3) (x11-color 'yellow ))  ; for E
+       ((4) (x11-color 'green  ))  ; for F
+       ((5) (x11-color 'blue   ))  ; for G
+       ((6) (x11-color 'purple ))  ; for A
+       ((0) (x11-color 'violet ))  ; for B
+       )))
+
+\relative c' {
+  % Arrange to obtain color from color-notehead procedure
+  \override NoteHead.color = #color-notehead
+  a2 b | c2 d | e2 f | g2 a |
+}
+@end lilypond
+
+Further examples showing the use of these programmable interfaces
+can be found in @rextend{Callback functions}.
+
+
+
index 03652bbc888bd1a2be2a98cc81f7fca4db1bbb09..d18b89d0318f7a0f6319eb03d660b0a21fbd2511 100644 (file)
@@ -8,11 +8,11 @@
 <form action="http://google.com/search"
       method="get"
       name="search"
-      onSubmit="search.q.value='site:lilypond.org +v2.16 '
+      onSubmit="search.q.value='site:lilypond.org +v2.17 '
                + search.brute_query.value"
-      onMouseMove="search.q.value='site:lilypond.org +v2.16 '
+      onMouseMove="search.q.value='site:lilypond.org +v2.17 '
                   + search.brute_query.value"
-      onKeyUp="search.q.value='site:lilypond.org +v2.16 '
+      onKeyUp="search.q.value='site:lilypond.org +v2.17 '
               + search.brute_query.value">
   <input type="hidden" name="btnG" value="Zoek met Google">
   <input type="text" name="brute_query" onfocus="this.value=''" value="Zoek">
diff --git a/Documentation/nl/texidocs/GNUmakefile b/Documentation/nl/texidocs/GNUmakefile
deleted file mode 100644 (file)
index 0ffa758..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth=../../..
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.texidoc)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/nl/web/GNUmakefile b/Documentation/nl/web/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/notation/GNUmakefile b/Documentation/notation/GNUmakefile
deleted file mode 100644 (file)
index c93c9e0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 7ef446ee621f16e8c83c4c94aaa2a1f5f77b9fa6..0d948c77610f02f2f4b16e87ebcc04c507668428 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Ancient notation
@@ -304,7 +304,7 @@ desired, as shown in the following example:
     \context {
       \Staff
       \consists "Custos_engraver"
-      \override Custos #'style = #'mensural
+      \override Custos.style = #'mensural
     }
   }
 }
@@ -392,7 +392,7 @@ entering the chant, as the following excerpt demonstrates:
 \score {
   <<
     \new MensuralVoice = "discantus" \transpose c c' {
-      \override Score.BarNumber #'transparent = ##t {
+      \override Score.BarNumber.transparent = ##t {
         c'1\melisma bes a g\melismaEnd
         f\breve
         \[ f1\melisma a c'\breve d'\melismaEnd \]
@@ -447,7 +447,7 @@ mensural C clef
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-c2"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -458,7 +458,7 @@ mensural F clef
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-f"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -469,7 +469,7 @@ mensural G clef
 @tab
 @lilypond[relative=1,notime]
   \clef "mensural-g"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -493,7 +493,7 @@ petrucci style C clefs, for use on different staff lines
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-c2"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -506,7 +506,7 @@ petrucci style F clefs, for use on different staff lines
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-f3"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 
@@ -517,7 +517,7 @@ petrucci style G clef
 @tab
 @lilypond[relative=1,notime]
   \clef "petrucci-g"
-  \override NoteHead #'style = #'mensural
+  \override NoteHead.style = #'mensural
   c
 @end lilypond
 @end multitable
@@ -603,18 +603,18 @@ differences in style:
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter default }
 
-  \override Staff.TimeSignature #'style = #'numbered
+  \override Staff.TimeSignature.style = #'numbered
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter numbered }
 
-  \override Staff.TimeSignature #'style = #'mensural
+  \override Staff.TimeSignature.style = #'mensural
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter mensural }
 
-  \override Staff.TimeSignature #'style = #'neomensural
+  \override Staff.TimeSignature.style = #'neomensural
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter neomensural }
-  \override Staff.TimeSignature #'style = #'single-digit
+  \override Staff.TimeSignature.style = #'single-digit
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter single-digit }
 }
@@ -697,13 +697,13 @@ The following example demonstrates the @code{petrucci} style:
 @lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
 \autoBeamOff
-\override NoteHead #'style = #'petrucci
+\override NoteHead.style = #'petrucci
 a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a'
-\override NoteHead #'style = #'semipetrucci
+\override NoteHead.style = #'semipetrucci
 a'\breve*5/6
-\override NoteHead #'style = #'blackpetrucci
+\override NoteHead.style = #'blackpetrucci
 a'8*4/3 a'
-\override NoteHead #'style = #'petrucci
+\override NoteHead.style = #'petrucci
 a'\longa
 @end lilypond
 
@@ -730,9 +730,9 @@ select ancient flags.  Besides the @code{default} flag style,
 only the @code{mensural} style is supported.
 
 @lilypond[quote,fragment,ragged-right,verbatim]
-\override Flag #'style = #'mensural
-\override Stem #'thickness = #1.0
-\override NoteHead #'style = #'mensural
+\override Flag.style = #'mensural
+\override Stem.thickness = #1.0
+\override NoteHead.style = #'mensural
 \autoBeamOff
 c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8
 c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32
@@ -781,11 +781,11 @@ The following example demonstrates the @code{mensural} and
 
 @lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
-\override Rest #'style = #'classical
+\override Rest.style = #'classical
 r\longa^"classical" r\breve r1 r2 r4 r8 r16 s \break
-\override Rest #'style = #'mensural
+\override Rest.style = #'mensural
 r\longa^"mensural" r\breve r1 r2 r4 r8 r16 s \break
-\override Rest #'style = #'neomensural
+\override Rest.style = #'neomensural
 r\longa^"neomensural" r\breve r1 r2 r4 r8 r16
 @end lilypond
 
@@ -835,7 +835,7 @@ The style for accidentals and key signatures is controlled by the
 @code{KeySignature}, respectively; e.g.:
 
 @example
-\override Staff.Accidental #'glyph-name-alist =
+\override Staff.Accidental.glyph-name-alist =
   #alteration-mensural-glyph-name-alist
 @end example
 
@@ -943,9 +943,9 @@ For example,
 
 @c @example
 @c \set Score.timing = ##f
-@c \set Score.defaultBarType = "empty"
-@c \override NoteHead #'style = #'neomensural
-@c \override Staff.TimeSignature #'style = #'neomensural
+@c \set Score.defaultBarType = "-"
+@c \override NoteHead.style = #'neomensural
+@c \override Staff.TimeSignature.style = #'neomensural
 @c \clef "petrucci-g"
 @c \[ c'\maxima g \]
 @c \[ d\longa c\breve f e d \]
@@ -956,14 +956,14 @@ For example,
 \score {
   \transpose c c' {
     \set Score.timing = ##f
-    \set Score.defaultBarType = "empty"
-    \override NoteHead #'style = #'petrucci
-    \override Staff.TimeSignature #'style = #'mensural
+    \set Score.defaultBarType = "-"
+    \override NoteHead.style = #'petrucci
+    \override Staff.TimeSignature.style = #'mensural
     \clef "petrucci-g"
     \[ c'\maxima g \]
     \[ d\longa
-       \override NoteHead #'ligature-flexa = ##t
-       \once \override NoteHead #'flexa-width = #3.2
+       \override NoteHead.ligature-flexa = ##t
+       \once \override NoteHead.flexa-width = #3.2
        c\breve f e d \]
     \[ c'\maxima d'\longa \]
     \[ e'1 a g\breve \]
@@ -985,14 +985,14 @@ to the following
 @lilypond[quote,ragged-right]
 \transpose c c' {
   \set Score.timing = ##f
-  \set Score.defaultBarType = "empty"
-  \override NoteHead #'style = #'petrucci
-  \override Staff.TimeSignature #'style = #'mensural
+  \set Score.defaultBarType = "-"
+  \override NoteHead.style = #'petrucci
+  \override Staff.TimeSignature.style = #'mensural
   \clef "petrucci-g"
   \[ c'\maxima g \]
   \[ d\longa
-     \override NoteHead #'ligature-flexa = ##t
-     \once \override NoteHead #'flexa-width = #3.2
+     \override NoteHead.ligature-flexa = ##t
+     \once \override NoteHead.flexa-width = #3.2
      c\breve f e d \]
   \[ c'\maxima d'\longa \]
   \[ e'1 a g\breve \]
@@ -1110,12 +1110,12 @@ Editio Vaticana style do clef
 @code{vaticana-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'vaticana.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'vaticana.punctum
   \clef "vaticana-do2"
   c
 @end lilypond
@@ -1126,12 +1126,12 @@ Editio Vaticana style fa clef
 @code{vaticana-fa1}, @code{vaticana-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'vaticana.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'vaticana.punctum
   \clef "vaticana-fa2"
   c
 @end lilypond
@@ -1143,12 +1143,12 @@ Editio Medicaea style do clef
 @code{medicaea-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'medicaea.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'medicaea.punctum
   \clef "medicaea-do2"
   c
 @end lilypond
@@ -1159,12 +1159,12 @@ Editio Medicaea style fa clef
 @code{medicaea-fa1}, @code{medicaea-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'medicaea.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'medicaea.punctum
   \clef "medicaea-fa2"
   c
 @end lilypond
@@ -1176,12 +1176,12 @@ hufnagel style do clef
 @code{hufnagel-do3}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-do2"
   c
 @end lilypond
@@ -1192,12 +1192,12 @@ hufnagel style fa clef
 @code{hufnagel-fa1}, @code{hufnagel-fa2}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'line-count = #4
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.line-count = #4
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-fa2"
   c
 @end lilypond
@@ -1208,11 +1208,11 @@ hufnagel style combined do/fa clef
 @code{hufnagel-do-fa}
 @tab
 @lilypond[relative=1,notime]
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override Voice.Flag #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
+  \override Staff.StaffSymbol.color = #red
+  \override Staff.LedgerLineSpanner.color = #red
+  \override Voice.Stem.transparent = ##t
+  \override Voice.Flag.transparent = ##t
+  \override NoteHead.style = #'hufnagel.punctum
   \clef "hufnagel-do-fa"
   c
 @end lilypond
@@ -1264,7 +1264,7 @@ The style for accidentals and key signatures is controlled by the
 @code{KeySignature}, respectively; e.g.:
 
 @example
-\override Staff.Accidental #'glyph-name-alist =
+\override Staff.Accidental.glyph-name-alist =
   #alteration-mensural-glyph-name-alist
 @end example
 
@@ -1316,7 +1316,7 @@ Therefore, @file{gregorian.ly} also defines @code{\virgula} and
 \score {
   <<
     \context VaticanaVoice {
-      \override TextScript  #'padding = #3
+      \override TextScript.padding = #3
       g a g
       s^\markup { "divisio minima" }
       \divisioMinima
@@ -1384,9 +1384,9 @@ specifically designed for use with notation in
 \include "gregorian.ly"
 \score {
   \new VaticanaVoice {
-    \override TextScript #'font-family = #'typewriter
-    \override TextScript #'font-shape = #'upright
-    \override Script #'padding = #-0.1
+    \override TextScript.font-family = #'typewriter
+    \override TextScript.font-shape = #'upright
+    \override Script.padding = #-0.1
     a\ictus_"ictus " \bar "" \break
     a\circulus_"circulus " \bar "" \break
     a\semicirculus_"semicirculus " \bar "" \break
@@ -2438,7 +2438,7 @@ values, so you can immediately go ahead entering the chant:
     \new KievanVoice = "melody" \transpose c c' {
       \cadenzaOn
        c4 c c c c2 b,\longa
-       \bar "kievan"
+       \bar "k"
     }
     \new Lyrics \lyricsto "melody" {
       Го -- спо -- ди по -- ми -- луй.
@@ -2468,7 +2468,7 @@ It is used to indicate the position of @code{c}:
 
 @lilypond[quote,relative=1,notime,verbatim]
   \clef "kievan-do"
-  \override NoteHead #'style = #'kievan
+  \override NoteHead.style = #'kievan
   c
 @end lilypond
 
@@ -2499,7 +2499,7 @@ demonstrates the various Kievan note heads:
 @lilypond[quote,fragment,ragged-right,verbatim]
 \autoBeamOff
 \cadenzaOn
-\override NoteHead #'style = #'kievan
+\override NoteHead.style = #'kievan
 b'1 b'2 b'4 b'8 b'\breve b'\longa
 @end lilypond
 
@@ -2533,8 +2533,8 @@ primarily for the sake of compatibility.
 
 @lilypond[quote,relative=1,notime,verbatim]
 \clef "kievan-do"
-\override NoteHead #'style = #'kievan
-\override Accidental #'glyph-name-alist =
+\override NoteHead.style = #'kievan
+\override Accidental.glyph-name-alist =
  #alteration-kievan-glyph-name-alist
 bes' dis,
 @end lilypond
@@ -2554,12 +2554,12 @@ Notation Reference:
 
 A decorative figure is commonly placed at the end of a piece of
 Kievan notation, which may be called the Kievan final bar line.
-It can be invoked as @code{\bar "kievan"}.
+It can be invoked as @code{\bar "k"}.
 
 @lilypond[quote,relative=1,notime,verbatim]
   \clef "kievan-do"
-  \override NoteHead #'style = #'kievan
-  c \bar "kievan"
+  \override NoteHead.style = #'kievan
+  c \bar "k"
 @end lilypond
 
 @seealso
@@ -2653,11 +2653,10 @@ the @code{Stem_engraver} from the Voice context:
 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{\override Stem #'transparent = ##t} 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).  When using stems that
-carry flags, make sure to set @code{\override Flag #'transparent
+one can use either @code{\override Stem.transparent = ##t} 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).  When using stems that
+carry flags, make sure to set @code{\override Flag.transparent
 = ##t} as well.
 
 @b{Timing.} For unmetered chant, there are several alternatives.
@@ -2673,7 +2672,7 @@ results.  Another alternative is to use @code{\CadenzaOn} and
 
 To remove the bar lines, the radical approach is to @code{\remove}
 the Bar_engraver from the Staff context.  Again, one may want to
-use @code{\override BarLine #'transparent = ##t} instead, if an
+use @code{\override BarLine.transparent = ##t} instead, if an
 occasional barline is wanted.
 
 A common type of transcription is recitativic chant where the
@@ -2690,9 +2689,9 @@ chant = \relative c' {
 }
 
 verba = \lyricmode {
-  \once \override LyricText #'self-alignment-X = #-1
+  \once \override LyricText.self-alignment-X = #-1
   "Noctem quietam et" fi -- nem per -- fec -- tum
-  \once \override LyricText #'self-alignment-X = #-1
+  \once \override LyricText.self-alignment-X = #-1
   "concedat nobis Dominus" om -- ni -- po -- tens.
 }
 \score {
@@ -2705,8 +2704,8 @@ verba = \lyricmode {
       \Staff
       \remove "Time_signature_engraver"
       \remove "Bar_engraver"
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
   }
 }
@@ -2722,13 +2721,13 @@ score, here in combination with changing stem visibility:
 chant = \relative c' {
   \clef "G_8"
   \set Score.timing = ##f
-  c\breve \override NoteHead #'transparent = ##t  c c c c c
-  \revert NoteHead #'transparent
-  \override Stem #'transparent = ##f \stemUp c4 b4 a
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t c2 c4  \divisioMaior
-  c\breve \override NoteHead #'transparent = ##t c c c c c c c
-  \revert NoteHead #'transparent c4 c f, f \finalis
+  c\breve \override NoteHead.transparent = ##t  c c c c c
+  \revert NoteHead.transparent
+  \override Stem.transparent = ##f \stemUp c4 b4 a
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t c2 c4  \divisioMaior
+  c\breve \override NoteHead.transparent = ##t c c c c c c c
+  \revert NoteHead.transparent c4 c f, f \finalis
 }
 
 verba = \lyricmode {
@@ -2745,9 +2744,9 @@ verba = \lyricmode {
     \context {
       \Staff
       \remove "Time_signature_engraver"
-      \override BarLine #'transparent = ##t
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override BarLine.transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
   }
 }
@@ -2776,7 +2775,7 @@ adjustments are necessary, this can be easily done with
 @lilypond[verbatim,quote]
 spiritus = \relative c' {
   \time 1/4
-  \override Lyrics.LyricText #'X-extent  = #'(0 . 3)
+  \override Lyrics.LyricText.X-extent  = #'(0 . 3)
   d4 \times 2/3 { f8 a g } g a a4 g f8 e
   d4 f8 g g8 d f g a g f4 g8 a a4  s
   \times 2/3 { g8 f d } e f g a g4
@@ -2796,12 +2795,12 @@ spirLyr = \lyricmode {
     \context {
       \Staff
       \remove "Time_signature_engraver"
-      \override BarLine #'X-extent = #'(-1 . 1)
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
-      \override Beam #'transparent = ##t
-      \override BarLine #'transparent = ##t
-      \override TupletNumber #'transparent = ##t
+      \override BarLine.X-extent = #'(-1 . 1)
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
+      \override Beam.transparent = ##t
+      \override BarLine.transparent = ##t
+      \override TupletNumber.transparent = ##t
     }
   }
 }
index f4f2ad0928b539f1f7ead912734ab56b1cf2d68e..e02ba5bbfafdcb5c520bab51dbed7a1ab2f36080 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Changing defaults
 @chapter Changing defaults
@@ -765,7 +765,7 @@ An @code{\override} command, but with the context name omitted
   \layout {
     \context {
       \Staff
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
   }
 }
@@ -791,7 +791,7 @@ Directly setting a context property
 
 @item
 A predefined command such as @code{\dynamicUp} or a music
-expression like @code{\accidentalStyle "dodecaphonic"}
+expression like @code{\accidentalStyle dodecaphonic}
 
 @lilypond[quote,verbatim]
 \score {
@@ -806,7 +806,7 @@ expression like @code{\accidentalStyle "dodecaphonic"}
     }
     \context {
       \Staff
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
     }
   }
 }
@@ -858,9 +858,9 @@ the same command written in the music stream.
     }
   }
   \layout {
-    \accidentalStyle "dodecaphonic"
+    \accidentalStyle dodecaphonic
     \set fontSize = #-4
-    \override Voice.Stem #'thickness = #4.0
+    \override Voice.Stem.thickness = #4.0
   }
 }
 @end lilypond
@@ -899,7 +899,7 @@ An @code{\override} command, but with the context name omitted
   \new Staff {
     \new Voice
     \with {
-      \override Stem #'thickness = #4.0
+      \override Stem.thickness = #4.0
     }
     {
       \relative c'' {
@@ -951,7 +951,7 @@ A predefined command such as @code{\dynamicUp}
       }
     }
     \new Staff
-    \with { \accidentalStyle "dodecaphonic" }
+    \with { \accidentalStyle dodecaphonic }
     {
       \new Voice
       \with { \dynamicUp }
@@ -1040,9 +1040,9 @@ to indicate improvisation in jazz pieces,
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 }
 \context { \Staff
@@ -1108,9 +1108,9 @@ the center line.
 The notes look like a slash, and have no stem,
 
 @example
-\override NoteHead #'style = #'slash
-\override Stem #'transparent = ##t
-\override Flag #'transparent = ##t
+\override NoteHead.style = #'slash
+\override Stem.transparent = ##t
+\override Flag.transparent = ##t
 @end example
 
 All these plug-ins have to cooperate, and this is achieved with a
@@ -1131,9 +1131,9 @@ Put together, we get
   \consists "Text_engraver"
   \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 @}
 @end example
@@ -1562,14 +1562,14 @@ fingering away from the note head.  The following command inserts
 3 staff spaces of white
 between the note and the fingering:
 @example
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 @end example
 
 Inserting this command before the Fingering object is created,
 i.e., before @code{c2}, yields the following result:
 
 @lilypond[quote,relative=2,verbatim]
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 c-2
 \stemUp
 f
@@ -1667,7 +1667,7 @@ discuss the functionality of this command.
 The command
 
 @verbatim
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 @end verbatim
 
 @noindent
@@ -1678,7 +1678,7 @@ appearance.  Here we see the command in action:
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 c4
 c4
 c4
@@ -1694,7 +1694,7 @@ causing the default context @code{Voice} to be used.  Adding
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\once \override Stem #'thickness = #4.0
+\once \override Stem.thickness = #4.0
 c4
 c4
 @end lilypond
@@ -1705,9 +1705,9 @@ or beams, the @code{\override} command must be executed at the moment
 when the object is created.  In this example,
 
 @lilypond[quote,verbatim,relative=2]
-\override Slur #'thickness = #3.0
+\override Slur.thickness = #3.0
 c8[( c
-\override Beam #'beam-thickness = #0.6
+\override Beam.beam-thickness = #0.6
 c8 c])
 @end lilypond
 
@@ -1721,8 +1721,8 @@ affects settings that were made in the same context.  In other words, the
 @code{\revert} in the next example does not do anything.
 
 @example
-\override Voice.Stem #'thickness = #4.0
-\revert Staff.Stem #'thickness
+\override Voice.Stem.thickness = #4.0
+\revert Staff.Stem.thickness
 @end example
 
 Some tweakable options are called @q{subproperties} and reside inside
@@ -1737,7 +1737,7 @@ properties.  To tweak those, use commands of the form
 such as
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
 @end ignore
@@ -1909,36 +1909,19 @@ association list.  See @file{scm/define-grobs.scm}
 to see the settings for each grob description.  Grob descriptions
 are modified with @code{\override}.
 
-@code{\override} is actually a shorthand;
+The syntax for the @code{\override} command is
 
 @example
-\override @var{context}.@var{GrobName} #'@var{property} = #@var{value}
+\override [@var{context}.]@var{GrobName}.@var{property} = #@var{value}
 @end example
 
-@noindent
-is more or less equivalent to
-
-@c  leave this long line -gp
-@example
-\set @var{context}.@var{GrobName}  =
-  #(cons (cons '@var{property} @var{value})
-         <previous value of @var{context}.@var{GrobName}>)
-@end example
-
-The value of @code{context}.@code{GrobName} (the alist) is used to initialize
-the properties of individual grobs.  Grobs have
-properties, named in Scheme style, with
-@code{dashed-words}.  The values of grob properties change
-during the formatting process: formatting basically amounts
-to computing properties using callback functions.
-
 For example, we can increase the thickness of a note stem by
 overriding the @code{thickness} property of the @code{Stem}
 object:
 
 @lilypond[quote,verbatim,relative=2]
 c4 c
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
 @end lilypond
 
@@ -1946,11 +1929,11 @@ If no context is specified in an @code{\override}, the bottom
 context is used:
 
 @lilypond[quote,verbatim,relative=2]
-{ \override Staff.Stem #'thickness = #3.0
+{ \override Staff.Stem.thickness = #3.0
   <<
     {
       e4 e
-      \override Stem #'thickness = #0.5
+      \override Stem.thickness = #0.5
       e4 e
     } \\ {
       c4 c c c
@@ -1959,17 +1942,39 @@ context is used:
 }
 @end lilypond
 
+Some tweakable options are called @q{subproperties} and reside inside
+properties.  To tweak those, use commands in the form
+
+@example
+\override Stem.details.beamed-lengths = #'(4 4 3)
+@end example
+
+or to modify the ends of spanners, use a form like these
+
+@example
+\override TextSpanner.bound-details.left.text = #"left text"
+\override TextSpanner.bound-details.right.text = #"right text"
+@end example
+
 @funindex \revert
 @cindex reverting overrides
 @cindex overrides, reverting
 
-The effects of @code{\override} can be undone by @code{\revert}:
+The effects of @code{\override} can be undone by @code{\revert}.
+
+The syntax for the @code{\revert} command is
+
+@example
+\revert [@var{context}.]@var{GrobName}.@var{property}
+@end example
+
+For example,
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
-\revert Voice.Stem #'thickness
+\revert Voice.Stem.thickness
 c4
 @end lilypond
 
@@ -1981,11 +1986,11 @@ grobs in the affected context from the current time forward:
   <<
     {
       e4
-      \override Staff.Stem #'thickness = #3.0
+      \override Staff.Stem.thickness = #3.0
       e4 e e
     } \\ {
       c4 c c
-      \revert Staff.Stem #'thickness
+      \revert Staff.Stem.thickness
       c4
     }
   >>
@@ -2002,11 +2007,11 @@ to affect only the current time step:
 {
   <<
     {
-      \override Stem #'thickness = #3.0
+      \override Stem.thickness = #3.0
       e4 e e e
     } \\ {
       c4
-      \once \override Stem #'thickness = #3.0
+      \once \override Stem.thickness = #3.0
       c4 c c
     }
   >>
@@ -2018,7 +2023,7 @@ to affect only the current time step:
 Commands which change output generally look like
 
 @example
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 @end example
 
 @noindent
@@ -2031,13 +2036,6 @@ To construct this tweak we must determine these bits of information:
 @item a sensible value: here @code{3.0}.
 @end itemize
 
-Some tweakable options are called @q{subproperties} and reside inside
-properties.  To tweak those, use commands in the form
-
-@example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
-@end example
-
 @cindex internal documentation
 @cindex finding graphical objects
 @cindex graphical object descriptions
@@ -2074,7 +2072,7 @@ accomplished with the @code{\tweak} command, which has the following
 syntax:
 
 @example
-\tweak @var{layout-object} #'@var{grob-property} @var{value}
+\tweak [@var{layout-object}.]@var{grob-property} @var{value}
 @end example
 
 Specifying @var{layout-object} is optional.
@@ -2089,19 +2087,19 @@ For example:
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
--\tweak #'padding #8
+-\tweak padding #8
 -^
 @end lilypond
 
 
 
-But the main use of the @code{\tweak} command is to modify just
+The main use of the @code{\tweak} command is to modify just
 one of a number of notation elements which start at the same musical
 moment, like the notes of a chord, or tuplet brackets which start
 at the same time.
@@ -2123,14 +2121,14 @@ note, and able to modify it.
 So, this works:
 
 @lilypond[relative=2,verbatim,quote]
-<\tweak #'color #red c>4
+<\tweak color #red c>4
 @end lilypond
 
 @noindent
 but this does not:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
+\tweak color #red c4
 @end lilypond
 
 @end ignore
@@ -2161,10 +2159,10 @@ note head are modified within a single chord:
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
 @end lilypond
@@ -2172,7 +2170,7 @@ note head are modified within a single chord:
 @code{\tweak} can be used to modify slurs:
 
 @lilypond[verbatim,quote,relative=1]
-c-\tweak #'thickness #5 ( d e f)
+c-\tweak thickness #5 ( d e f)
 @end lilypond
 
 
@@ -2184,9 +2182,9 @@ only acts as a container, and all layout objects are created from events
 inside of the @code{EventChord}:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
-\tweak #'color #red <c e>4
-<\tweak #'color #red c e>4
+\tweak color #red c4
+\tweak color #red <c e>4
+<\tweak color #red c e>4
 @end lilypond
 
 The simple @code{\tweak} command cannot be used to modify any object
@@ -2196,13 +2194,14 @@ beams or accidentals, since these are generated later by
 @code{NoteHead} layout objects rather than by music elements in the
 input stream.
 
-Such indirectly created layout objects can be tweaked using the explicit
-form of the @code{\tweak} command:
+Such indirectly created layout objects can be tweaked using the form
+of the @code{\tweak} command in which the grob name is specified
+explicitly:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak Stem #'color #red
-\tweak Beam #'color #green c8 e
-<c e \tweak Accidental #'font-size #-3 ges>4
+\tweak Stem.color #red
+\tweak Beam.color #green c8 e
+<c e \tweak Accidental.font-size #-3 ges>4
 @end lilypond
 
 @code{\tweak} cannot be used to modify clefs or time
@@ -2215,10 +2214,10 @@ notational element -- all affect it:
 
 @lilypond[verbatim,quote,relative=1]
 c
--\tweak #'style #'dashed-line
--\tweak #'dash-fraction #0.2
--\tweak #'thickness #3
--\tweak #'color #red
+-\tweak style #'dashed-line
+-\tweak dash-fraction #0.2
+-\tweak thickness #3
+-\tweak color #red
  \glissando
 f'
 @end lilypond
@@ -2311,7 +2310,7 @@ key individually, use a @emph{nested declaration}:
 % reduced space between staves
 \new PianoStaff \with {
   % this is the nested declaration
-  \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+  \override StaffGrouper.staff-staff-spacing.basic-distance = #7
 } <<
   \new Staff { \clef treble c''1 }
   \new Staff { \clef bass   c1   }
@@ -2330,7 +2329,7 @@ completely re-defined with one declaration, as an alist:
 
 @lilypond[quote,verbatim]
 \new PianoStaff \with {
-  \override StaffGrouper #'staff-staff-spacing =
+  \override StaffGrouper.staff-staff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 0)
        (padding . 0)
@@ -2349,10 +2348,10 @@ of @code{basic-distance} when unset).  Thus the following two
 declarations are equivalent:
 
 @example
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7))
 
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7)
      (minimum-distance . 0)
      (padding . 0)
@@ -2506,7 +2505,13 @@ left, right or center; etc.  Most of these choices may be left to
 be determined automatically by LilyPond, but in some cases it may
 be desirable to force a particular direction or placement.
 
-@strong{Articulation direction indicators}
+@menu
+* Articulation direction indicators::
+* The direction property::
+@end menu
+
+@node Articulation direction indicators
+@unnumberedsubsubsec Articulation direction indicators
 
 By default some directions are always up or always down (e.g.
 dynamics or fermata), while other things can alternate between
@@ -2539,7 +2544,8 @@ c2( c)
 c2^( c)
 @end lilypond
 
-@strong{The direction property}
+@node The direction property
+@unnumberedsubsubsec The direction property
 
 The position or direction of many layout objects is controlled by the
 @code{direction} property.
@@ -2678,7 +2684,7 @@ for @code{'line-positions}.}
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7)
+  \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2689,7 +2695,7 @@ this setting.
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'width = #23
+  \override StaffSymbol.width = #23
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2709,6 +2715,12 @@ All spanners support the @code{spanner-interface}.  A few, essentially
 those that draw a straight line between the two objects, support in
 addition the @code{line-spanner-interface}.
 
+@menu
+* Using the spanner-interface::
+* Using the line-spanner-interface::
+@end menu
+
+@node Using the spanner-interface
 @unnumberedsubsubsec Using the @code{spanner-interface}
 
 This interface provides two properties that apply to several spanners.
@@ -2747,7 +2759,7 @@ Works not at all for:
 a~a
 a
 % increase the length of the tie
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ~a
 @end lilypond
 
@@ -2756,7 +2768,7 @@ a1
 \compressFullBarRests
 R1*23
 % increase the length of the rest bar
-\once \override MultiMeasureRest #'minimum-length = #20
+\once \override MultiMeasureRest.minimum-length = #20
 R1*23
 a1
 @end lilypond
@@ -2764,7 +2776,7 @@ a1
 @lilypond[verbatim,quote,relative=2]
 a \< a a a \!
 % increase the length of the hairpin
-\override Hairpin #'minimum-length = #20
+\override Hairpin.minimum-length = #20
 a \< a a a \!
 @end lilypond
 
@@ -2774,12 +2786,12 @@ phrasing slurs:
 @lilypond[verbatim,quote,relative=2]
 a( a)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ( a)
 
 a\( a\)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 \( a\)
 @end lilypond
 
@@ -2795,12 +2807,12 @@ the minimum length of a glissando has no effect unless the
 e \glissando c'
 
 % not effective alone
-\once \override Glissando #'minimum-length = #20
+\once \override Glissando.minimum-length = #20
 e, \glissando c'
 
 % effective only when both overrides are present
-\once \override Glissando #'minimum-length = #20
-\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
 e, \glissando c'
 @end lilypond
 
@@ -2808,12 +2820,12 @@ The same is true of the @code{Beam} object:
 
 @lilypond[verbatim,quote,relative=1]
 % not effective alone
-\once \override Beam #'minimum-length = #20
+\once \override Beam.minimum-length = #20
 e8 e e e
 
 % effective only when both overrides are present
-\once \override Beam #'minimum-length = #20
-\once \override Beam #'springs-and-rods = #ly:spanner::set-spacing-rods
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
 e8 e e e
 @end lilypond
 
@@ -2828,7 +2840,7 @@ itself:
 
 @lilypond[verbatim,quote,relative=2]
 a \< a a a a \! a a a \break
-\override Hairpin #'to-barline = ##f
+\override Hairpin.to-barline = ##f
 a \< a a a a \! a a a
 @end lilypond
 
@@ -2837,6 +2849,7 @@ setting it to @code{#t} has no effect on slurs or phrasing slurs
 or on other spanners for which terminating on the bar line would
 not be meaningful.
 
+@node Using the line-spanner-interface
 @unnumberedsubsubsec Using the @code{line-spanner-interface}
 
 Objects which support the @code{line-spanner-interface} include
@@ -2861,8 +2874,8 @@ the @code{\override} command is quite simple:
 
 @lilypond[relative=2,quote,verbatim]
 e2 \glissando b
-\once \override Glissando #'(bound-details left Y) = #3
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.left.Y = #3
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando b
 @end lilypond
 
@@ -2880,8 +2893,8 @@ specified by the @code{left-broken} and @code{right-broken}
 sub-lists of @code{bound-details}.  For example:
 
 @lilypond[relative=2,ragged-right,verbatim,quote]
-\override Glissando #'breakable = ##t
-\override Glissando #'(bound-details right-broken Y) = #-3
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
 c1 \glissando \break
 f1
 @end lilypond
@@ -2921,7 +2934,7 @@ This is a markup that is evaluated to yield the stencil.  It is used
 to put @i{cresc.}, @i{tr} and other text on horizontal spanners.
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
 c2\startTextSpan b c a\stopTextSpan
 @end lilypond
@@ -2935,15 +2948,11 @@ or @code{stencil-offset} will move the symbol at the edge vertically
 relative to the end point of the line:
 
 @lilypond[relative=1,quote,verbatim]
-\override TextSpanner
-  #'(bound-details left stencil-align-dir-y) = #-2
-\override TextSpanner
-  #'(bound-details right stencil-align-dir-y) = #UP
-
-\override TextSpanner
-  #'(bound-details left text) = #"ggg"
-\override TextSpanner
-  #'(bound-details right text) = #"hhh"
+\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
+\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP
+
+\override TextSpanner.bound-details.left.text = #"ggg"
+\override TextSpanner.bound-details.right.text = #"hhh"
 c4^\startTextSpan c c c \stopTextSpan
 @end lilypond
 
@@ -3031,9 +3040,9 @@ will not be drawn.  The default action can be recovered with
 
 @lilypond[quote,verbatim,relative=1]
 a1 a
-\override Score.BarLine #'stencil = ##f
+\override Score.BarLine.stencil = ##f
 a a
-\revert Score.BarLine #'stencil
+\revert Score.BarLine.stencil
 a a a
 @end lilypond
 
@@ -3048,7 +3057,7 @@ space but is made invisible.
 
 @lilypond[quote,verbatim,relative=2]
 a4 a
-\once \override NoteHead #'transparent = ##t
+\once \override NoteHead.transparent = ##t
 a a
 @end lilypond
 
@@ -3072,7 +3081,7 @@ and this may leave a ghostly image of the white object, as shown
 here:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
+\override Staff.Clef.color = #white
 a1
 @end lilypond
 
@@ -3093,8 +3102,8 @@ the @code{Clef} object must be given in a lower value of
 @code{layer}, say @w{@code{-1}}, so that it is drawn earlier:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
-\override Staff.Clef #'layer = #-1
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
 a1
 @end lilypond
 
@@ -3188,7 +3197,7 @@ visibility of bar lines:
 f4 g a b
 f4 g a b
 % Remove bar line at the end of the current line
-\once \override Score.BarLine #'break-visibility = #'#(#f #t #t)
+\once \override Score.BarLine.break-visibility = #'#(#f #t #t)
 \break
 f4 g a b
 f4 g a b
@@ -3234,7 +3243,7 @@ is set.
 \key g \major
 f4 g a b
 % Try to remove all key signatures
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b
 \break
@@ -3260,7 +3269,7 @@ object to remove these.
 \key g \major
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3278,7 +3287,7 @@ to @code{#f}:
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.printKeyCancellation = ##f
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3347,13 +3356,13 @@ and how to tune them.
 
 @lilypond[relative=2,ragged-right,verbatim,quote]
 d2 \glissando d'2
-\once \override Glissando #'style = #'dashed-line
+\once \override Glissando.style = #'dashed-line
 d,2 \glissando d'2
-\override Glissando #'style = #'dotted-line
+\override Glissando.style = #'dotted-line
 d,2 \glissando d'2
-\override Glissando #'style = #'zigzag
+\override Glissando.style = #'zigzag
 d,2 \glissando d'2
-\override Glissando #'style = #'trill
+\override Glissando.style = #'trill
 d,2 \glissando d'2
 @end lilypond
 
@@ -3364,7 +3373,7 @@ override these:
 @c TODO Complete
 @lilypond[relative=2,ragged-right,verbatim,quote]
 e2 \glissando f
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando f
 @end lilypond
 
@@ -3415,7 +3424,7 @@ they may be:
 
 @lilypond[quote,verbatim,relative=1]
 g4\< e' d' f\!
-\override Hairpin #'rotation = #'(20 -1 0)
+\override Hairpin.rotation = #'(20 -1 0)
 g,,4\< e' d' f\!
 @end lilypond
 
@@ -3433,7 +3442,7 @@ to disable the automatic collision avoidance, which would push some
 of the text too high.
 
 @lilypond[quote,verbatim,relative=1]
-\override TextScript #'outside-staff-priority = ##f
+\override TextScript.outside-staff-priority = ##f
 g4^\markup { \rotate #30 "a G" }
 b^\markup { \rotate #30 "a B" }
 des^\markup { \rotate #30 "a D-Flat" }
@@ -3540,12 +3549,12 @@ and @code{Y-offset} modified.
 @lilypond[verbatim,quote,relative=2]
 a-3
 a
--\tweak #'X-offset #0
--\tweak #'Y-offset #0
+-\tweak X-offset #0
+-\tweak Y-offset #0
 -3
 a
--\tweak #'X-offset #-1
--\tweak #'Y-offset #1
+-\tweak X-offset #-1
+-\tweak Y-offset #1
 -3
 @end lilypond
 
@@ -3595,7 +3604,7 @@ to value of @code{direction}.
 @node Using the self-alignment-interface
 @unnumberedsubsubsec Using the @code{self-alignment-interface}
 
-@emph{Self-aligning objects horizontally}
+@subsubsubheading Self-aligning objects horizontally
 
 The horizontal alignment of an object which supports the
 @code{self-alignment-interface} is controlled by the value of
@@ -3620,17 +3629,17 @@ note:
 
 @lilypond[quote,verbatim,relative=1]
 a'
--\tweak #'self-alignment-X #-1
+-\tweak self-alignment-X #-1
 ^"left-aligned"
--\tweak #'self-alignment-X #0
+-\tweak self-alignment-X #0
 ^"center-aligned"
--\tweak #'self-alignment-X #RIGHT
+-\tweak self-alignment-X #RIGHT
 ^"right-aligned"
--\tweak #'self-alignment-X #-2.5
+-\tweak self-alignment-X #-2.5
 ^"aligned further to the right"
 @end lilypond
 
-@emph{Self-aligning objects vertically}
+@subsubsubheading Self-aligning objects vertically
 
 Objects may be aligned vertically in an analogous way to aligning
 them horizontally if the @code{Y-offset} property is set to
@@ -3648,7 +3657,7 @@ with the reference point of the parent.  The symbols @code{DOWN},
 @code{CENTER}, and @code{UP} may be substituted for @w{@code{-1}},
 @code{0}, and @code{1}, respectively.
 
-@emph{Self-aligning objects in both directions}
+@subsubsubheading Self-aligning objects in both directions
 
 By setting both @code{X-offset} and @code{Y-offset}, an object may
 be aligned in both directions simultaneously.
@@ -3658,9 +3667,9 @@ that it nestles close to the note head.
 
 @lilypond[quote,verbatim,relative=2]
 a
--\tweak #'self-alignment-X #0.5  % move horizontally left
--\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
--\tweak #'self-alignment-Y #-1  % move vertically up
+-\tweak self-alignment-X #0.5  % move horizontally left
+-\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self
+-\tweak self-alignment-Y #-1  % move vertically up
 -3  % third finger
 @end lilypond
 
@@ -3710,20 +3719,20 @@ centered above the object:
 
 @lilypond[verbatim,quote,relative=1]
 % The rehearsal mark will be centered above the Clef
-\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+\override Score.RehearsalMark.break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The rehearsal mark will be centered above the Time Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
 \key a \major
 \clef treble
 \time 3/4
 \mark "↓"
 e2.
 % The rehearsal mark will be centered above the Breath Mark
-\override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign)
+\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
 \key a \major
 \clef treble
 \time 4/4
@@ -3743,14 +3752,14 @@ line would be.
 
 @lilypond[verbatim,quote,relative=1]
 % The rehearsal mark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The rehearsal mark will be centered above the Clef
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef bass
 \mark "↓"
@@ -3758,7 +3767,7 @@ gis,,1
 % The rehearsal mark will be centered above the Bar Line
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.explicitClefVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
@@ -3771,19 +3780,19 @@ multiple staves, this setting should be done for all the staves.
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
 \key a \major
 \clef treble
 \time 4/4
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the Key Signature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
 \mark "↓"
 \key a \major
 e1
 % The RehearsalMark will be aligned with the right edge of the Key Signature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
 e1
@@ -3795,14 +3804,14 @@ edge by an arbitrary amount.  The units are staff-spaces:
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be aligned with the left edge of the Key Signature
 % and then shifted right by 3.5 staff-spaces
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
-\once \override Score.KeySignature #'break-align-anchor = #3.5
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature.break-align-anchor = #3.5
 \key a \major
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the Key Signature
 % and then shifted left by 2 staff-spaces
-\once \override Score.KeySignature #'break-align-anchor = #-2
+\once \override Score.KeySignature.break-align-anchor = #-2
 \key a \major
 \mark "↓"
 e1
@@ -3850,8 +3859,8 @@ symbol to a cross within a circle.
 
 @lilypond[verbatim,quote]
 XinO = {
-  \once \override NoteHead  #'stencil = #ly:text-interface::print
-  \once \override NoteHead #'text = \markup {
+  \once \override NoteHead.stencil = #ly:text-interface::print
+  \once \override NoteHead.text = \markup {
     \combine
       \halign #-0.7 \draw-circle #0.85 #0.2 ##f
       \musicglyph #"noteheads.s2cross"
@@ -3892,11 +3901,28 @@ Notation Reference:
 @cindex Bézier curves, control points
 @cindex control points, Bézier curves
 
-Ties, slurs and phrasing slurs are drawn as third-order Bézier
-curves.  If the shape of the tie or slur which is calculated
-automatically is not optimum, the shape may be modified manually by
-explicitly specifying the four control points required to define
-a third-order Bézier curve.
+@code{Tie}s, @code{Slur}s, @code{PhrasingSlur}s,
+@code{LaissezVibrerTie}s and @code{RepeatTie}s are all drawn as
+third-order Bézier curves.  If the shape of the tie or slur which
+is calculated automatically is not optimum, the shape may be
+modified manually in two ways:
+
+@enumerate a
+@item
+by specifying the displacements to be made to the control points
+of the automatically calculated Bézier curve, or
+
+@item
+by explicitly specifying the positions of the four control points
+required to define the wanted curve.
+@end enumerate
+
+Both methods are explained below.  The first method is more suitable
+if only slight adjustments to the curve are required; the second may
+be better for creating curves which are related to just a single
+note.
+
+@subsubsubheading Cubic Bézier curves
 
 Third-order or cubic Bézier curves are defined by four control
 points.  The first and fourth control points are precisely the
@@ -3908,10 +3934,17 @@ heading directly towards the second, gradually bending over to
 head towards the third and continuing to bend over to head towards
 the fourth, arriving there travelling directly from the third
 control point.  The curve is entirely contained in the
-quadrilateral defined by the four control points.
+quadrilateral defined by the four control points.  Translations,
+rotations and scaling of the control points all result in exactly
+the same operations on the curve.
+
+@subsubsubheading Specifying displacements from current control points
 
-Here is an example of a case where the tie is not optimum, and
-where @code{\tieDown} would not help.
+@cindex shaping slurs and ties
+@funindex \shape
+
+In this example the automatic placement of the tie is not optimum,
+and @code{\tieDown} would not help.
 
 @lilypond[verbatim,quote,relative=1]
 <<
@@ -3921,40 +3954,152 @@ where @code{\tieDown} would not help.
 >>
 @end lilypond
 
-One way of improving this tie is to manually modify its control
-points, as follows.
+Adjusting the control points of the tie with @code{\shape} allows
+the collisions to be avoided.
 
-The coordinates of the Bézier control points are specified in units
-of staff-spaces.  The X@tie{}coordinate is relative to the reference
-point of the note to which the tie or slur is attached, and the
-Y@tie{}coordinate is relative to the staff center line.  The
-coordinates are entered as a list of four pairs of decimal numbers
-(reals).  One approach is to estimate the coordinates of the two
-end points, and then guess the two intermediate points.  The optimum
-values are then found by trial and error.
+The syntax of @code{\shape} is
 
-It is useful to remember that a symmetric curve requires symmetric
-control points, and that Bézier curves have the useful property that
-transformations of the curve such as translation, rotation and
-scaling can be achieved by applying the same transformation to the
-curve's control points.
+@example
+[-]@code{\shape} @var{displacements} @var{item}
+@end example
 
-For the example above the following override gives a satisfactory
-tie.  Note the placement -- it has to be immediately before the note
-to which the start of the tie (or slur) is attached.
+This will reposition the control-points of @var{item} by the amounts
+given by @var{displacements}.  The @var{displacements} argument is a
+list of number pairs or a list of such lists.  Each element of a pair
+represents the displacement of one of the coordinates of a
+control-point.  If @var{item} is a string, the result is
+@code{\once\override} for the specified grob type.  If @var{item} is
+a music expression, the result is the same music expression with an
+appropriate tweak applied.
+
+In other words, the @code{\shape} function can act as either a
+@code{\once\override} command or a @code{\tweak} command depending
+on whether the @var{item} argument is a grob name, like @qq{Slur},
+or a music expression, like @qq{(}.  The @var{displacements} argument
+specifies the displacements of the four control points as a list of
+four pairs of (dx . dy) values in units of staff-spaces (or a list
+of such lists if the curve has more than one segment).
+
+The leading hyphen is required if and only if the @code{\tweak} form
+is being used.
+
+So, using the same example as above and the @code{\once\override}
+form of @code{\shape}, this will raise the tie by half a staff-space:
 
 @lilypond[verbatim,quote,relative=1]
 <<
   {
-    \once \override Tie
-      #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
-     e1 ~ e
+    \shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie
+    e1~ e
   }
 \\
   { r4 <g c,> <g c,> <g c,> }
 >>
 @end lilypond
 
+This positioning of the tie is better, but maybe it should be raised
+more in the center.  The following example does this, this time using
+the alternative @code{\tweak} form:
+
+@lilypond[verbatim,quote,relative=1]
+<<
+  {
+    e1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e
+  }
+\\
+  { r4 <g c,> <g c,> <g c,> }
+>>
+@end lilypond
+
+Changes to the horizontal positions of the control points may be made
+in the same way, and two different curves starting at the same
+musical moment may also be shaped:
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+c8(\( a) a'4 e c\)
+\shape #'((0.7 . -0.4) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur
+\shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur
+c8(\( a) a'4 e c\)
+@end lilypond
+
+The @code{\shape} function can also displace the control points of
+curves which stretch across line breaks.  Each piece of the broken
+curve can be given its own list of offsets.  If changes to a
+particular segment are not needed, the empty list can serve as a
+placeholder.  In this example the line break makes the single slur
+look like two:
+
+@lilypond[verbatim,quote,ragged-right,relative=1]
+c4( f g c
+\break
+d,4 c' f, c)
+@end lilypond
+
+Changing the shapes of the two halves of the slur makes it clearer
+that the slur continues over the line break:
+
+@lilypond[verbatim,quote,ragged-right,relative=1]
+% () may be used as a shorthand for ((0 . 0) (0 . 0) (0 . 0) (0 . 0))
+% if any of the segments does not need to be changed
+\shape #'(
+           (( 0 . 0) (0 . 0) (0 . 0) (0 . 1))
+           ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5))
+         ) Slur
+c4( f g c
+\break
+d,4 c' f, c)
+@end lilypond
+
+If an S-shaped curve is required the control points must always be
+adjusted manually --- LilyPond will never select such shapes
+automatically.
+
+@lilypond[verbatim,quote,relative=2]
+c8( e b-> f d' a e-> g)
+\shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5)) PhrasingSlur
+c8\( e b-> f d' a e-> g\)
+@end lilypond
+
+@subsubsubheading Specifying control points explicitly
+
+The coordinates of the Bézier control points are specified in units
+of staff-spaces.  The X@tie{}coordinate is relative to the reference
+point of the note to which the tie or slur is attached, and the
+Y@tie{}coordinate is relative to the staff center line.  The
+coordinates are specified as a list of four pairs of decimal numbers
+(reals).  One approach is to estimate the coordinates of the two
+end points, and then guess the two intermediate points.  The optimum
+values are then found by trial and error.  Be aware that these values
+may need to be manually adjusted if any further changes are made to
+the music or the layout.
+
+One situation where specifying the control points explicitly is
+preferable to specifying displacements is when they need to be
+specified relative to a single note.  Here is an example of this.
+It shows one way of indicating a slur extending into alternative
+sections of a volta repeat.
+
+@lilypond[verbatim,quote,relative=2]
+c1
+\repeat volta 3 { c4 d( e f }
+\alternative {
+  { g2) d }
+  {
+    g2
+    % create a slur and move it to a new position
+    % the <> is just an empty chord to carry the slur termination
+    -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> )
+    f,
+  }
+  {
+    e'2
+    % create a slur and move it to a new position
+    -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> )
+    f,
+  }
+}
+@end lilypond
+
 @knownissues
 It is not possible to modify shapes of ties or slurs by changing
 the @code{control-points} property if there are multiple ties or slurs
@@ -4037,12 +4182,12 @@ process.
                               '(-0.5 . 0.5)))))
 
 squareLineCircleSpace = {
-  \override NoteHead #'stencil = #square-line-circle-space
+  \override NoteHead.stencil = #square-line-circle-space
 }
 
 smartSquareLineCircleSpace = {
   \squareLineCircleSpace
-  \override NoteHead #'Y-extent =
+  \override NoteHead.Y-extent =
    #(ly:make-unpure-pure-container
       ly:grob::stencil-height
       (lambda (grob start end) (ly:grob::stencil-height grob)))
@@ -4051,9 +4196,9 @@ smartSquareLineCircleSpace = {
 \new Voice \with { \remove "Stem_engraver" }
 \relative c'' {
   \squareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
   \smartSquareLineCircleSpace
-  cis4 ces cisis c
+  cis4 ces disis d
 }
 @end lilypond
 
@@ -4178,7 +4323,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
@@ -4199,10 +4344,10 @@ custosNote =
      (parser location note)
      (ly:music?)
    #{
-     \tweak NoteHead #'stencil #ly:text-interface::print
-     \tweak NoteHead #'text
+     \tweak NoteHead.stencil #ly:text-interface::print
+     \tweak NoteHead.text
         \markup \musicglyph #"custodes.mensural.u0"
-     \tweak Stem #'stencil ##f
+     \tweak Stem.stencil ##f
      #note
    #})
 
@@ -4217,7 +4362,7 @@ tempoPadded =
      (parser location padding tempotext)
      (number? markup?)
    #{
-     \once \override Score.MetronomeMark #'padding = #padding
+     \once \override Score.MetronomeMark.padding = #padding
      \tempo \markup { \bold #tempotext }
    #})
 
index 57cf68c4d1560aa9dff42568c66473569644452e..89fe8ebb10651a1e7d4ba6298b6ffd7e951f8488 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @c TODO: add tablature.
@@ -28,7 +28,7 @@
 @tab
 @lilypond[relative=2,notime]
 \set Staff.autoBeaming = ##f
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c1 c2 c8 c16
 @end lilypond
 
@@ -36,7 +36,7 @@ c1 c2 c8 c16
 @tab augmentation dots
 @tab
 @lilypond[relative=2,notime]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 c4. c4..
 @end lilypond
 
@@ -68,7 +68,7 @@ s4_" "
 @tab time signature
 @tab
 @lilypond[relative=1]
-\override Staff.Clef #'stencil = #empty-stencil
+\override Staff.Clef.stencil = #empty-stencil
 \time 3/4
 s4_" "
 \time 4/4
@@ -80,7 +80,7 @@ s16_" "
 @tab rest
 @tab
 @lilypond[relative=2,notime]
-\override Staff.Clef #'break-visibility = #all-invisible
+\override Staff.Clef.break-visibility = #all-invisible
 r4 r8
 @end lilypond
 
index 753d82bb3d4b781096701ebfcb1a7a11ad58b555..6b092e1dabe27d633f9f1772f630f67964e066be 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Chord notation
@@ -168,7 +168,7 @@ The default action; produces a major triad.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1
 }
 @end lilypond
@@ -180,7 +180,7 @@ The minor chord.  This modifier lowers the 3rd.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:m c:m7
 }
 @end lilypond
@@ -194,7 +194,7 @@ present) the 7th step.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:dim c:dim7
 }
 @end lilypond
@@ -206,7 +206,7 @@ The augmented chord.  This modifier raises the 5th step.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:aug
 }
 @end lilypond
@@ -220,7 +220,7 @@ to create a major triad.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   c1:maj c:maj7
 }
 @end lilypond
@@ -563,7 +563,7 @@ Jazz notation are shown on the chart in @ref{Chord name chart}.
 
 In addition to the different naming systems, different note names
 are used for the root in different languages.  The predefined
-variables @code{\germanChords}, @code{\semiGermanChords},
+commands @code{\germanChords}, @code{\semiGermanChords},
 @code{\italianChords} and @code{\frenchChords} set these variables.
 The effect is demonstrated here:
 
index d81c9160fae7ed5e0e8a7ad44a3724c04bfbf5c0..fa7999e76bf3687c26e2a54de1b4c3a6523ed588 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Editorial annotations
 @section Editorial annotations
@@ -97,11 +97,11 @@ so that only certain layout objects are affected.
 @lilypond[verbatim,quote,relative=2]
 \set fontSize = #3
 c4.-> d8---3
-\override NoteHead #'font-size = #-4
+\override NoteHead.font-size = #-4
 c4.-> d8---3
-\override Script #'font-size = #2
+\override Script.font-size = #2
 c4.-> d8---3
-\override Stem #'font-size = #-5
+\override Stem.font-size = #-5
 c4.-> d8---3
 @end lilypond
 
@@ -302,11 +302,11 @@ Individual objects may be assigned colors.  Valid color names
 are listed in the @ref{List of colors}.
 
 @lilypond[verbatim,quote,relative=2]
-\override NoteHead #'color = #red
+\override NoteHead.color = #red
 c4 c
-\override NoteHead #'color = #(x11-color 'LimeGreen)
+\override NoteHead.color = #(x11-color 'LimeGreen)
 d
-\override Stem #'color = #blue
+\override Stem.color = #blue
 e
 @end lilypond
 
@@ -323,20 +323,20 @@ If @code{x11-color} cannot make sense of the parameter then the
 color returned defaults to black.
 
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
 gis8 a
-\override Beam #'color = #(x11-color "medium turquoise")
+\override Beam.color = #(x11-color "medium turquoise")
 gis a
-\override Accidental #'color = #(x11-color 'DarkRed)
+\override Accidental.color = #(x11-color 'DarkRed)
 gis a
-\override NoteHead #'color = #(x11-color "LimeGreen")
+\override NoteHead.color = #(x11-color "LimeGreen")
 gis a
 % this is deliberate nonsense; note that the stems remain black
-\override Stem #'color = #(x11-color 'Boggle)
+\override Stem.color = #(x11-color 'Boggle)
 b2 cis
 @end lilypond
 
@@ -350,16 +350,16 @@ Exact RGB colors can be specified using the Scheme function
 @code{rgb-color}.
 
 @lilypond[verbatim,quote,relative=2]
-\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
 
-\override Stem #'color = #(rgb-color 0 0 0)
+\override Stem.color = #(rgb-color 0 0 0)
 gis8 a
-\override Stem #'color = #(rgb-color 1 1 1)
+\override Stem.color = #(rgb-color 1 1 1)
 gis8 a
-\override Stem #'color = #(rgb-color 0 0 0.5)
+\override Stem.color = #(rgb-color 0 0 0.5)
 gis4 a
 @end lilypond
 
index 6d88b53264093a829f672b97dfb813ec5efe8e69..f327ad2c24e8e629482366f1061a1aa607043b7c 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Expressive marks
 @section Expressive marks
@@ -167,8 +167,8 @@ to a multi-measure rest (and only a multi-measure rest).  This
 creates a @code{MultiMeasureRestText} object.
 
 @lilypond[verbatim,quote,relative=2]
-\override Script #'color = #red
-\override MultiMeasureRestText #'color = #blue
+\override Script.color = #red
+\override MultiMeasureRestText.color = #blue
 a2\fermata r\fermata
 R1\fermataMarkup
 @end lilypond
@@ -604,6 +604,20 @@ moltoF = #(make-dynamic-script
 }
 @end lilypond
 
+To left-align the dynamic text rather than centering it on a note
+use a @code{\tweak}:
+
+@lilypond[verbatim,quote]
+moltoF = \tweak DynamicText.self-alignment-X #LEFT
+         #(make-dynamic-script
+            (markup #:normal-text "molto"
+                    #:dynamic "f"))
+\relative c' {
+  <d e>16 <d e>
+  <d e>2..\moltoF <d e>1
+}
+@end lilypond
+
 Font settings in markup mode are described in
 @ref{Selecting font and font size}.
 
@@ -952,6 +966,11 @@ divisiones, are supported.  For details, see @ref{Divisiones}.
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {changing-the-breath-mark-symbol.ly}
 
+@cindex tick mark
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{using-a-tick-as-the-breath-mark-symbol.ly}
+
 @cindex caesura
 @cindex railroad tracks
 
@@ -1094,6 +1113,9 @@ Different styles of glissandi can be created.  For details, see
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {making-glissandi-breakable.ly}
 
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{extending-glissandi-across-repeats.ly}
+
 @seealso
 Music Glossary:
 @rglos{glissando}.
index e183f1ccd65ea3f707506872ec6d8c48aba8978c..b6afe1b5814ffff7b2377cfc5f12711a4c064ccd 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Fretted string instruments
 @section Fretted string instruments
@@ -237,7 +237,7 @@ possible.  This behaviour can be changed by setting @code{restrainOpenStrings}
 to @code{#t}.
 
 @lilypond[quote,ragged-right,verbatim]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 \new StaffGroup <<
    \new Staff \relative c {
      \clef "treble_8"
@@ -368,9 +368,6 @@ ties = \relative c' {
 
 @cindex harmonic indications in tablature notation
 @cindex tablature and harmonic indications
-@cindex slides in tablature notation
-@cindex tablature and slides
-@cindex chord glissandi
 @funindex \harmonic
 @funindex \harmonicByFret
 @funindex \harmonicByRatio
@@ -379,7 +376,7 @@ Harmonic indications can be added to tablature notation as sounding
 pitches:
 
 @lilypond[verbatim,quote]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \override Voice.StringNumber.stencil = ##f }
 firstHarmonic = {
   d'4\4\harmonic
   g'4\3\harmonic
@@ -454,9 +451,14 @@ ratioHarmonics = {
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {fretted-string-harmonics-in-tablature.ly}
 
+@cindex slides in tablature notation
+@cindex tablature and slides
+
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {slides-in-tablature.ly}
 
+@cindex chord glissandi
+
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {chord-glissando-in-tablature.ly}
 
@@ -537,7 +539,7 @@ written.
 @lilypond[quote,ragged-right,verbatim]
 <<
   \new Voice \with {
-    \override StringNumber #'stencil = ##f
+    \override StringNumber.stencil = ##f
   } {
     \clef "bass_8"
     \relative c, {
@@ -919,8 +921,7 @@ Fingering indications can be included in the fret-diagram-terse markup string.
     }
   }
   \context Staff {
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     \clef "treble_8"
     <c e g c' e'>1^\markup {
       \fret-diagram-terse #"x;3-3;2-2;o;1-1;o;"
@@ -994,8 +995,7 @@ capo will be the lowest fret in the fret diagram.
     }
   \context Staff {
     \clef "treble_8"
-    \override Voice.TextScript
-      #'(fret-diagram-details finger-code) = #'below-string
+    \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
     <f, c f a c' f'>1^\markup {
       \fret-diagram-verbose #'(
         (place-fret 6 1)
@@ -1017,7 +1017,7 @@ capo will be the lowest fret in the fret diagram.
         (place-fret 1 3 3)
       )
     }
-    <c e g c' e'>1^\markup {
+    <c g c' e' g'>1^\markup {
       \fret-diagram-verbose #'(
         (capo 3)
         (mute 6)
@@ -1665,7 +1665,7 @@ barring indications.
 \clef "treble_8"
 b16 d g b e
 \textSpannerDown
-\override TextSpanner #'(bound-details left text) = #"XII "
+\override TextSpanner.bound-details.left.text = #"XII "
 g16\startTextSpan
 b16 e g e b g\stopTextSpan
 e16 b g d
@@ -1695,7 +1695,7 @@ text markup.
 @lilypond[quote,ragged-right,verbatim]
 \relative c' {
   \clef "treble_8"
-  \override Staff.NoteHead #'style = #'harmonic-mixed
+  \override Staff.NoteHead.style = #'harmonic-mixed
   d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
 }
 @end lilypond
index a8f12215ef963a056cae75466cdf8ec9b4927ed6..c37909751ce94874ec8cc34a7a7edff45c88f179 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node General input and output
 @chapter General input and output
@@ -493,17 +493,19 @@ However, whitespace should always be used in the following
 circumstances to avoid errors:
 
 @itemize
+
 @item Around every opening and closing curly bracket.
+
 @item After every command or variable, i.e. every item that
 begins with a @code{\} sign.
+
 @item After every item that is to be interpreted as a Scheme
 expression, i.e. every item that begins with a @code{#}@tie{}sign.
+
 @item To separate all elements of a Scheme expression.
-@item In @code{lyricmode} to separate all the terms in both
-@code{\override} and @code{\set} commands.  In particular, spaces
-must be used around the dot and the equals sign in commands like
-@code{\override Score . LyricText #'font-size = #5} and before and
-after the entire command.
+
+@item In @code{lyricmode} before and after @code{\set} and
+@code{\override} commands.
 
 @end itemize
 
@@ -1129,8 +1131,8 @@ provided:
 @headitem  Procedure name           @tab  Condition tested
 
 @item print-page-number-check-first @tab  should this page number be printed?
-@item create-page-number-stencil    @tab  'print-page-numbers true?
-@item print-all-headers             @tab  'print-all-headers true?
+@item create-page-number-stencil    @tab  print-page-numbers true?
+@item print-all-headers             @tab  print-all-headers true?
 @item first-page                    @tab  first page in the book?
 @item (on-page nmbr)                @tab  page number = nmbr?
 @item last-page                     @tab  last page in the book?
@@ -1347,7 +1349,7 @@ suppressed:
     \footnote \markup { \super "$" } #'(0.5 . 1)
       \markup { \super "$" \italic " The second note" }
     e c4
-    \once \override Score.FootnoteItem #'annotation-line = ##f
+    \once \override Score.FootnoteItem.annotation-line = ##f
     b-\footnote \markup \tiny "+" #'(0.1 . 0.1)
       \markup { \super "+" \italic " Editorial" } \p
   }
@@ -1371,11 +1373,11 @@ is required before the footnote text:
   \header { tagline = ##f }
   \relative c'' {
     % footnotes may be added to chord constituents
-    < \footnote #'(-1 . -3) #'Accidental "Another flat" aes
+    < \single\footnote #'(-1 . -3) "Another flat" Accidental aes
       c
-      \footnote #'(-1 . 0.5) #'Accidental "A flat" ees
+      \single\footnote #'(-1 . 0.5) "A flat" Accidental ees
     >2
-    \footnote #'(-1 . 2) #'Stem "A stem" ees2
+    \single\footnote #'(-1 . 2) "A stem" Stem ees2
   }
 }
 @end lilypond
@@ -1409,13 +1411,13 @@ on unexpected objects.
   \header { tagline = ##f }
   \relative c'' {
     r1 |
-    \footnote #'(-0.5 . -1) #'TimeSignature "Meter change" \default
+    \footnote #'(-0.5 . -1) "Meter change" Staff.TimeSignature
     \time 3/4
-    \footnote #'(1 . -1) #'Stem "Chord stem" \default
+    \footnote #'(1 . -1) "Chord stem" Stem
     <c e g>4 q q
-    \footnote #'(-0.5 . 1) #'BarLine "Bar line" \default
+    \footnote #'(-0.5 . 1) "Bar line" Staff.BarLine
     q q
-    \footnote #'(0.5 . -1) #'KeySignature "Key change" \default
+    \footnote #'(0.5 . -1) "Key change" Staff.KeySignature
     \key c\minor
     q
   }
@@ -2567,6 +2569,7 @@ score contains more than 15 staves, MIDI channels will be reused.
 
 @menu
 * Creating MIDI files::
+* MIDI Instruments::
 * MIDI block::
 * What goes into the MIDI output?::
 * Repeats in MIDI::
@@ -2637,33 +2640,6 @@ lilypond … -dmidi-extension=midi lilyFile.ly
 @end example
 
 
-@unnumberedsubsubsec Instrument names
-
-@cindex instrument names
-@funindex Staff.midiInstrument
-
-The MIDI instrument to be used is specified by setting the
-@code{Staff.midiInstrument} property to the instrument name.
-The name should be chosen from the list in @ref{MIDI instruments}.
-
-@example
-\new Staff @{
-  \set Staff.midiInstrument = #"glockenspiel"
-  @var{...notes...}
-@}
-@end example
-
-@example
-\new Staff \with @{midiInstrument = #"cello"@} @{
-  @var{...notes...}
-@}
-@end example
-
-If the selected instrument does not exactly match an instrument from
-the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"})
-instrument is used.
-
-
 @snippets
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
@@ -2700,6 +2676,34 @@ Not all midi players correctly handle tempo changes in the midi
 output.  Players that are known to work include MS Windows Media
 Player and @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
 
+@node MIDI Instruments
+@subsection MIDI Instruments
+
+@cindex instrument names
+@cindex MIDI, instruments
+@funindex Staff.midiInstrument
+
+The MIDI instrument to be used is specified by setting the
+@code{Staff.midiInstrument} property to the instrument name.
+The name should be chosen from the list in @ref{MIDI instruments}.
+
+@example
+\new Staff @{
+  \set Staff.midiInstrument = #"glockenspiel"
+  @var{...notes...}
+@}
+@end example
+
+@example
+\new Staff \with @{midiInstrument = #"cello"@} @{
+  @var{...notes...}
+@}
+@end example
+
+If the selected instrument does not exactly match an instrument from
+the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"})
+instrument is used.
+
 @node MIDI block
 @subsection MIDI block
 @cindex MIDI block
@@ -2763,6 +2767,12 @@ within a score block defined with a @code{\score} command.
 
 @c TODO Check grace notes - timing is suspect?
 
+@menu
+* Supported in MIDI::
+* Unsupported in MIDI::
+@end menu
+
+@node Supported in MIDI
 @unnumberedsubsubsec Supported in MIDI
 
 @cindex Pitches in MIDI
@@ -2810,6 +2820,7 @@ above list:
 @end itemize
 
 
+@node Unsupported in MIDI
 @unnumberedsubsubsec Unsupported in MIDI
 
 @c TODO index as above
@@ -2881,6 +2892,14 @@ by default in the Voice context.  It is possible to control the
 overall MIDI volume, the relative volume of dynamic markings and
 the relative volume of different instruments.
 
+@menu
+* Dynamic marks::
+* Overall MIDI volume::
+* Equalizing different instruments (i)::
+* Equalizing different instruments (ii)::
+@end menu
+
+@node Dynamic marks
 @unnumberedsubsubsec Dynamic marks
 
 Dynamic marks are translated to a fixed fraction of the available
@@ -2930,6 +2949,7 @@ redefined, it would be better to use the
 @file{../scm/midi.scm} and the associated table as a model.
 The final example in this section shows how this might be done.
 
+@node Overall MIDI volume
 @unnumberedsubsubsec Overall MIDI volume
 
 The minimum and maximum overall volume of MIDI dynamic markings is
@@ -2982,6 +3002,7 @@ volume is limited to the range 0.2 - 0.5.
 }
 @end lilypond
 
+@node Equalizing different instruments (i)
 @unnumberedsubsubsec Equalizing different instruments (i)
 
 If the minimum and maximum MIDI volume properties are set in
@@ -3029,6 +3050,8 @@ correctly.
 }
 @end lilypond
 
+
+@node Equalizing different instruments (ii)
 @unnumberedsubsubsec Equalizing different instruments (ii)
 
 If the MIDI minimum and maximum volume properties are not set
index 6bf1c0be8fe3cb6f93dce9bce7ba00826da0d949..c0bdb0e4b1a8ecbdc2d2f9ca61a9592932409144 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Keyboard and other multi-staff instruments
 @section Keyboard and other multi-staff instruments
@@ -206,7 +206,7 @@ Overlapping notation can result when voices cross staves:
   \new Staff = "up" {
     \voiceOne
     % Make space for fingering in the cross-staff voice
-    \once\override DynamicLineSpanner #'staff-padding = #3.4
+    \once\override DynamicLineSpanner.staff-padding = #3.4
     e''2\p\< d''\>
     c''1\!
   }
index 2eb3182e46201771d74cf7441300010f5a5d1526..e74dae6184639caa4a96455ece846bfe9dca6557 100644 (file)
@@ -1559,7 +1559,6 @@ binary installation.
 @cindex mode
 @cindex output-count
 @cindex output-suffix
-@cindex parseStringResult
 @cindex partCombineListener
 @cindex pitchnames
 @cindex toplevel-bookparts
@@ -1587,7 +1586,6 @@ LilyPond uses the following parser variables:
 @item mode
 @item output-count
 @item output-suffix
-@item parseStringResult
 @item partCombineListener
 @item pitchnames
 @item toplevel-bookparts
index f864e1e625279cd4c2767c62e9c8e28227a19275..52e08335db9a83f16375e079ad4ecd86669cd0da 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Percussion
 @section Percussion
@@ -247,17 +247,17 @@ mus = \drummode {
   << \new DrumStaff \with {
        \remove "Bar_engraver"
        \remove "Time_signature_engraver"
-       \override Stem #'transparent = ##t
-       \override Flag #'transparent = ##t
-       \override Stem #'Y-extent = ##f
+       \override Stem.transparent = ##t
+       \override Flag.transparent = ##t
+       \override Stem.Y-extent = ##f
      } \mus
      \new Lyrics \nam
   >>
   \layout {
     \context {
       \Score
-      \override LyricText #'font-family = #'typewriter
-      \override BarNumber #'transparent =##T
+      \override LyricText.font-family = #'typewriter
+      \override BarNumber.transparent =##T
     }
   }
 }
@@ -279,16 +279,16 @@ mus = \drummode { timh ssh timl ssl cb s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
-    \override StaffSymbol #'line-count = #2
-    \override StaffSymbol #'staff-space = #2
-    \override VerticalAxisGroup #'minimum-Y-extent = #'(-3.0 . 4.0)
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
+    \override StaffSymbol.line-count = #2
+    \override StaffSymbol.staff-space = #2
+    \override VerticalAxisGroup.minimum-Y-extent = #'(-3.0 . 4.0)
     drumStyleTable = #timbales-style
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -306,16 +306,16 @@ mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
     drumStyleTable = #congas-style
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -332,17 +332,17 @@ mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
   \new DrumStaff \with {
     \remove "Bar_engraver"
     \remove "Time_signature_engraver"
-    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol.line-count = #2
     drumStyleTable = #bongos-style
 
     %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override StaffSymbol.staff-space = #2
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -359,14 +359,14 @@ mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
   \new DrumStaff \with{
     \remove "Bar_engraver"
     drumStyleTable = #percussion-style
-    \override StaffSymbol #'line-count = #1
+    \override StaffSymbol.line-count = #1
     \remove "Time_signature_engraver"
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Stem #'Y-extent = ##f
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Stem.Y-extent = ##f
   } \mus
   \new Lyrics {
-    \override LyricText #'font-family = #'typewriter
+    \override LyricText.font-family = #'typewriter
     \nam
   }
 >>
@@ -417,10 +417,10 @@ Two Woodblocks, entered with wbh (high woodblock) and wbl (low woodblock)
 woodstaff = {
   % This defines a staff with only two lines.
   % It also defines the positions of the two lines.
-  \override Staff.StaffSymbol #'line-positions = #'(-2 3)
+  \override Staff.StaffSymbol.line-positions = #'(-2 3)
 
   % This is necessary; if not entered, the barline would be too short!
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
 }
 
 \new DrumStaff {
@@ -438,7 +438,7 @@ woodstaff = {
 @end lilypond
 
 Note that in this special case the length of the barline must
-altered with @code{\override Staff.BarLine #'bar-extent #'(from . to)}.
+altered with @code{\override Staff.BarLine.bar-extent #'(from . to)}.
 Otherwise it would be too short.  And you have also to define the
 positions of the two stafflines.  For more information about these
 delicate things have a look at @ref{Staff symbol}.
@@ -449,8 +449,8 @@ A tambourine, entered with @q{tamb}:
 #(define mydrums '((tambourine default #t 0)))
 
 tambustaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tambourine"
 }
 
@@ -475,8 +475,8 @@ Music for Tam-Tam (entered with @q{tt}):
 #(define mydrums '((tamtam default #t 0)))
 
 tamtamstaff = {
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Tamtam"
 }
 
@@ -497,9 +497,9 @@ Two different bells, entered with @q{cb} (cowbell) and @q{rb} (ridebell)
                    (cowbell  default #t -2)))
 
 bellstaff = {
-  \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)
+  \override DrumStaff.StaffSymbol.line-positions = #'(-2 3)
   \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
-  \override Staff.BarLine #'bar-extent = #'(-1.5 . 1.5)
+  \override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
   \set DrumStaff.instrumentName = #"Different Bells"
 }
 
index c9e99f5eb712cf4e0af4255fe14be40a73b45eea..61a59ad0fc7cab1fb12b4357a877d872b1d6367c 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Pitches
@@ -464,9 +464,9 @@ The available languages and the note names they define are:
   @tab c d e f g a b h
 @item @code{english}
   @tab c d e f g a bf b
-@item @code{espanol}
+@item @code{espanol} or @code{español}
   @tab do re mi fa sol la sib si
-@item @code{italiano}
+@item @code{italiano} or @code{français}
   @tab do re mi fa sol la sib si
 @item @code{norsk}
   @tab c d e f g a b h
@@ -497,9 +497,9 @@ also vary depending on the language:
 @item @code{english}
   @tab -s/-sharp @tab -f/-flat @tab -ss/-x/-sharpsharp
     @tab -ff/-flatflat
-@item @code{espanol}
+@item @code{espanol} or @code{español}
   @tab -s @tab -b @tab -ss/-x @tab -bb
-@item @code{italiano}
+@item @code{italiano} or @code{français}
   @tab -d @tab -b @tab -dd @tab -bb
 @item @code{norsk}
   @tab -iss/-is @tab -ess/-es @tab -ississ/-isis
@@ -551,9 +551,9 @@ appear in this table do not provide special note names yet.
   @tab -ih @tab -eh @tab -isih @tab -eseh
 @item @code{english}
   @tab -qs @tab -qf @tab -tqs @tab -tqf
-@item @code{espanol}
+@item @code{espanol} or @code{español}
   @tab -cs @tab -cb @tab -tcs @tab -tcb
-@item @code{italiano}
+@item @code{italiano} or @code{français}
   @tab -sd @tab -sb @tab -dsd @tab -bsb
 @item @code{portugues}
   @tab -sqt @tab -bqt @tab -stqt @tab -btqt
@@ -841,7 +841,7 @@ music = \relative c' { c d e f }
 @end lilypond
 
 @warning{Motifs to be inverted should be expressed in absolute form
-or be first converted to absolute form by enclosing them in a 
+or be first converted to absolute form by enclosing them in a
 @code{\relative} block.}
 
 @seealso
@@ -1127,6 +1127,8 @@ c2 c
 @cindex transposing clef
 @cindex clef, transposing
 @cindex octave transposition
+@cindex optional octave transposition
+@cindex octave transposition, optional
 @cindex choral tenor clef
 @cindex tenor clef, choral
 
@@ -1151,6 +1153,19 @@ c2 c
 c2 c
 @end lilypond
 
+Optional octavation can be obtained by enclosing the numeric
+argument in parentheses or brackets:
+
+@lilypond[verbatim,quote,relative=1]
+\clef "treble_(8)"
+c2 c
+\clef "bass^[15]"
+c2 c
+@end lilypond
+
+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
@@ -1179,6 +1194,21 @@ Internals Reference:
 @rinternals{OctavateEight},
 @rinternals{clef-interface}.
 
+@knownissues
+Ottavation numbers attached to clefs are treated as separate grobs.  So
+any @code{\override} done to the @var{Clef} will also need to be
+applied, as a separate @code{\override}, to the @var{OctavateEight}
+grob.
+
+@lilypond[fragment,quote,relative=1]
+\new Staff \with {
+  \override OctavateEight.color = #red
+  \override Clef.color = #blue
+}
+
+\clef "treble_8" c4
+@end lilypond
+
 
 @node Key signature
 @unnumberedsubsubsec Key signature
@@ -1250,6 +1280,37 @@ f
 fis
 @end lilypond
 
+Additional modes can be defined, by listing the alterations
+for each scale step when the mode starts on C.
+
+@lilypond[verbatim,quote]
+freygish = #`((0 . ,NATURAL) (1 . ,FLAT) (2 . ,NATURAL)
+    (3 . ,NATURAL) (4 . ,NATURAL) (5 . ,FLAT) (6 . ,FLAT))
+
+\relative c' {
+  \key c\freygish c4 des e f
+  \bar "||" \key d\freygish d es fis g
+}
+@end lilypond
+
+Accidentals in the key signature may be printed in octaves other
+than their traditional positions, or in multiple octaves, by
+using the @code{flat-positions} and @code{sharp-positions}
+properties of @code{KeySignature}.  Entries in these properties
+specify the range of staff-positions where accidentals will be
+printed.  If a single position is specified in an entry, the
+accidentals are placed within the octave ending at that staff
+position.
+
+@lilypond[verbatim, quote,relative=0]
+\override Staff.KeySignature.flat-positions = #'((-5 . 5))
+\override Staff.KeyCancellation.flat-positions = #'((-5 . 5))
+\clef bass \key es\major es g bes d
+\clef treble \bar "||" \key es\major es g bes d
+
+\override Staff.KeySignature.sharp-positions = #'(2)
+\bar "||" \key b\major b fis b2
+@end lilypond
 
 @snippets
 
@@ -1276,7 +1337,6 @@ Internals Reference:
 @rinternals{Key_performer},
 @rinternals{KeyCancellation},
 @rinternals{KeySignature},
-@rinternals{key-cancellation-interface},
 @rinternals{key-signature-interface}.
 
 
@@ -1443,7 +1503,7 @@ accidental style to use.  This function is called as follows:
 
 @example
 \new Staff <<
-  \accidentalStyle "voice"
+  \accidentalStyle voice
   @{ @dots{} @}
 >>
 @end example
@@ -1456,7 +1516,7 @@ scope the style should be changed.  For example, to use the same
 style in all staves of the current @code{StaffGroup}, use:
 
 @example
-\accidentalStyle #'StaffGroup "voice"
+\accidentalStyle StaffGroup.voice
 @end example
 
 The following accidental styles are supported.  To demonstrate
@@ -1499,11 +1559,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1519,7 +1579,7 @@ both staves.
   <<
     \context Staff = "up" @{
       %%% change the next line as desired:
-      \accidentalStyle #'Score "default"
+      \accidentalStyle Score.default
       \musicA
     @}
     \context Staff = "down" @{
@@ -1582,11 +1642,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "default"
+      \accidentalStyle default
       \musicB
     }
   >>
@@ -1655,11 +1715,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "voice"
+      \accidentalStyle voice
       \musicB
     }
   >>
@@ -1721,11 +1781,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern"
+      \accidentalStyle modern
       \musicB
     }
   >>
@@ -1785,11 +1845,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-cautionary"
+      \accidentalStyle modern-cautionary
       \musicB
     }
   >>
@@ -1852,11 +1912,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice"
+      \accidentalStyle modern-voice
       \musicB
     }
   >>
@@ -1913,11 +1973,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "modern-voice-cautionary"
+      \accidentalStyle modern-voice-cautionary
       \musicB
     }
   >>
@@ -1978,7 +2038,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano"
+      \accidentalStyle piano
       \musicA
     }
     \context Staff = "down" {
@@ -2038,7 +2098,7 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "piano-cautionary"
+      \accidentalStyle piano-cautionary
       \musicA
     }
     \context Staff = "down" {
@@ -2097,11 +2157,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern"
+      \accidentalStyle neo-modern
       \musicB
     }
   >>
@@ -2154,11 +2214,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-cautionary"
+      \accidentalStyle neo-modern-cautionary
       \musicB
     }
   >>
@@ -2214,11 +2274,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice"
+      \accidentalStyle neo-modern-voice
       \musicB
     }
   >>
@@ -2271,11 +2331,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "neo-modern-voice-cautionary"
+      \accidentalStyle neo-modern-voice-cautionary
       \musicB
     }
   >>
@@ -2331,11 +2391,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "dodecaphonic"
+      \accidentalStyle dodecaphonic
       \musicB
     }
   >>
@@ -2393,12 +2453,12 @@ musicB = {
   <<
     \context Staff = "up" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicA
     }
     \context Staff = "down" {
       \key fis \minor
-      \accidentalStyle "teaching"
+      \accidentalStyle teaching
       \musicB
     }
   >>
@@ -2453,11 +2513,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "no-reset"
+      \accidentalStyle no-reset
       \musicB
     }
   >>
@@ -2512,11 +2572,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicA
     }
     \context Staff = "down" {
-      \accidentalStyle "forget"
+      \accidentalStyle forget
       \musicB
     }
   >>
@@ -2559,7 +2619,7 @@ not need a natural sign:
 
 @lilypond[quote]
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2576,12 +2636,12 @@ the accidental style to @code{forget}:
 
 @lilypond[verbatim,quote]
 forget = #(define-music-function (parser location music) (ly:music?) #{
-  \accidentalStyle "forget"
+  \accidentalStyle forget
   #music
-  \accidentalStyle "modern"
+  \accidentalStyle modern
 #})
 {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \time 2/4
   \repeat volta 2 {
     c'2
@@ -2696,13 +2756,13 @@ The appearance of note heads may be altered:
 
 @lilypond[verbatim,quote,relative=2]
 c4 b
-\override NoteHead #'style = #'cross
+\override NoteHead.style = #'cross
 c4 b
-\revert NoteHead #'style
+\revert NoteHead.style
 a b
-\override NoteHead #'style = #'harmonic
+\override NoteHead.style = #'harmonic
 a b
-\revert NoteHead #'style
+\revert NoteHead.style
 c4 d e f
 @end lilypond
 
index fb7cdf663b406f78dfa5b3674eb5849b94208e08..53da1bdf743b8e27e29cd35c72c1d4619f5f8351 100644 (file)
@@ -298,6 +298,7 @@ Music Glossary:
 Notation Reference:
 @ref{Bar lines},
 @ref{Modifying context plug-ins},
+@ref{Modifying ties and slurs},
 @ref{Time administration}.
 
 Snippets:
@@ -317,14 +318,32 @@ Internals Reference:
 @cindex repeat and measure number
 @cindex timing information and repeats
 @cindex measure number and repeats
-@cindex repeat and slur
-@cindex slur and repeat
+@cindex repeats and slur
+@cindex slur and repeats
+@cindex glissandi and repeats
+@cindex repeats and glissandi
 
 Slurs that span from a @code{\repeat} block into an
-@code{\alternative} block will only work for the first alternate
-ending.  Also, slurs cannot wrap around from the end of one
+@code{\alternative} block will only work for the first alternative
+ending.  The visual appearance of a continuing slur in other
+alternative blocks may be simulated with @code{\repeatTie} if the
+slur extends into only one note in the alternative block, although
+this method does not work in @code{TabStaff}.  Other methods which
+may be tailored to indicate continuing slurs over several notes in
+alternative blocks, and which also work in @code{TabStaff} contexts,
+are shown in @ref{Modifying ties and slurs}.
+
+Also, slurs cannot wrap around from the end of one
 alternative back to the beginning of the repeat.
 
+Glissandi that span from a @code{\repeat} block into an
+@code{\alternative} block will only work for the first alternative
+ending.  The visual appearance of a continuing glissando in other
+alternative blocks may be indicated by coding a glissando starting
+on a hidden grace note.  For an example, see
+@qq{Extending glissandi across repeats} under Selected Snippets
+in @ref{Glissando}.
+
 If a repeat that begins with an incomplete measure has an
 @code{\alternative} block that contains modifications to the
 @code{measureLength} property, using @code{\unfoldRepeats} will
index c2a06b42029b9649b5a2348e4cc5bb9809d5ace3..dbfc038cd389be05a7cda40812604d592facae9b 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Rhythms
 @section Rhythms
@@ -526,11 +526,11 @@ Override @var{whiteout} and @var{layer} layout properties for ties that
 collide with other objects in a staff.
 
 @lilypond[verbatim,quote,ragged-right,relative=2]
-\override Tie #'layer = #-2
-\override Staff.TimeSignature #'layer = #-1
-\override Staff.KeySignature #'layer = #-1
-\override Staff.TimeSignature #'whiteout = ##t
-\override Staff.KeySignature #'whiteout = ##t
+\override Tie.layer = #-2
+\override Staff.TimeSignature.layer = #-1
+\override Staff.KeySignature.layer = #-1
+\override Staff.TimeSignature.whiteout = ##t
+\override Staff.KeySignature.whiteout = ##t
 b2 b~
 \time 3/4
 \key a \major
@@ -623,7 +623,7 @@ commands:
 \new Staff {
   % These two lines are just to prettify this example
   \time 16/1
-  \override Staff.TimeSignature #'stencil = ##f
+  \override Staff.TimeSignature.stencil = ##f
   % Print a maxima rest, equal to four breves
   r\maxima
   % Print a longa rest, equal to two breves
@@ -883,10 +883,10 @@ following example:}
 
 @lilypond[quote,verbatim,relative=2]
 % This fails, as the wrong object name is specified
-\override TextScript #'padding = #5
+\override TextScript.padding = #5
 R1^"wrong"
 % This is the correct object name to be specified
-\override MultiMeasureRestText #'padding = #5
+\override MultiMeasureRestText.padding = #5
 R1^"right"
 @end lilypond
 
@@ -1476,7 +1476,7 @@ Bar numbering is resumed at the end of the cadenza.
 
 @lilypond[verbatim,relative=2,quote]
 % Show all bar numbers
-\override Score.BarNumber #'break-visibility = #all-visible
+\override Score.BarNumber.break-visibility = #all-visible
 c4 d e d
 \cadenzaOn
 c4 c d8[ d d] f4 g4.
@@ -2524,14 +2524,14 @@ lengthening.  The first four 32nd notes gradually speed up, while
 the last four 32nd notes are at a constant tempo.
 
 @lilypond[relative=1,verbatim,quote]
-\override Beam #'grow-direction = #LEFT
+\override Beam.grow-direction = #LEFT
 \featherDurations #(ly:make-moment 2 1)
 { c16[ c c c c c c c] }
-\override Beam #'grow-direction = #RIGHT
+\override Beam.grow-direction = #RIGHT
 \featherDurations #(ly:make-moment 2 3)
 { c32[ d e f] }
 % revert to non-feathered beams
-\override Beam #'grow-direction = #'()
+\override Beam.grow-direction = #'()
 { g32[ a b c] }
 @end lilypond
 
@@ -2646,7 +2646,7 @@ f1 \bar "|"
 f1 \bar "."
 g1 \bar "||"
 a1 \bar ".|"
-b1 \bar ".|."
+b1 \bar ".."
 c1 \bar "|.|"
 d1 \bar "|."
 e1
@@ -2656,21 +2656,25 @@ e1
 together with dotted and dashed bar lines:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar ":"
-g1 \bar "dashed"
+f1 \bar ";"
+g1 \bar "!"
 a1
 @end lilypond
 
 @noindent
-and five types of repeat bar line:
+and nine types of repeat bar lines:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar "|:"
-g1 \bar ":|:"
+f1 \bar ".|:"
+g1 \bar ":..:"
 a1 \bar ":|.|:"
 b1 \bar ":|.:"
-c1 \bar ":|"
-e1
+c1 \bar ":.|.:"
+d1 \bar "[|:"
+e1 \bar ":|][|:"
+f1 \bar ":|]"
+g1 \bar ":|."
+a1
 @end lilypond
 
 Additionally, a bar line can be printed as a simple tick:
@@ -2681,6 +2685,14 @@ However, as such ticks are typically used in Gregorian chant, it is
 preferable to use @code{\divisioMinima} there instead, described in
 the section @ref{Divisiones} in Gregorian chant.
 
+Lilypond supports kievan notation and provides a special kievan
+bar line:
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "k"
+@end lilypond
+Further details of this notation are explained in
+@ref{Typesetting Kievan square notation}.
+
 @cindex segno
 
 For in-line segno signs, there are three types of bar lines which
@@ -2692,13 +2704,13 @@ c4 c c c
 c4 c c c \break
 \bar "S"
 c4 c c c
-\bar "|S"
+\bar "S-|"
 c4 c c c \break
-\bar "|S"
+\bar "S-|"
 c4 c c c
-\bar "S|"
+\bar "S-S"
 c4 c c c \break
-\bar "S|"
+\bar "S-S"
 c1
 @end lilypond
 
@@ -2710,16 +2722,16 @@ a repeated section.  Such repeated sections are better entered
 using the various repeat commands (see @ref{Repeats}), which
 automatically print the appropriate bar lines.
 
-In addition, you can specify @code{"||:"}, which is equivalent to
-@code{"|:"} except at line breaks, where it gives a double bar
+In addition, you can specify @code{".|:-||"}, which is equivalent to
+@code{".|:"} except at line breaks, where it gives a double bar
 line at the end of the line and a start repeat at the beginning of
 the next line.
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar "||:"
+\bar ".|:-||"
 c4 c c c \break
-\bar "||:"
+\bar ".|:-||"
 c4 c c c
 @end lilypond
 
@@ -2728,29 +2740,29 @@ variations:
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar ":|S"
+\bar ":|.S"
 c4 c c c \break
-\bar ":|S"
+\bar ":|.S"
 c4 c c c
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c \break
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c \break
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c \break
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c \break
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c4 c c c \break
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c1
 @end lilypond
 
@@ -2758,6 +2770,100 @@ Additionally there is an @code{\inStaffSegno} command which
 creates a segno bar, placed in cooperation
 with the @code{\repeat volta} command.
 
+@funindex \defineBarLine
+@funindex defineBarLine
+@cindex bar lines, defining
+@cindex defining bar lines
+
+New bar line types can be defined with @code{\defineBarLine}:
+
+@example
+\defineBarLine @var{bartype} #'(@var{end} @var{begin} @var{span})
+@end example
+
+The @code{\defineBarline} variables can include the
+@q{empty} string @code{""}, which is equivalent to an invisible
+bar line being printed.  Or they can be set to @code{#f} which
+prints no bar line at all.
+
+After the definiton, the new bar line can be used by
+@code{\bar} @var{bartype}.
+
+There are currently ten bar line elements available:
+
+@lilypond[quote,verbatim]
+\defineBarLine ":" #'("" ":" "")
+\defineBarLine "=" #'("=" "" "")
+\defineBarLine "[" #'("" "[" "")
+\defineBarLine "]" #'("]" "" "")
+
+\new Staff {
+  s1 \bar "|"
+  s1 \bar "."
+  s1 \bar "!"
+  s1 \bar ";"
+  s1 \bar ":"
+  s1 \bar "k"
+  s1 \bar "S"
+  s1 \bar "="
+  s1 \bar "["
+  s1 \bar "]"
+  s1 \bar ""
+}
+@end lilypond
+
+The @code{"="} bar line provides the double span bar line, used
+in combination with the segno sign.  Do not use it as a standalone
+double thin bar line; here, @code{\bar} @var{"||"} is
+preferred.
+
+The @code{"-"} sign starts annotations to bar lines which
+are useful to distinguish those with identical appearance
+but different behavior at line breaks and/or different span bars.
+The part following the @code{"-"} sign is not used for building up
+the bar line.
+
+@lilypond[quote,relative=2,verbatim]
+\defineBarLine "||-dashedSpan" #'("||" "" "!!")
+
+\new StaffGroup <<
+  \new Staff {
+    c1 \bar "||"
+    c1 \bar "||-dashedSpan"
+    c1
+  }
+  \new Staff {
+    c1
+    c1
+    c1
+  }
+>>
+@end lilypond
+
+Furthermore, the space character @code{" "} serves as a placeholder
+for defining span bars correctly aligned to the main bar lines:
+
+@lilypond[quote,relative=2,verbatim]
+\defineBarLine ":|.-wrong" #'(":|." "" "|.")
+\defineBarLine ":|.-right" #'(":|." "" " |.")
+
+\new StaffGroup <<
+  \new Staff {
+    c1 \bar ":|.-wrong"
+    c1 \bar ":|.-right"
+    c1
+  }
+  \new Staff {
+    c1
+    c1
+    c1
+  }
+>>
+@end lilypond
+
+If additional elements are needed, LilyPond provides a simple
+way to define them.  For more informations on modifying or adding
+bar lines, see file @file{scm/bar-line.scm}.
 
 In scores with many staves, a @code{\bar} command in one staff is
 automatically applied to all staves.  The resulting bar lines are
@@ -2782,8 +2888,6 @@ connected between different staves of a @code{StaffGroup},
 @cindex default bar lines, changing
 @cindex bar lines, default, changing
 
-@snippets
-
 @funindex whichBar
 @funindex defaultBarType
 @funindex \bar
@@ -2804,6 +2908,9 @@ Notation Reference:
 @ref{Repeats},
 @ref{Grouping staves}.
 
+Installed Files:
+@file{scm/bar-line.scm}.
+
 Snippets:
 @rlsr{Rhythms}.
 
@@ -2852,7 +2959,7 @@ line visible}, @code{beginning of line visible}.  In the following
 example bar numbers are printed at all possible places:
 
 @lilypond[verbatim,quote,relative=1]
-\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
+\override Score.BarNumber.break-visibility = #'#(#t #t #t)
 \set Score.currentBarNumber = #11
 % Permit first bar number to be printed
 \bar ""
@@ -3341,8 +3448,8 @@ staves without, for example,
 
 @lilypond[quote,relative=2,verbatim]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" d2. }
 >>
 @end lilypond
 
@@ -3352,8 +3459,8 @@ durations in the other staves.  For the above example
 
 @lilypond[quote,relative=2,verbatim]
 <<
-  \new Staff { e4 \bar "|:" \grace c16 d2. }
-  \new Staff { c4 \bar "|:" \grace s16 d2. }
+  \new Staff { e4 \bar ".|:" \grace c16 d2. }
+  \new Staff { c4 \bar ".|:" \grace s16 d2. }
 >>
 @end lilypond
 
index 30e682b74ac5f69e87b5ab14a8b2f0a7bd582a4e..700a00fc5e39a4c19d75417f46fe0724efc85b20 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Simultaneous notes
@@ -300,7 +300,7 @@ warning: ignoring too many clashing note columns
 will appear during compilation.  This message can be suppressed by:
 
 @example
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 @end example
 
 However, this not only suppresses the warning but will prevent any
@@ -844,13 +844,13 @@ Internals Reference:
 @cindex collisions, ignoring
 
 @knownissues
-Using @code{\override NoteColumn #'ignore-collision = ##t} will cause
+Using @code{\override NoteColumn.ignore-collision = ##t} will cause
 differently headed notes in different voices to merge incorrectly.
 
 @lilypond[quote,relative=1,verbatim]
 \mergeDifferentlyHeadedOn
 << { c16 a' b a } \\ { c,2 } >>
-\override NoteColumn #'ignore-collision = ##t
+\override NoteColumn.ignore-collision = ##t
 << { c16 a' b a } \\ { c,2 } >>
 @end lilypond
 
index 070ba07bd0435f83bd1475cc71014c72db4f8c17..8352e5a8be91335dc05b44870624f8c332f8f485 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @ignore
 GDP TODO list
@@ -30,7 +30,7 @@ staff lines."
 
 Could we add a sentence:
 "Use instead the pair               fontSize = #@var{N}
-            \override StaffSymbol #'staff-space = #(magstep
+            \override StaffSymbol.staff-space = #(magstep
 @var{N})
 inside the Staff context to change the size of the font and the
 distance between
@@ -818,8 +818,6 @@ Snippets:
 @node \paper variables for line breaking
 @unnumberedsubsubsec @code{\paper} variables for line breaking
 
-@c TODO: Mention that ly:optimal-breaking is on by default? -mp
-
 @table @code
 
 @item max-systems-per-page
@@ -865,32 +863,13 @@ Default values not listed here are defined in
 
 @table @code
 
-@item blank-after-score-page-force
-@funindex blank-after-score-page-force
-
-The penalty for having a blank page after the end of one score and
-before the next.  By default, this is smaller than
-@code{blank-page-force}, so that we prefer blank pages after
-scores to blank pages within a score.
-
-@item blank-last-page-force
-@funindex blank-last-page-force
-
-The penalty for ending the score on an odd-numbered page.
-
-@item blank-page-force
-@funindex blank-page-force
-
-The penalty for having a blank page in the middle of a
-score.  This is not used by @code{ly:optimal-breaking} since it will
-never consider blank pages in the middle of a score.
-
 @item page-breaking
 @funindex page-breaking
 
 The page-breaking algorithm to use.  Choices are
-@code{ly:minimal-breaking}, @code{ly:page-turn-breaking}, and
-@code{ly:optimal-breaking}.
+@code{ly:minimal-breaking}, @code{ly:page-turn-breaking},
+@code{ly:one-line-breaking} and @code{ly:optimal-breaking}
+(the default).
 
 @item page-breaking-system-system-spacing
 @funindex page-breaking-system-system-spacing
@@ -909,6 +888,56 @@ The number of pages to be used for a score, unset by default.
 
 @end table
 
+The following variables are effective only when @code{page-breaking}
+is set to @code{ly:page-turn-breaking}.  Page breaks are then chosen
+to minimize the number of page turns.  Since page turns are required
+on moving from an odd-numbered page to an even-numbered one, a
+layout in which the last page is odd-numbered will usually be
+favoured.  Places where page turns are preferred can be indicated
+manually by inserting @code{\allowPageTurn} or automatically by
+including the @code{Page_turn_engraver} (see @ref{Optimal page turning}).
+
+If there are insufficient choices available for making suitable page
+turns, LilyPond may insert a blank page either within a score, between
+scores (if there are two or more scores), or by ending a score on an
+even-numbered page.  The values of the following three variables may
+be increased to make these actions less likely.
+
+The values are penalties, i.e. the higher the value the less likely
+will be the associated action relative to other choices.
+
+@table @code
+
+@item blank-page-penalty
+@funindex blank-page-penalty
+
+The penalty for having a blank page in the middle of a score.  If
+@code{blank-page-penalty} is large and @code{ly:page-turn-breaking} is
+selected, then LilyPond will be less likely to insert a page in the
+middle of a score.  Instead, it will space out the music further to
+fill the blank page and the following one.  Default: 5.
+
+@item blank-last-page-penalty
+@funindex blank-last-page-penalty
+
+The penalty for ending the score on an even-numbered page.  If
+@code{blank-last-page-penalty} is large and
+@code{ly:page-turn-breaking} is selected, then LilyPond will be less
+likely to produce a score in which the last page is even-numbered.
+Instead, it will adjust the spacing in order to use one page more or
+one page less.  Default: 0.
+
+@item blank-after-score-page-penalty
+@funindex blank-after-score-page-penalty
+
+The penalty for having a blank page after the end of one score and
+before the next.  By default, this is smaller than
+@code{blank-page-penalty}, so that blank pages after scores are
+inserted in preference to blank pages within a score.  Default: 2.
+
+@end table
+
+
 @seealso
 Notation Reference:
 @ref{Page breaking},
@@ -1087,12 +1116,12 @@ Here is an example @code{\layout} block:
   indent = 2\cm
   \context @{
     \StaffGroup
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #8
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #8
   @}
   \context @{
     \Voice
-    \override TextScript #'padding = #1
-    \override Glissando #'thickness = #3
+    \override TextScript.padding = #1
+    \override Glissando.thickness = #3
   @}
 @}
 @end example
@@ -1113,8 +1142,8 @@ For example, if this block:
 \layout @{
   \context @{
     \Voice
-    \override TextScript #'color = #magenta
-    \override Glissando #'thickness = #1.5
+    \override TextScript.color = #magenta
+    \override Glissando.thickness = #1.5
   @}
 @}
 @end example
@@ -1134,13 +1163,13 @@ If a variable is defined like this:
 layoutVariable = \layout @{
   \context @{
     \Voice
-    \override NoteHead #'font-size = #4
+    \override NoteHead.font-size = #4
   @}
 @}
 @end example
 
 it will hold the current @code{\layout} configuration with the
-@code{NoteHead #'font-size} override added, but this combination
+@code{NoteHead.font-size} override added, but this combination
 is @emph{not} saved as the new current configuration.  Be aware
 that the @q{current configuration} is read when the variable is
 defined and not when it is used, so the content of the variable
@@ -1154,7 +1183,7 @@ for example:
   \layoutVariable
   \context @{
     \Voice
-    \override NoteHead #'color = #red
+    \override NoteHead.color = #red
   @}
 @}
 @end example
@@ -1172,11 +1201,11 @@ use of @code{\layoutVariable} the final @code{\layout} block would
 consist of:
 
 @example
-  TextScript #'padding = #1
-  TextScript #'color = #magenta
-  Glissando #'thickness = #1.5
-  NoteHead #' font-size = #4
-  NoteHead #' color = #red
+  TextScript.padding = #1
+  TextScript.color = #magenta
+  Glissando.thickness = #1.5
+  NoteHead.font-size = #4
+  NoteHead.color = #red
 @end example
 
 plus the @code{indent} and the @code{StaffGrouper} overrides.
@@ -1186,8 +1215,8 @@ But if the variable had already been defined before the first
 only
 
 @example
-  NoteHead #' font-size= #4 % (written in the variable definition)
-  NoteHead #' color = #red % (added after the use of the variable)
+  NoteHead.font-size = #4 % (written in the variable definition)
+  NoteHead.color = #red % (added after the use of the variable)
 @end example
 
 If carefully planned, @code{\layout} variables can be a valuable tool
@@ -1372,10 +1401,10 @@ with the music:
 
 Similarly, line breaks are normally forbidden when beams cross bar
 lines.  This behavior can be changed by setting
-@code{\override Beam #'breakable = ##t}:
+@code{\override Beam.breakable = ##t}:
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override Beam #'breakable = ##t
+\override Beam.breakable = ##t
 c2. c8[ c | \break
 c8 c] c2. |
 @end lilypond
@@ -1617,6 +1646,9 @@ top-level markups.
 @endpredefined
 
 @seealso
+Notation Reference:
+@ref{\paper variables for line breaking}.
+
 Snippets:
 @rlsr{Spacing}.
 
@@ -1671,8 +1703,8 @@ Lily sometimes rejects explicit @code{\break} and @code{\pageBreak}
 commands.  There are two commands to override this behavior:
 
 @example
-\override NonMusicalPaperColumn #'line-break-permission = ##f
-\override NonMusicalPaperColumn #'page-break-permission = ##f
+\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
@@ -1703,8 +1735,8 @@ music = \relative c'' { c8 c c c }
   \layout {
     \context {
       \Score
-      \override NonMusicalPaperColumn #'line-break-permission = ##f
-      \override NonMusicalPaperColumn #'page-break-permission = ##f
+      \override NonMusicalPaperColumn.line-break-permission = ##f
+      \override NonMusicalPaperColumn.page-break-permission = ##f
     }
   }
 }
@@ -1770,20 +1802,16 @@ music = \relative c'' { c4 c c c }
 \score {
   \new Staff <<
     \new Voice {
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 0))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
       s1 * 2 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 35))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
       s1 * 3 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 70))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
       s1 * 6 \break
 
-      \overrideProperty "Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 105))
+      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
       s1 * 5 \break
     }
     \new Voice {
@@ -1927,14 +1955,14 @@ of these reference points:
 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
 
 alignToZero = \with {
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #zero-space
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
 }
 lowerCaseChords = \with {
   chordNameLowercaseMinor = ##t
 }
 staffAffinityDown = \with {
-  \override VerticalAxisGroup #'staff-affinity = #DOWN
+  \override VerticalAxisGroup.staff-affinity = #DOWN
 }
 labelContext =
 #(define-music-function
@@ -1952,13 +1980,13 @@ labelContext =
                          \lowerCaseChords }
   \context { \FretBoards  \alignToZero \staffAffinityDown }
   \context { \Score
-    \override BarLine #'stencil = ##f
-    \override DynamicText #'self-alignment-X = #-1
-    \override FretBoard #'X-offset = #1.75
-    \override InstrumentName #'minimum-Y-extent = #'(-2 . 2)
-    \override InstrumentName #'extra-offset = #'(0 . -0.5)
-    \override TextScript #'minimum-Y-extent = #'(-2 . 3)
-    \override TimeSignature #'stencil = ##f
+    \override BarLine.stencil = ##f
+    \override DynamicText.self-alignment-X = #-1
+    \override FretBoard.X-offset = #1.75
+    \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
+    \override InstrumentName.extra-offset = #'(0 . -0.5)
+    \override TextScript.minimum-Y-extent = #'(-2 . 3)
+    \override TimeSignature.stencil = ##f
   }
 }
 
@@ -2021,12 +2049,11 @@ individually, and the second completely re-defines the property:
 
 @example
 \new Staff \with @{
-  \override VerticalAxisGroup #'default-staff-staff-spacing
-       #'basic-distance = #10
+  \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
 @} @{ @dots{} @}
 
 \new Staff \with @{
-  \override VerticalAxisGroup #'default-staff-staff-spacing =
+  \override VerticalAxisGroup.default-staff-staff-spacing =
     #'((basic-distance . 10)
        (minimum-distance . 9)
        (padding . 1)
@@ -2041,8 +2068,7 @@ To change any spacing settings globally, put them in the
 \layout @{
   \context @{
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing
-         #'basic-distance = #10
+    \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
   @}
 @}
 @end example
@@ -2200,7 +2226,7 @@ are combined in a group or groups.
 \layout {
   \context {
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 8)
          (minimum-distance . 7)
          (padding . 1))
@@ -2222,7 +2248,7 @@ are combined in a group or groups.
   % By setting 'padding to a negative value, staves can be made to
   % collide.  The lowest acceptable value for 'basic-distance is 0.
   \new Staff \with {
-    \override VerticalAxisGroup #'default-staff-staff-spacing =
+    \override VerticalAxisGroup.default-staff-staff-spacing =
       #'((basic-distance . 3.5)
          (padding . -10))
   } { \clef bass g2 r | }
@@ -2277,14 +2303,14 @@ The following example shows how properties of the
 \layout {
   \context {
     \Score
-    \override StaffGrouper #'staff-staff-spacing #'padding = #0
-    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #1
+    \override StaffGrouper.staff-staff-spacing.padding = #0
+    \override StaffGrouper.staff-staff-spacing.basic-distance = #1
   }
 }
 
 <<
   \new PianoStaff \with {
-    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+    \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
   } <<
     \new Staff { c'1 }
     \new Staff { c'1 }
@@ -2343,24 +2369,23 @@ able to stretch much more than usual:
 \layout {
   \context {
     \Lyrics
-    \override VerticalAxisGroup
-      #'nonstaff-nonstaff-spacing #'stretchability = #1000
+    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
   }
 }
 
 \new StaffGroup
 <<
   \new Staff \with {
-    \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance . 30))
+    \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
   } { c'1 }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #UP
+    \override VerticalAxisGroup.staff-affinity = #UP
   } \lyricmode { up }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #CENTER
+    \override VerticalAxisGroup.staff-affinity = #CENTER
   } \lyricmode { center }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'staff-affinity = #DOWN
+    \override VerticalAxisGroup.staff-affinity = #DOWN
   } \lyricmode { down }
   \new Staff { c'1 }
 >>
@@ -2390,12 +2415,12 @@ explained above is as a collection of settings that control the
 amount of vertical padding between staves and systems.
 
 It is possible to approach vertical spacing in a different way
-using @code{NonMusicalPaperColumn #'line-break-system-details}.
+using @code{NonMusicalPaperColumn.line-break-system-details}.
 While the flexible vertical spacing mechanisms specify vertical
-padding, @code{NonMusicalPaperColumn #'line-break-system-details}
+padding, @code{NonMusicalPaperColumn.line-break-system-details}
 can specify exact vertical positions on the page.
 
-@code{NonMusicalPaperColumn #'line-break-system-details} accepts
+@code{NonMusicalPaperColumn.line-break-system-details} accepts
 an associative list of three different settings:
 
 @itemize
@@ -2422,21 +2447,16 @@ example @code{NonMusicalPaperColumn} overrides with the special
 @code{\overrideProperty} command:
 
 @example
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((Y-offset . 40))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((alignment-distances . (15)))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
 
-\overrideProperty NonMusicalPaperColumn
-  #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                  (Y-offset . 40)
                                  (alignment-distances . (15)))
 @end example
@@ -2488,14 +2508,11 @@ attribute of the @code{NonMusicalPaperColumn} grob:
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 40))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 80))
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
           s1*5 \break
         }
         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
@@ -2526,16 +2543,13 @@ subproperty of @code{line-break-system-details}.
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 20)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (15)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (15)))
           s1*5 \break
         }
@@ -2567,16 +2581,13 @@ specifies the vertical positioning of staves but not of staff groups.
     <<
       \new Staff <<
         \new Voice {
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 0)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
                                            (alignment-distances . (30 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 60)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                            (alignment-distances . (10 10)))
           s1*5 \break
-          \overrideProperty #"Score.NonMusicalPaperColumn"
-            #'line-break-system-details #'((Y-offset . 100)
+          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                            (alignment-distances . (10 30)))
           s1*5 \break
         }
@@ -2602,7 +2613,7 @@ do not count as a staff.
 of the distance between adjacent staff lines.  Positive values move staves
 and lyrics up, negative values move staves and lyrics down.
 
-@item Because the @code{NonMusicalPaperColumn #'line-break-system-details}
+@item Because the @code{NonMusicalPaperColumn.line-break-system-details}
 settings given here allow the positioning of staves and systems anywhere
 on the page, it is possible to violate paper or margin boundaries or even
 to print staves or systems on top of one another.  Reasonable values
@@ -2648,13 +2659,13 @@ the staff.
 @lilypond[quote,ragged-right,relative=2,verbatim]
 c4_"Text"\pp
 r2.
-\once \override TextScript #'outside-staff-priority = #1
+\once \override TextScript.outside-staff-priority = #1
 c4_"Text"\pp % this time the text will be closer to the staff
 r2.
 % by setting outside-staff-priority to a non-number,
 % we disable the automatic collision avoidance
-\once \override TextScript #'outside-staff-priority = ##f
-\once \override DynamicLineSpanner #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
+\once \override DynamicLineSpanner.outside-staff-priority = ##f
 c4_"Text"\pp % now they will collide
 @end lilypond
 
@@ -2663,9 +2674,9 @@ previously-positioned grobs can be controlled with
 @code{outside-staff-padding}.
 
 @lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
-\once \override TextScript #'outside-staff-padding = #0
+\once \override TextScript.outside-staff-padding = #0
 a'^"This text is placed very close to the note"
-\once \override TextScript #'outside-staff-padding = #3
+\once \override TextScript.outside-staff-padding = #3
 c^"This text is padded away from the previous text"
 c^"This text is placed close to the previous text"
 @end lilypond
@@ -2687,7 +2698,7 @@ c4
 c''2
 % setting outside-staff-horizontal-padding fixes this
 R1
-\once \override TextScript #'outside-staff-horizontal-padding = #1
+\once \override TextScript.outside-staff-horizontal-padding = #1
 c,,4^"Text"
 c4
 c''2
@@ -2792,8 +2803,8 @@ once with exaggerated corrections:
 {
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
-  \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
-  \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
+  \override Staff.NoteSpacing.stem-spacing-correction = #1.5
+  \override Staff.StaffSpacing.stem-spacing-correction = #1.5
   c'4 e''4 e'4 b'4 |
   b'4 e''4 b'4 e''4 |
 }
@@ -2820,7 +2831,7 @@ following work-around may be used to insert extra space into a score,
 adjusting the padding value as necessary.
 
 @example
- \override Score.NonMusicalPaperColumn #'padding = #10
+ \override Score.NonMusicalPaperColumn.padding = #10
 @end example
 
 No work-around exists for decreasing the amount of space.
@@ -2891,8 +2902,7 @@ than @code{1 16}.
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'base-shortest-duration = #(ly:make-moment 1 16)
+      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
     }
   }
 }
@@ -2904,7 +2914,7 @@ than @code{1 16}.
 By default, spacing in tuplets depends on various non-duration
 factors (such as accidentals, clef changes, etc).  To disregard
 such symbols and force uniform equal-duration spacing, use
-@code{Score.SpacingSpanner #'uniform-stretching}.  This
+@code{Score.SpacingSpanner.uniform-stretching}.  This
 property can only be changed at the beginning of a score,
 
 @lilypond[quote,ragged-right,verbatim]
@@ -2926,7 +2936,7 @@ property can only be changed at the beginning of a score,
   \layout {
     \context {
       \Score
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -2936,7 +2946,7 @@ When @code{strict-note-spacing} is set, notes are spaced without
 regard for clefs, bar lines, and grace notes,
 
 @lilypond[quote,ragged-right,relative=2,verbatim]
-\override Score.SpacingSpanner #'strict-note-spacing = ##t
+\override Score.SpacingSpanner.strict-note-spacing = ##t
 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c]  c32[ c32] }
 @end lilypond
 
@@ -3017,7 +3027,7 @@ which may be used together or alone:
 @item @code{uniform-stretching}
 @item @code{strict-note-spacing}
 @item @code{\remove "Separating_line_group_engraver"}
-@item @code{\override PaperColumn #'used = ##t}
+@item @code{\override PaperColumn.used = ##t}
 @end itemize
 
 In the examples that follow, we explore these five different
@@ -3246,7 +3256,7 @@ turn on @code{uniform-stretching}, which is a property of
     \context {
       \Score
       proportionalNotationDuration = #(ly:make-moment 1 20)
-      \override SpacingSpanner #'uniform-stretching = ##t
+      \override SpacingSpanner.uniform-stretching = ##t
     }
   }
 }
@@ -3345,7 +3355,7 @@ property of @code{SpacingSpanner}.  Compare the two scores below:
 
 \new Staff {
   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
-  \override Score.SpacingSpanner #'strict-note-spacing = ##t
+  \override Score.SpacingSpanner.strict-note-spacing = ##t
   c''8
   c''8
   c''8
@@ -3366,11 +3376,11 @@ In addition to the settings given here, there are other settings
 that frequently appear in proportional scores.  These include:
 
 @itemize
-@item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
+@item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
 @item @code{tupletFullLength = ##t}
-@item @code{\override Beam #'breakable = ##t}
-@item @code{\override Glissando #'breakable = ##t}
-@item @code{\override TextSpanner #'breakable = ##t}
+@item @code{\override Beam.breakable = ##t}
+@item @code{\override Glissando.breakable = ##t}
+@item @code{\override TextSpanner.breakable = ##t}
 @item @code{\remove "Forbid_line_break_engraver" in the Voice context}
 @end itemize
 
@@ -3520,7 +3530,7 @@ a system can be moved closer to the staff:
 
 @lilypond[verbatim,quote,relative=1]
 e4 c g\f c
-e4 c g-\tweak #'X-offset #-2.7 -\tweak #'Y-offset #2.5 \f c
+e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
 @end lilypond
 
 @item
@@ -3558,8 +3568,7 @@ duration longer, a @q{squeezing} effect occurs:
   \layout {
     \context {
       \Score
-      \override SpacingSpanner
-        #'common-shortest-duration = #(ly:make-moment 1 2)
+      \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 2)
     }
   }
 }
index c7d799e47a0afb511edc98b47d8ce4568b7eafc1..b1558e72dfef9f3fae3886e528f9020a4385690b 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Staff notation
 @section Staff notation
@@ -439,11 +439,11 @@ The number of staff lines can be altered,
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-count = #2
+\override Staff.StaffSymbol.line-count = #2
 \startStaff g, e |
 
 f'4 d \stopStaff
-\revert Staff.StaffSymbol #'line-count
+\revert Staff.StaffSymbol.line-count
 \startStaff g, e |
 @end lilypond
 
@@ -455,10 +455,10 @@ position in the staff, can be changed with a single override.
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(1 3 5 -1 -3)
+\override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
 \startStaff g, e |
 f'4 d \stopStaff
-\override Staff.StaffSymbol #'line-positions = #'(8 6.5 -6 -8 -0.5)
+\override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
 \startStaff g, e
 @end lilypond
 
@@ -470,7 +470,7 @@ default, are also affected.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #3
+  \override StaffSymbol.thickness = #3
 }
 { f4 d g, e }
 @end lilypond
@@ -482,8 +482,8 @@ ledger line thickness.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'thickness = #2
-  \override StaffSymbol #'ledger-line-thickness = #'(0.5 . 0.4)
+  \override StaffSymbol.thickness = #2
+  \override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -492,7 +492,7 @@ The vertical positions of ledger lines can be altered,
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'ledger-positions = #'(-3 -2 -1 2 5 6)
+  \override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
 }
 { f'4 a, a,, f }
 @end lilypond
@@ -503,7 +503,7 @@ also have their own ledger lines.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'ledger-extra = #4
+  \override StaffSymbol.ledger-extra = #4
 }
 { f'4 a, d, f, }
 @end lilypond
@@ -515,11 +515,11 @@ The @code{stopStaff} is needed in the example to revert the
 @code{\override} for the whole @code{StaffSymbol}.
 
 @lilypond[fragment,quote,relative=1]
-\override Staff.StaffSymbol #'line-positions =   #'(-8 0 2 4)
+\override Staff.StaffSymbol.line-positions =   #'(-8 0 2 4)
 d4 e f g
 \stopStaff
 \startStaff
-\override Staff.StaffSymbol #'ledger-positions = #'(-8 -6 (-4 -2) 0)
+\override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
 d4 e f g
 @end lilypond
 
@@ -528,7 +528,7 @@ line spacing as well.
 
 @lilypond[verbatim,quote,relative=2]
 \new Staff \with {
-  \override StaffSymbol #'staff-space = #1.5
+  \override StaffSymbol.staff-space = #1.5
 }
 { f'4 d, g, e, }
 @end lilypond
@@ -604,8 +604,8 @@ only a few ossia staves are needed.
       \remove "Time_signature_engraver"
       alignAboveContext = #"main"
       fontSize = #-3
-      \override StaffSymbol #'staff-space = #(magstep -3)
-      \override StaffSymbol #'thickness = #(magstep -3)
+      \override StaffSymbol.staff-space = #(magstep -3)
+      \override StaffSymbol.thickness = #(magstep -3)
       firstClef = ##f
     }
     { e4 d f e }
@@ -626,10 +626,10 @@ example.
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   }
   { \stopStaff s1*6 }
 
@@ -665,10 +665,10 @@ break.  For more information about
 <<
   \new Staff = ossia \with {
     \remove "Time_signature_engraver"
-    \override Clef #'transparent = ##t
+    \override Clef.transparent = ##t
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
-    \override StaffSymbol #'thickness = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
+    \override StaffSymbol.thickness = #(magstep -3)
   } \relative c'' {
     R1*3
     c4 e8 d c2
@@ -686,7 +686,7 @@ break.  For more information about
 \layout {
   \context {
     \Staff \RemoveEmptyStaves
-    \override VerticalAxisGroup #'remove-first = ##t
+    \override VerticalAxisGroup.remove-first = ##t
   }
 }
 @end lilypond
@@ -839,8 +839,8 @@ this case, use the following overrides instead of removing the
 engraver:
 
 @example
-\override StaffSymbol #'stencil = ##f
-\override NoteHead #'no-ledgers = ##t
+\override StaffSymbol.stencil = ##f
+\override NoteHead.no-ledgers = ##t
 @end example
 
 For the Known issues and warnings associated with
@@ -910,8 +910,9 @@ multi-line instrument names, @code{\center-column} must be used:
   { f2 g4 f }
   \new Staff \with {
     instrumentName = \markup {
-      \center-column { "Clarinet" }
-      \line { "in B" \smaller \flat }
+      \center-column { "Clarinet"
+        \line { "in B" \smaller \flat }
+      }
     }
   }
   { c4 b c2 }
index 7b056dbdbd3fe4e67625ad60acba4278e0469f82..04ae36c4c5fbed8c1fa4998cc41387d20f50593a 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Text
 @section Text
@@ -124,7 +124,7 @@ margins requires additonal calculations. In cases where slightly faster
 performance is desired, use
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 
@@ -140,7 +140,7 @@ multiple notes with dotted lines.  Such objects, called
 following syntax:
 
 @lilypond[verbatim,quote,relative=2]
-\override TextSpanner #'(bound-details left text) = "rit."
+\override TextSpanner.bound-details.left.text = "rit."
 b1\startTextSpan
 e,\stopTextSpan
 @end lilypond
@@ -155,7 +155,7 @@ obtained using @code{\markup} blocks, as described in
 @ref{Formatting text}.
 
 @lilypond[quote,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text) =
+\override TextSpanner.bound-details.left.text =
   \markup { \upright "rit." }
 b1\startTextSpan c
 e,\stopTextSpan
@@ -1403,12 +1403,12 @@ series and sizes.  The value supplied to @code{font-size} is the
 required change from the default size.
 
 @lilypond[quote,verbatim,relative=2]
-\override Score.RehearsalMark #'font-family = #'typewriter
+\override Score.RehearsalMark.font-family = #'typewriter
 \mark \markup "Ouverture"
-\override Voice.TextScript #'font-shape = #'italic
-\override Voice.TextScript #'font-series = #'bold
+\override Voice.TextScript.font-shape = #'italic
+\override Voice.TextScript.font-series = #'bold
 d2.^\markup "Allegro"
-\override Voice.TextScript #'font-size = #-3
+\override Voice.TextScript.font-size = #-3
 c4^smaller
 @end lilypond
 
@@ -1459,8 +1459,8 @@ Any font that is installed on the operating system and recognized by
 FontConfig may be used in a score, using the following syntax:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.TimeSignature #'font-name = #"Bitstream Charter"
-\override Staff.TimeSignature #'font-size = #2
+\override Staff.TimeSignature.font-name = #"Bitstream Charter"
+\override Staff.TimeSignature.font-size = #2
 \time 3/4
 
 a1_\markup {
index a112331f14b6fffce9b47e2edafd94a2d3dd51d4..fcaff9d4dc85acc92e8547ed2c1611b04b556982 100644 (file)
@@ -60,14 +60,14 @@ in @ref{Fingering instructions}.
 see @ref{Chorded notes}.  Directives for playing chords may be
 added, see @ref{Arpeggio}.
 
-@item A template for a string quartet can be found in
-@rlearning{String quartet}.  Others are shown in the snippets.
+@item Templates for string quartets can be found in
+@rlearning{String quartet templates}.  Others are shown in the snippets.
 
 @end itemize
 
 @seealso
 Learning Manual:
-@rlearning{String quartet}.
+@rlearning{String quartet templates}.
 
 Notation Reference:
 @ref{Text scripts},
index 0dc82ee2f555ef6e559ebca32364a4e3dd0574d5..0f103d28924314a5c79b0fd8242af2f25a909e0b 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 @node Vocal music
 @section Vocal music
@@ -149,25 +149,6 @@ compile.  Instead, braces should always be surrounded with white space:
 \lyricmode @{ lah lah lah @}
 @end example
 
-@cindex overrides in lyric mode
-@funindex \override in \lyricmode
-
-Similarly, in lyric mode, a period will be included in the
-alphabetic sequence that it follows.  As a consequence, spaces
-must be inserted around the period in @code{\override} commands.
-Do @emph{not} write
-
-@example
-\override Score.LyricText #'font-shape = #'italic
-@end example
-
-@noindent
-but instead use
-
-@example
-\override Score . LyricText #'font-shape = #'italic
-@end example
-
 Punctuation, lyrics with accented characters, characters from
 non-English languages, or special characters (such as the heart
 symbol or slanted quotes), may simply be inserted directly
@@ -1033,7 +1014,7 @@ follows:
   <<
     \new Lyrics = "lyrics" \with {
       % lyrics above a staff should have this override
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "melody" {
@@ -1064,7 +1045,7 @@ is an example of the second method:
     \new Lyrics = "sopranos"
     \new Lyrics = "contraltos" \with {
       % lyrics above a staff should have this override
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff {
       \new Voice = "contraltos" {
@@ -1086,8 +1067,8 @@ is an example of the second method:
 @end lilypond
 
 Other combinations of lyrics and staves may be generated by
-elaborating these examples, or by examining the
-@rlearning{Vocal ensembles} templates in the Learning Manual.
+elaborating these examples, or by examining the templates in the
+Learning Manual, see @rlearning{Vocal ensembles templates}.
 
 @snippets
 @lilypondfile[verbatim,quote,texidoc,doctitle]
@@ -1095,7 +1076,7 @@ elaborating these examples, or by examining the
 
 @seealso
 Learning Manual:
-@rlearning{Vocal ensembles}.
+@rlearning{Vocal ensembles templates}.
 
 Notation Reference:
 @ref{Context layout order},
@@ -1114,7 +1095,7 @@ To increase the spacing between lyrics, set the
 @lilypond[relative=1,verbatim,quote,ragged-right]
 {
   c c c c
-  \override Lyrics.LyricSpace #'minimum-distance = #1.0
+  \override Lyrics.LyricSpace.minimum-distance = #1.0
   c c c c
 }
 \addlyrics {
@@ -1140,7 +1121,7 @@ To make this change for all lyrics in the score, set the property in the
   \layout {
     \context {
       \Lyrics
-      \override LyricSpace #'minimum-distance = #1.0
+      \override LyricSpace.minimum-distance = #1.0
     }
   }
 }
@@ -1157,7 +1138,7 @@ requires additional calculations.  To speed up processing slightly, this
 feature can be disabled:
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##f
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 To make lyrics avoid bar lines as well, use
@@ -1168,7 +1149,7 @@ To make lyrics avoid bar lines as well, use
     \Lyrics
       \consists "Bar_engraver"
       \consists "Separating_line_group_engraver"
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
   @}
 @}
 @end example
@@ -1878,7 +1859,7 @@ within the lyrics by setting the @code{associatedVoice} property:
         \voiceOne
         \times 2/3 {
           % show associations clearly.
-          \override NoteColumn #'force-hshift = #-3
+          \override NoteColumn.force-hshift = #-3
           f8 f g
         }
       }
@@ -2181,7 +2162,7 @@ the Learning Manual, see @rlearning{Four-part SATB vocal score}.
 @item
 Several templates suitable for various styles of choral music can
 also be found in the Learning Manual, see
-@rlearning{Vocal ensembles}.
+@rlearning{Vocal ensembles templates}.
 
 @item
 For information about @code{ChoirStaff} and @code{PianoStaff} see
@@ -2207,7 +2188,7 @@ down.  To do this, use @code{\voiceOne} and @code{\voiceTwo}.  See
 @seealso
 Learning Manual:
 @rlearning{Four-part SATB vocal score},
-@rlearning{Vocal ensembles}.
+@rlearning{Vocal ensembles templates}.
 
 Notation Reference:
 @ref{Context layout order},
@@ -2287,8 +2268,8 @@ above their respective staves, as shown here:
   \layout {
     \context {
       \Score
-      \override DynamicText #'direction = #UP
-      \override DynamicLineSpanner #'direction = #UP
+      \override DynamicText.direction = #UP
+      \override DynamicLineSpanner.direction = #UP
     }
   }
 }
@@ -2568,7 +2549,7 @@ pianoRH = \relative c'' {
   % position name of cue-ing instrument just before the cue notes,
   % and above the staff
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
     \set instrumentCueName = "Flute"
   }
   \cueDuring "flute" #UP { g4 bes4 }
@@ -2610,8 +2591,8 @@ pianoRH = \relative c'' {
   \transposition c'
   % position name of cue-ing instrument below the staff
   \new CueVoice {
-    \override InstrumentSwitch #'self-alignment-X = #RIGHT
-    \override InstrumentSwitch #'direction = #DOWN
+    \override InstrumentSwitch.self-alignment-X = #RIGHT
+    \override InstrumentSwitch.direction = #DOWN
     \set instrumentCueName = "Clar."
   }
   \cueDuring "clarinet" #DOWN { c4. g8 }
@@ -2745,8 +2726,8 @@ dialogue = \lyricmode {
 \score {
   <<
     \new Lyrics \with {
-      \override LyricText #'font-shape = #'italic
-      \override LyricText #'self-alignment-X = #LEFT
+      \override LyricText.font-shape = #'italic
+      \override LyricText.self-alignment-X = #LEFT
     }
     { \dialogue }
     \new Staff {
@@ -2812,7 +2793,7 @@ Chants often use quarter notes without stems to indicate the pitch,
 with the rhythm being taken from the spoken rhythm of the words.
 
 @lilypond[verbatim,quote]
-stemOff = { \override Staff.Stem #'transparent = ##t }
+stemOff = { \override Staff.Stem.transparent = ##t }
 
 \relative c' {
   \stemOff
@@ -2903,9 +2884,9 @@ a4 b c2
 \bar "'"
 a4 b c2
 a4 b c2
-\bar ":"
+\bar ";"
 a4 b c2
-\bar "dashed"
+\bar "!"
 a4 b c2
 \bar "||"
 @end lilypond
@@ -2916,23 +2897,23 @@ modern.  This uses a modified @code{\breathe} mark:
 
 @lilypond[verbatim,quote]
 divisioMinima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-minima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-minima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaior = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maior
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maior
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 divisioMaxima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maxima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maxima
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 finalis = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::finalis
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::finalis
+  \once \override BreathingSign.Y-offset = #0
   \breathe
 }
 
@@ -3046,8 +3027,7 @@ global = {
       \layout {
         \context {
           \Score
-          \override SpacingSpanner
-          #'base-shortest-duration = #(ly:make-moment 1 2)
+          \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 2)
         }
         \context {
           \Staff
@@ -3079,7 +3059,7 @@ durations.
 @seealso
 Learning Manual:
 @rlearning{Visibility and color of objects},
-@rlearning{Vocal ensembles}.
+@rlearning{Vocal ensembles templates}.
 
 Notation Reference:
 @ref{Ancient notation},
@@ -3238,11 +3218,12 @@ The use of markup to center text, and arrange lines in columns is
 described in @ref{Formatting text}.
 
 Most of these elements are shown in one or other of the two verses
-in the template, see @qq{Psalms} in @rlearning{Vocal ensembles}.
+in the template, see @rlearning{Psalms}.
 
 @seealso
 Learning Manual:
-@rlearning{Vocal ensembles}.
+@rlearning{Psalms},
+@rlearning{Vocal ensembles templates}.
 
 Notation Reference:
 @ref{Fonts},
index 0254c26d0ba2169265cce1dfd0ec9491a870a4c4..131de3e32383b152b7a9fb22925544fc58f20153 100644 (file)
@@ -1,14 +1,10 @@
 depth = ../..
 
-SUBDIRS = pdf
-
 BITMAP_IMAGES = $(call src-wildcard,*.png) $(call src-wildcard,*.jpg)
 EPS_ILLUSTRATIONS = $(call src-wildcard,*.eps)
 SVG_FILES = $(call src-wildcard,*.svg)
 PDF_DIR = $(call src-wildcard,pdf/*.pdf)
 
-EXTRA_DIST_FILES = $(BITMAP_IMAGES) $(EPS_ILLUSTRATIONS) $(SVG_FILES)
-
 OUT_PDF_IMAGES = $(EPS_ILLUSTRATIONS:%.eps=$(outdir)/%.pdf)
 OUT_BITMAP_IMAGES = $(BITMAP_IMAGES:%=$(outdir)/%)
 OUT_BITMAP_IMAGES += $(EPS_ILLUSTRATIONS:%.eps=$(outdir)/%.png)
@@ -45,5 +41,5 @@ $(outdir)/%.png: %.eps
        gs -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -q -sOutputFile=$@ -sDEVICE=png16m -dEPSCrop -dNOPAUSE -f $< -c quit
 
 $(outdir)/%.pdf: %.eps
-       gs -dAutoRotatePages=/None -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=$@ -dEPSCrop -c .setpdfwrite -f $<
+       gs -dAutoRotatePages=/None -q -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=$@ -dEPSCrop -c .setpdfwrite -f $<
 
diff --git a/Documentation/pictures/pdf/GNUmakefile b/Documentation/pictures/pdf/GNUmakefile
deleted file mode 100644 (file)
index 72ac2bc..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-depth = ../../..
-
-PDF_FILES = $(call src-wildcard,*.pdf)
-
-EXTRA_DIST_FILES = $(PDF_FILES)
-
-STEPMAKE_TEMPLATES = documentation
-
-include $(depth)/make/stepmake.make
-
-default:
-
diff --git a/Documentation/po/included/.gitignore b/Documentation/po/included/.gitignore
new file mode 100644 (file)
index 0000000..e69de29
index a1c294955579397246d8ee7f81f18682e3f86bdf..9f48bc6f56489ed97948262193d18eed5f44b2f5 100644 (file)
@@ -1,19 +1,19 @@
 <!--
 we depend on an external entity here, which we cannot control.  Suppose
-we go from 2.16.x to 2.17.x and put the documentation under "v2.17".
+we go from 2.15.x to 2.17.x and put the documentation under "v2.17".
 For some time, Google won't have the new location in its index, so the
-search would get nothing.  It would be better to keep "v2.16" in the
-search for a while and have a redirection from "v2.16" to "v2.17".
+search would get nothing.  It would be better to keep "v2.15" in the
+search for a while and have a redirection from "v2.15" to "v2.17".
 -->
 
 <form action="http://google.com/search"
       method="get"
       name="search"
-      onSubmit="search.q.value='site:lilypond.org/doc/v2.16 '
+      onSubmit="search.q.value='site:lilypond.org/doc/v2.17 '
                + search.brute_query.value"
-      onMouseMove="search.q.value='site:lilypond.org/doc/v2.16 '
+      onMouseMove="search.q.value='site:lilypond.org/doc/v2.17 '
                   + search.brute_query.value"
-      onKeyUp="search.q.value='site:lilypond.org/doc/v2.16 '
+      onKeyUp="search.q.value='site:lilypond.org/doc/v2.17 '
               + search.brute_query.value">
   <input type="hidden" name="btnG" value="Google Search">
   <input type="text" name="brute_query" onfocus="this.value=''" value="Search">
diff --git a/Documentation/snippets/GNUmakefile b/Documentation/snippets/GNUmakefile
deleted file mode 100644 (file)
index cfc96fe..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-depth = ../..
-
-.PHONY: snippets
-
-SUBDIRS = new
-EXTRA_DIST_FILES = $(call src-wildcard,*.snippet-list) \
-  $(call src-wildcard,*.ly) $(call src-wildcard,*.itely) \
-  README
-SNIPPET_LY_FILES = $(call src-wildcard,*.ly)
-OUT_SNIPPET_LY_FILES = $(SNIPPET_LY_FILES:%.ly=out/%.ly)
-
-include $(depth)/make/stepmake.make
-
-default:
index 6e15690aa868c29c56b33f398dcce1bfe282eb50..cfe71cbf38238a2bccd34896832ab4666000c12b 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "ancient-notation, chords, contexts-and-engravers"
@@ -32,11 +32,11 @@ bass = {
 }
 continuo = \figuremode {
   <_>4 <6>4 <5/>4
-  \override Staff.BassFigureAlignmentPositioning #'direction = #UP
+  \override Staff.BassFigureAlignmentPositioning.direction = #UP
   %\bassFigureStaffAlignmentUp
   < _+ >4 <6>
   \set Staff.useBassFigureExtenders = ##t
-  \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
+  \override Staff.BassFigureAlignmentPositioning.direction = #DOWN
   %\bassFigureStaffAlignmentDown
   <4>4. <4>8 <_+>4
 }
index 406cbfd5f18f684a2470b82c18086d4db2017e9d..6f05ed94eda50c4efc88120bf3960a9ab349a313 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "pitches, staff-notation, vocal-music"
@@ -22,7 +22,7 @@ manually to prevent collisions.
   \new Voice \with {
     \consists "Ambitus_engraver"
   } \relative c'' {
-    \override Ambitus #'X-offset = #2.0
+    \override Ambitus.X-offset = #2.0
     \voiceOne
     c4 a d e
     f1
index cd413a7d78461ac73eb0a82352e818fcdfcf0d41..2c74e33ce678a85198a00095d116e86c73bef760 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "breaks, contexts-and-engravers, staff-notation, workaround"
@@ -30,7 +30,7 @@ workaround is to add a setting of
     << { c1 | c }
        \new Staff {
          \key f \major
-         \once \override Staff.TimeSignature #'stencil = ##f
+         \once \override Staff.TimeSignature.stencil = ##f
          c1 | c
        }
     >>
@@ -39,7 +39,7 @@ workaround is to add a setting of
        \new Staff {
          \once \set Staff.explicitKeySignatureVisibility = #end-of-line-invisible
          \key f \major
-         \once \override Staff.TimeSignature #'stencil = ##f
+         \once \override Staff.TimeSignature.stencil = ##f
          c1 | c
        }
     >>
index 205d47e79a24d2e00486eaede28453e14472e405..f187bd84e8957a2b7bc9bfb4fbaab6b80d6e4719 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contexts-and-engravers, really-simple, staff-notation"
@@ -31,7 +31,7 @@ piece.
             c1 | d
           }
           \new Staff {
-            \once \override Staff.TimeSignature #'stencil = ##f
+            \once \override Staff.TimeSignature.stencil = ##f
             c1 | b
           }
         >>
index 27d3823480d9ed3652951f5fd53236c6a31389ac..ee14a8aff5b52dfef57e7abfda0c4549e378ac4a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "chords, specific-notation"
@@ -19,7 +19,7 @@ To add bar line indications in the @code{ChordNames} context, add the
 
 
 \new ChordNames \with {
-  \override BarLine #'bar-extent = #'(-2 . 2)
+  \override BarLine.bar-extent = #'(-2 . 2)
   \consists "Bar_engraver"
 }
 \chordmode {
index a0b3264d0fabb7aa8a06f14c827fd2c3dd3d865e..7f354029fe14650377e8c0d964c58fdd7fc30d64 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "percussion, preparing-parts, really-simple, rhythms, specific-notation"
@@ -30,8 +30,8 @@ timb = \drummode { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb }
   <<
     \new DrumStaff \with {
       drumStyleTable = #timbales-style
-      \override StaffSymbol #'line-count = #2
-      \override BarLine #'bar-extent = #'(-1 . 1)
+      \override StaffSymbol.line-count = #2
+      \override BarLine.bar-extent = #'(-1 . 1)
     } <<
       \set Staff.instrumentName = #"timbales"
       \timb
index 528b3f3853911c3c053c4335f34319a68c29de74..80df7dc6d0539e8beb736e61b6737f1663db7fc4 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation, symbols-and-glyphs, vocal-music"
@@ -43,7 +43,7 @@ splitStaffBarLineMarkup = \markup \with-dimensions #'(0 . 0) #'(0 . 0) {
 }
 
 splitStaffBarLine = {
-  \once \override Staff.BarLine #'stencil =
+  \once \override Staff.BarLine.stencil =
     #(lambda (grob)
        (ly:stencil-combine-at-edge
         (ly:bar-line::print grob)
@@ -98,7 +98,7 @@ splitStaffBarLine = {
   \layout {
     \context {
       \Staff \RemoveEmptyStaves
-      \override VerticalAxisGroup #'remove-first = ##t
+      \override VerticalAxisGroup.remove-first = ##t
     }
   }
 }
index cd77b63ccc8583ed8d4e7cc59e5b58bced13c5d6..92c4fc31e53671bd9c01a1ef563f3aa293f313b9 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.15.20
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation, vocal-music"
@@ -33,8 +33,8 @@ cueWhile =
    (string? string? ly:dir? ly:music?)
    #{
      \cueDuring $instrument #dir {
-       \once \override TextScript #'self-alignment-X = #RIGHT
-       \once \override TextScript #'direction = $dir
+       \once \override TextScript.self-alignment-X = #RIGHT
+       \once \override TextScript.direction = $dir
        <>-\markup { \tiny #name }
        $music
      }
index 4287411de0680c73d9095a9e17f2dffea5fc6e6b..05b4e9ba0770a68a6ba6af814923cad9e996d9f6 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, workaround"
@@ -21,7 +21,7 @@ objects in parentheses.  The associated grob is @code{ParenthesesItem}.
 
 \relative c' {
   c2-\parenthesize ->
-  \override ParenthesesItem #'padding = #0.1
-  \override ParenthesesItem #'font-size = #-4
+  \override ParenthesesItem.padding = #0.1
+  \override ParenthesesItem.font-size = #-4
   <d \parenthesize f a>2
 }
index 587a5d9279cb5715a7a4919eb473181679321c34..1abf753a8700680b9421a073054a5316e6b343c3 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.15.15
-\version "2.15.15"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, staff-notation, tweaks-and-overrides"
@@ -24,15 +24,15 @@ be repositioned slightly.
 
 
 glissandoSkipOn = {
-  \override NoteColumn #'glissando-skip = ##t
-  \override NoteHead #'transparent = ##t
-  \override NoteHead #'no-ledgers = ##t
+  \override NoteColumn.glissando-skip = ##t
+  \override NoteHead.transparent = ##t
+  \override NoteHead.no-ledgers = ##t
 }
 
 glissandoSkipOff = {
-  \revert NoteColumn #'glissando-skip
-  \revert NoteHead #'transparent
-  \revert NoteHead #'no-ledgers
+  \revert NoteColumn.glissando-skip
+  \revert NoteHead.transparent
+  \revert NoteHead.no-ledgers
 }
 
 \relative c'' {
index a1869c9aedb1e75f93734d35fe9f029092633257..d442d817ec665bbe71ac326f30e2c3315820b025 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -26,8 +26,8 @@ graceNotes = {
 \relative c'' {
   c8
   \graceNotes
-  \override Score.GraceSpacing #'spacing-increment = #2.0
+  \override Score.GraceSpacing.spacing-increment = #2.0
   \graceNotes
-  \revert Score.GraceSpacing #'spacing-increment
+  \revert Score.GraceSpacing.spacing-increment
   \graceNotes
 }
index 551e96053721b8b666afd27beed418f8599a1709..e7bcf160f125bdd413839b07dcff7de29486acfb 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "correction-wanted, spacing, text, vocal-music, workaround"
@@ -34,7 +34,7 @@ This snippet shows how to bring the lyrics line closer to the staff.
   }
   % Reducing the minimum space below the staff and above the lyrics:
   \new Lyrics \with {
-    \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #'((basic-distance . 1))
+    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #'((basic-distance . 1))
   }
   \lyricsto melody { aa aa aa aa aa aa aa aa aa }
 >>
index 86f26c7154890f4bef1832e5b940e55977984c53..6b0b03478d7ffb50f8b414d93ae7007a63eb7feb 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks"
@@ -18,7 +18,7 @@ the shape of falls and doits.
 } % begin verbatim
 
 \relative c'' {
-  \override Score.SpacingSpanner #'shortest-duration-space = #4.0
+  \override Score.SpacingSpanner.shortest-duration-space = #4.0
   c2-\bendAfter #5
   c2-\bendAfter #-4.75
   c2-\bendAfter #8.5
index f4a55903a1e3092dc3e36c4df04c5f841342d27e..b67aeac03a360a4c01f1a2ddfa57c0e0b5842de2 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "paper-and-layout, text, titles"
@@ -28,7 +28,7 @@ and the following systems, respectively.
 \score {
   \new StaffGroup <<
     \new Staff {
-      \override Staff.InstrumentName #'self-alignment-X = #LEFT
+      \override Staff.InstrumentName.self-alignment-X = #LEFT
       \set Staff.instrumentName = \markup \left-column {
         "Left aligned"
         "instrument name"
@@ -39,7 +39,7 @@ and the following systems, respectively.
       c''1
     }
     \new Staff {
-      \override Staff.InstrumentName #'self-alignment-X = #CENTER
+      \override Staff.InstrumentName.self-alignment-X = #CENTER
       \set Staff.instrumentName = \markup \center-column {
         Centered
         "instrument name"
@@ -49,7 +49,7 @@ and the following systems, respectively.
       g'1
     }
     \new Staff {
-      \override Staff.InstrumentName #'self-alignment-X = #RIGHT
+      \override Staff.InstrumentName.self-alignment-X = #RIGHT
       \set Staff.instrumentName = \markup \right-column {
         "Right aligned"
         "instrument name"
index e09a298f332c9b9cbfc9c8b079c8259c1028093c..321f4cb3d748742a6cab82106332dcf0bd4c86d3 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -22,16 +22,16 @@ positioned directly over the bar line or left-aligned to the bar line.
 
 \relative c' {
   \set Score.currentBarNumber = #111
-  \override Score.BarNumber #'break-visibility = #all-visible
+  \override Score.BarNumber.break-visibility = #all-visible
   % Increase the size of the bar number by 2
-  \override Score.BarNumber #'font-size = #2
+  \override Score.BarNumber.font-size = #2
   % Print a bar number every second measure
   \set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
   c1 | c1
   % Center-align bar numbers
-  \override Score.BarNumber #'self-alignment-X = #CENTER
+  \override Score.BarNumber.self-alignment-X = #CENTER
   c1 | c1
   % Left-align bar numbers
-  \override Score.BarNumber #'self-alignment-X = #LEFT
+  \override Score.BarNumber.self-alignment-X = #LEFT
   c1 | c1
 }
index ddab547d5cb74d59adb75391f0b9740d0632f8c8..8bfd4b76aad6cd3f60d5bc26fe9dc6644095e2ec 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "text"
@@ -33,14 +33,14 @@ be done for all the staves).
   e1
 
   % the RehearsalMark will be centered above the Clef
-  \override Score.RehearsalMark #'break-align-symbols = #'(clef)
+  \override Score.RehearsalMark.break-align-symbols = #'(clef)
   \key a \major
   \clef treble
   \mark \markup { \char ##x2193 }
   e1
 
   % the RehearsalMark will be centered above the TimeSignature
-  \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+  \override Score.RehearsalMark.break-align-symbols = #'(time-signature)
   \key a \major
   \clef treble
   \time 3/4
@@ -48,7 +48,7 @@ be done for all the staves).
   e2.
 
   % the RehearsalMark will be centered above the KeySignature
-  \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+  \override Score.RehearsalMark.break-align-symbols = #'(key-signature)
   \key a \major
   \clef treble
   \time 4/4
@@ -59,20 +59,20 @@ be done for all the staves).
   e1
 
   % the RehearsalMark will be aligned with the left edge of the KeySignature
-  \once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+  \once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
   \mark \markup { \char ##x2193 }
   \key a \major
   e1
 
   % the RehearsalMark will be aligned with the right edge of the KeySignature
-  \once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+  \once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT
   \key a \major
   \mark \markup { \char ##x2193 }
   e1
 
   % the RehearsalMark will be aligned with the left edge of the KeySignature
   % and then shifted right by one unit.
-  \once \override Score.KeySignature #'break-align-anchor = #1
+  \once \override Score.KeySignature.break-align-anchor = #1
   \key a \major
   \mark \markup { \char ##x2193 }
   e1
index 8ab123ef88df364ba63c4fc2415a85d38b172e1b..c25eccd8a16d237457239aace1a6ea3b390118c7 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "text"
@@ -21,11 +21,11 @@ This behavior can be modified to align at right or left.
 \relative c' {
   c1 \mark "(Center)"
   c1
-  \once \override Score.RehearsalMark #'self-alignment-X = #LEFT
+  \once \override Score.RehearsalMark.self-alignment-X = #LEFT
   \mark "(Left)"
   c4 c c c
   c4 c c c
-  \once \override Score.RehearsalMark #'self-alignment-X = #RIGHT
+  \once \override Score.RehearsalMark.self-alignment-X = #RIGHT
   \mark "(Right)"
   c1
 }
index 01d5dbd819292aa6cff8dda104124317f42a4c36..d4a211ffe549e6a8268615e6989bc4ac25cdadd6 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, fretted-strings, spacing, specific-notation"
@@ -21,6 +21,6 @@ chord construct <>, even if it is only a single note.
 
 \relative c' {
   <c-1 e-2 g-3 b-5>2
-  \override Fingering #'staff-padding = #'()
+  \override Fingering.staff-padding = #'()
   <c-1 e-2 g-3 b-5>4 <g'-0>
 }
index f42ad922b2ebe2baec12643527c5543d31827355..719aa97ea12a02f12900037138a8beef78d8ef53 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "pitches, tweaks-and-overrides"
@@ -24,14 +24,14 @@ of the final argument.  Non-integer arguments may also be used.
 
 
 \relative c'' {
-  \override Stem #'(details beamed-lengths) = #'(2)
+  \override Stem.details.beamed-lengths = #'(2)
   a8[ a] a16[ a] a32[ a]
-  \override Stem #'(details beamed-lengths) = #'(8 10 12)
+  \override Stem.details.beamed-lengths = #'(8 10 12)
   a8[ a] a16[ a] a32[ a] r8
-  \override Stem #'(details beamed-lengths) = #'(8)
+  \override Stem.details.beamed-lengths = #'(8)
   a8[ a]
-  \override Stem #'(details beamed-lengths) = #'(8.5)
+  \override Stem.details.beamed-lengths = #'(8.5)
   a8[ a]
-  \revert Stem #'details
+  \revert Stem.details
   a8[ a] a16[ a] a32[ a] r16
 }
index 74b608255e8c217dfd1ffaeec40b61fe1730e1aa..017551b62ba821354a8640a9d52fe0d6ba219654 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.15.24
+%% Note: this file works from version 2.16.0
 \version "2.16.0"
 
 \header {
index 75012ba33d73b9330f71190c48821c7a4409727e..db790153579531ce159097fb409051547424a0e8 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, rhythms"
@@ -20,8 +20,8 @@ vertical lines on each side of the notehead instead of one line.
 \relative c'' {
   \time 4/2
   c\breve |
-  \override Staff.NoteHead #'style = #'altdefault
+  \override Staff.NoteHead.style = #'altdefault
   b\breve
-  \revert Staff.NoteHead #'style
+  \revert Staff.NoteHead.style
   a\breve
 }
index 65baecd336c3c4dc28764542a3d4468c4513785b..02a153baf72892b55707de56674247841d2bdac0 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, really-simple, tweaks-and-overrides"
@@ -26,7 +26,7 @@ staff instead.
   }
 }
 \relative c'' {
-  \once \override HorizontalBracket #'direction = #UP
+  \once \override HorizontalBracket.direction = #UP
   c2\startGroup
   d2\stopGroup
 }
index 64a083b1a539404377001014ce8f08f6315f6396..e0d6f54f924baea1bc180d1802631de4cadacc92 100644 (file)
@@ -4,9 +4,9 @@
 % and then run scripts/auxiliar/makelsr.py
 %
 % This file is in the public domain.
-%% Note: this file works from version 2.15.9
+%% Note: this file works from version 2.17.6
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "ancient-notation, symbols-and-glyphs"
@@ -23,49 +23,49 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
   \context VaticanaVoice <<
     \transpose c c {
 
-      \override NoteHead #'style = #'vaticana.punctum
+      \override NoteHead.style = #'vaticana.punctum
       \key es \major
       \clef "vaticana-fa2"
       c1 des e f ges
 
-      \override NoteHead #'style = #'vaticana.inclinatum
+      \override NoteHead.style = #'vaticana.inclinatum
       a! b ces'
       \bar "|"
       % \break % 1 (8*1)
 
-      \override NoteHead #'style = #'vaticana.quilisma
+      \override NoteHead.style = #'vaticana.quilisma
       b! des'! ges! fes!
       \breathe
       \clef "vaticana-fa1"
-      \override NoteHead #'style = #'vaticana.plica
+      \override NoteHead.style = #'vaticana.plica
       es d
-      \override NoteHead #'style = #'vaticana.reverse.plica
+      \override NoteHead.style = #'vaticana.reverse.plica
       c d
       \bar "|"
       % \break %2 (8*1)
 
-      \override NoteHead #'style = #'vaticana.punctum.cavum
+      \override NoteHead.style = #'vaticana.punctum.cavum
       es f
-      \override NoteHead #'style = #'vaticana.lpes
+      \override NoteHead.style = #'vaticana.lpes
       g as
-      \override NoteHead #'style = #'vaticana.upes
+      \override NoteHead.style = #'vaticana.upes
       bes as
-      \override NoteHead #'style = #'vaticana.vupes
+      \override NoteHead.style = #'vaticana.vupes
       g f
-      \override NoteHead #'style = #'vaticana.linea.punctum
-      \once \override Staff.BarLine #'bar-extent = #'(-1 . 1) \bar "|"
+      \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
+      \override NoteHead.style = #'vaticana.epiphonus
       c d
-      \override NoteHead #'style = #'vaticana.cephalicus
+      \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
+      \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 "|"
@@ -73,22 +73,22 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
 
       e! f! ges
       \clef "medicaea-do2"
-      \override NoteHead #'style = #'medicaea.inclinatum
+      \override NoteHead.style = #'medicaea.inclinatum
       a! b! ces'
-      \override NoteHead #'style = #'medicaea.virga
+      \override NoteHead.style = #'medicaea.virga
       b! a!
       \bar "|"
       % \break % 5 (8*1)
 
       ges fes
       \clef "medicaea-fa1"
-      \override NoteHead #'style = #'medicaea.rvirga
+      \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
+      \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 "|"
@@ -96,16 +96,16 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
 
       fes ges
       \clef "hufnagel-do2"
-      \override NoteHead #'style = #'hufnagel.lpes
+      \override NoteHead.style = #'hufnagel.lpes
       as! bes! ces'
-      \override NoteHead #'style = #'hufnagel.virga
+      \override NoteHead.style = #'hufnagel.virga
       bes! as!
       \bar "|"
       % \break % 7 (8*1)
 
       ges! fes!
       \clef "hufnagel-do-fa"
-      \override NoteHead #'style = #'hufnagel.punctum
+      \override NoteHead.style = #'hufnagel.punctum
       es! des ces des! es! fes!
       \bar "||"
       % \break % 8 (8*1)
@@ -145,8 +145,8 @@ lowerStaff = \new MensuralStaff = "lowerStaff" <<
       r2
       \clef "mensural-g"
       r4 r8 r16 r16
-      \override NoteHead #'style = #'mensural
-      \override Rest #'style = #'mensural
+      \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
@@ -210,23 +210,23 @@ lowerStaff = \new MensuralStaff = "lowerStaff" <<
     }
     \context {
       \MensuralVoice
-      \override NoteHead #'style = #'neomensural
-      \override Rest #'style = #'neomensural
-      \override Flag #'style = #'mensural
-      \override Stem #'thickness = #1.0
+      \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
+      \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
+      \revert  BarLine.transparent
+      \override StaffSymbol.thickness = #2.0
+      \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist
+      \override Custos.neutral-position = #4
     }
   }
 }
index efdb39ae3356fc91bdf49eddb99bf34aff35e283..489191155fd84643d89394d895dc90e49ca212f2 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.15.15
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "vocal-music, ancient-notation, template"
@@ -44,12 +44,12 @@ verba = \lyricmode {
       \Staff
       \remove "Time_signature_engraver"
       \remove "Bar_engraver"
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
     \context {
       \Voice
-      \override Stem #'length = #0
+      \override Stem.length = #0
     }
     \context {
       \Score
index 9b7029cc2863c96e1469981902ab9d40d9da0b56..c16659a403488d4252e5572ccc425cadb590dbcc 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "ancient-notation, real-music, really-cool, template"
@@ -27,18 +27,18 @@ global = {
   \set Score.skipBars = ##t
 
   % incipit
-  \once \override Score.SystemStartBracket #'transparent = ##t
+  \once \override Score.SystemStartBracket.transparent = ##t
    % Set tight spacing
-  \override Score.SpacingSpanner #'spacing-increment = #1.0
+  \override Score.SpacingSpanner.spacing-increment = #1.0
   \key f \major
   \time 2/2
-  \once \override Staff.TimeSignature #'style = #'neomensural
-  \override Voice.NoteHead #'style = #'neomensural
-  \override Voice.Rest #'style = #'neomensural
+  \once \override Staff.TimeSignature.style = #'neomensural
+  \override Voice.NoteHead.style = #'neomensural
+  \override Voice.Rest.style = #'neomensural
   \set Staff.printKeyCancellation = ##f
   \cadenzaOn % turn off bar lines
   \skip 1*10
-  \once \override Staff.BarLine #'transparent = ##f
+  \once \override Staff.BarLine.transparent = ##f
   \bar "||"
   \skip 1*1 % need this extra \skip such that clef change comes
             % after bar line
@@ -46,12 +46,12 @@ global = {
 
   % main
   \cadenzaOff % turn bar lines on again
-  \once \override Staff.Clef #'full-size-change = ##t
+  \once \override Staff.Clef.full-size-change = ##t
   \set Staff.forceClef = ##t
   \key g \major
   \time 4/4
-  \override Voice.NoteHead #'style = #'default
-  \override Voice.Rest #'style = #'default
+  \override Voice.NoteHead.style = #'default
+  \override Voice.Rest.style = #'default
 
   % Setting printKeyCancellation back to #t must not
   % occur in the first bar after the incipit.  Dto. for forceClef.
@@ -63,7 +63,7 @@ global = {
   \skip 1*7 % the actual music
 
   % let finis bar go through all staves
-  \override Staff.BarLine #'transparent = ##f
+  \override Staff.BarLine.transparent = ##f
 
   % finis bar
   \bar "|."
@@ -86,7 +86,7 @@ discantusNotes = {
     c'4 e'4.( d'8 c' b |
     a4) b a2 |
     b4.( c'8 d'4) c'4 |
-    \once \override NoteHead #'transparent = ##t c'1 |
+    \once \override NoteHead.transparent = ##t c'1 |
     b\breve |
   }
 }
@@ -122,7 +122,7 @@ altusNotes = {
     a2 g4 e |
     fis g4.( fis16 e fis4) |
     g1 |
-    \once \override NoteHead #'transparent = ##t g1 |
+    \once \override NoteHead.transparent = ##t g1 |
     g\breve |
   }
 }
@@ -158,7 +158,7 @@ tenorNotes = {
     R1 |
     R1 |
     r2 d'2. d'4 b e' | % two bars
-    \once \override NoteHead #'transparent = ##t e'1 |
+    \once \override NoteHead.transparent = ##t e'1 |
     d'\breve |
   }
 }
@@ -190,7 +190,7 @@ bassusNotes = {
     R1 |
     R1 |
     g2. e4 |
-    \once \override NoteHead #'transparent = ##t e1 |
+    \once \override NoteHead.transparent = ##t e1 |
     g\breve |
   }
 }
@@ -229,7 +229,7 @@ bassusLyrics = \lyricmode {
       \Score
 
       % no bars in staves
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
 
       % incipit should not start with a start delimiter
       \remove "System_start_delimiter_engraver"
@@ -238,7 +238,7 @@ bassusLyrics = \lyricmode {
       \Voice
 
       % no slurs
-      \override Slur #'transparent = ##t
+      \override Slur.transparent = ##t
 
       % The command below can be commented out in
       % short scores, but especially for large scores you
index fc6c07fe090d44c824b031afaab8d5ea2e6a3fe8..84e12ce3dc06aa706ede0f64dab6fa9f24342217 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "ancient-notation"
@@ -20,6 +20,6 @@ Time signatures may also be engraved in an old style.
 
 
 {
-  \override Staff.TimeSignature #'style = #'neomensural
+  \override Staff.TimeSignature.style = #'neomensural
   s1
 }
index 44920dce47013d69db182f1e2f0e772f671475ed..055fd10b3c5e15e598cfa2e26678916a1955215a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "template, vocal-music"
@@ -87,8 +87,7 @@ tick = \markup {
       \layout {
         \context {
           \Score
-          \override SpacingSpanner
-          #'base-shortest-duration = #(ly:make-moment 1 2)
+          \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 2)
         }
         \context {
           \Staff
index b4354ab71777172f42e269fab21d6275b31634bb..3d1708e4556223445e1dab4c2f9e7cb87906f467 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "world-music"
@@ -25,7 +25,7 @@ of what could be the start of a hijaz improvisation:
 
 \relative sol' {
   \key re \kurd
-  \accidentalStyle "forget"
+  \accidentalStyle forget
   \cadenzaOn
   sol4 sol sol sol fad mib sol1 fad8 mib re4. r8 mib1 fad sol
 }
index 8a16d3de606fcbdbb50917076cb4ff8c7a48d2d5..2ff6e85ab8ee11224603cf655ddc810993254c34 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -24,6 +24,6 @@ slurNotes = { d,8( a' d f a f' d, a) }
   \stemDown
   \slurUp
   \slurNotes
-  \once \override Slur #'eccentricity = #3.0
+  \once \override Slur.eccentricity = #3.0
   \slurNotes
 }
index c726e375550a7219e9d3737a0c69084884982227..9af5fffa99995a2950d7f2526faf37c281f1e73e 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "chords, editorial-annotations, rhythms, tweaks-and-overrides"
@@ -34,10 +34,10 @@ overridden.
 
   % Corrected to avoid collisions
   r8
-  \override Fingering #'add-stem-support = ##t
+  \override Fingering.add-stem-support = ##t
   <f c'-5>8
-  \override StringNumber #'add-stem-support = ##t
+  \override StringNumber.add-stem-support = ##t
   <f c'\5>8
-  \override StrokeFinger #'add-stem-support = ##t
+  \override StrokeFinger.add-stem-support = ##t
   <f c'-\rightHandFinger #2 >8
 }
index 8946b8a29c3d6393ba3059823ced3c554fb18870..a1e72321872dae356e64af20db20febb79a7c491 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.15.30
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "chords, fretted-strings"
@@ -42,12 +42,12 @@ bbarre =
                  (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 =
+       \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)
@@ -59,7 +59,7 @@ bbarre =
                 (padding . 0.25)
                 (attach-dir . 2)))
 %% uncomment this line for make full barred
-       % \once  \override TextSpanner #'bound-details #'left #'text =  \markup { "B" #str }
+       % \once  \override TextSpanner.bound-details.left.text =  \markup { "B" #str }
        $music
    #})
 
index db8da453b26ff942f463f35ff0e6f38496f52ca9..1b60a49d41b2c8c2432be6b20ef69d657f5d38bb 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -19,7 +19,7 @@ behavior can be changed as shown:
 
 
 \relative c'' {
-  \override Beam #'breakable = ##t
+  \override Beam.breakable = ##t
   c8 c[ c] c[ c] c[ c] c[ \break
   c8] c[ c] c[ c] c[ c] c
 }
index 58cbc13c6407e9df270c92ec1a98fd076be021ab..c9139bafb1f52c1702be5ee2dec65f48fb437744 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, really-cool, text"
@@ -21,6 +21,6 @@ white box will not overlap any other grob.
 
 \layout { ragged-right = ##f }
 \relative c' {
-  \override TextScript #'extra-offset = #'(2 . 4)
+  \override TextScript.extra-offset = #'(2 . 4)
   c2-\markup { \whiteout \pad-markup #0.5 "middle C" } c
 }
index be5b8c08658d3c38f2d0d39820c926e1951bedd0..c1af6d24dae150e249a5c20eeb5200fbf358fb72 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, symbols-and-glyphs"
@@ -25,20 +25,20 @@ ticks, vees and @qq{railroad tracks} (caesura).
   << { g4 as g } \\ { es4 bes es } >> |
   % Modern notation:
   % by default, \breathe uses the rcomma, just as if saying:
-  % \override BreathingSign #'text = #(make-musicglyph-markup "scripts.rcomma")
+  % \override BreathingSign.text = #(make-musicglyph-markup "scripts.rcomma")
   << { g4 as g } \\ { es4 \breathe bes es } >> |
 
   % rvarcomma and lvarcomma are variations of the default rcomma and lcomma
   % N.B.: must use Staff context here, since we start a Voice below
-  \override Staff.BreathingSign #'text = \markup { \musicglyph #"scripts.rvarcomma" }
+  \override Staff.BreathingSign.text = \markup { \musicglyph #"scripts.rvarcomma" }
   << { g4 as g } \\ { es4 \breathe bes es } >> |
 
   % vee
-  \override BreathingSign #'text = \markup { \musicglyph #"scripts.upbow" }
+  \override BreathingSign.text = \markup { \musicglyph #"scripts.upbow" }
   es8[ d es f g] \breathe f |
 
   % caesura
-  \override BreathingSign #'text = \markup { \musicglyph #"scripts.caesura.curved" }
+  \override BreathingSign.text = \markup { \musicglyph #"scripts.caesura.curved" }
   es8[ d] \breathe es[ f g f] |
   es2 r4 \bar "||"
 }
index b21fc6e7929fc8847dce5edcdd85809993272811..db3ba99f0dd0ed08041e97408fac21f85c51cc33 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contemporary-notation, expressive-marks, symbols-and-glyphs"
@@ -35,14 +35,14 @@ draw the rectangle over the hairpin.
   <<
     {
       \dynamicUp
-      \override DynamicLineSpanner #'staff-padding = #4
+      \override DynamicLineSpanner.staff-padding = #4
       r2 r16 c'8.\pp r4
     }
     \\
     {
-      \override DynamicLineSpanner #'layer = #0
+      \override DynamicLineSpanner.layer = #0
       des,2\mf\< ~
-      \override TextScript #'layer = #2
+      \override TextScript.layer = #2
       des16_\markup {
         \postscript #"
           1.9 -8 translate
index befcd7ab02d8579aefe1ed4455db1228a1d0cf1f..c42000b8af319116f9f75fd2a88ca33a8a02e01a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, symbols-and-glyphs, tweaks-and-overrides"
@@ -22,7 +22,7 @@ pleasing combination of railtracks and fermata.
 \relative c'' {
   c2.
   % construct the symbol
-  \override BreathingSign #'text = \markup {
+  \override BreathingSign.text = \markup {
     \line {
       \musicglyph #"scripts.caesura.curved"
       \translate #'(-1.75 . 1.6)
@@ -31,7 +31,7 @@ pleasing combination of railtracks and fermata.
   }
   \breathe c4
   % set the breathe mark back to normal
-  \revert BreathingSign #'text
+  \revert BreathingSign.text
   c2. \breathe c4
   \bar "|."
 }
index 4f2eb369260787696decd0d6ee9f53c3e4c1ea79..67e197227006f1dd368930a9ea1b8545ab881f3c 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, really-cool, scheme-language, text"
@@ -12,6 +12,9 @@
   texidoc = "
 This example provides a function to typeset a hairpin (de)crescendo
 with some additional text below it, such as @qq{molto} or @qq{poco}.
+The added text will change the direction according to the direction of
+the hairpin. The Hairpin is aligned to DynamicText.
+
 The example also illustrates how to modify the way an object is
 normally printed, using some Scheme code.
 
@@ -19,21 +22,49 @@ normally printed, using some Scheme code.
   doctitle = "Center text below hairpin dynamics"
 } % begin verbatim
 
-
 hairpinWithCenteredText =
 #(define-music-function (parser location text) (markup?)
 #{
-  \override Voice.Hairpin #'stencil = #(lambda (grob)
-    (ly:stencil-aligned-to
-     (ly:stencil-combine-at-edge
-      (ly:stencil-aligned-to (ly:hairpin::print grob) X CENTER)
-      Y DOWN
-      (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER))
-     X LEFT))
+  \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))))
 #})
 
-hairpinMolto = \hairpinWithCenteredText \markup { \italic molto }
-hairpinMore = \hairpinWithCenteredText \markup { \larger moltissimo }
+hairpinMolto =
+\hairpinWithCenteredText \markup { \italic molto }
+
+hairpinMore =
+\hairpinWithCenteredText \markup { \larger moltissimo }
 
 \layout { ragged-right = ##f }
 
@@ -41,5 +72,10 @@ hairpinMore = \hairpinWithCenteredText \markup { \larger moltissimo }
   \hairpinMolto
   c2\< c\f
   \hairpinMore
-  c2\< c\f
+  c2\ppppp\< c\f
+  \break
+  \hairpinMolto
+  c2^\< c\f
+  \hairpinMore
+  c2\ppppp\< c\f
 }
index 36f83dd4a7a2c9971c95cf69066211eb77caff0a..b5342b4131087cb01e02db78f097b8bbe0e1352d 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.15.31
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "text, tweaks-and-overrides, contexts-and-engravers"
@@ -47,15 +47,15 @@ been shifted via @code{force-hshift}.
   \context {
     \Voice
     \consists #Text_align_engraver
-    \override TextScript #'X-offset =
+    \override TextScript.X-offset =
       #ly:self-alignment-interface::aligned-on-x-parent
-    \override TextScript #'self-alignment-X = #CENTER
+    \override TextScript.self-alignment-X = #CENTER
   }
 }
 
 \new Staff <<
   \relative c'' {
-    \override NoteColumn #'force-hshift = #3
+    \override NoteColumn.force-hshift = #3
     c1-\markup { \arrow-head #Y #DOWN ##t }
   }
   \\
index c9b51f780ee28e90cdac1d779b84e34f9b93e242..741edb8388c023baa88f9313ca48c7bec6cad62d 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, really-simple, simultaneous-notes, specific-notation, tweaks-and-overrides"
@@ -28,5 +28,5 @@ note head).
 
 
 \relative c' {
-  <\tweak #'font-size #+2 c e g c \tweak #'font-size #-2 e>1^\markup { A tiny e }_\markup { A big c }
+  <\tweak font-size #+2 c e g c \tweak font-size #-2 e>1^\markup { A tiny e }_\markup { A big c }
 }
index 3bd380f2c74daffb747cbfbe5b71c9e8087ddfb5..6409e4b15d31b8eca58caa87c205ef6652658641 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -25,6 +25,6 @@ spaces.
 
 {
   f8 f''8 f8 f''8
-  \override Beam #'auto-knee-gap = #6
+  \override Beam.auto-knee-gap = #6
   f8 f''8 f8 f''8
 }
index 38840626060d549417bbcca76c892c254953f1f2..118341b7a8a8acc192c31b6b0b3ec15b28620fe9 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -24,6 +24,6 @@ default number of ten may be changed by overriding the
 \relative c'' {
   \compressFullBarRests
   R1*2 | R1*5 | R1*9
-  \override MultiMeasureRest #'expand-limit = #3
+  \override MultiMeasureRest.expand-limit = #3
   R1*2 | R1*5 | R1*9
 }
index f0bbabd21576c4e96dea98215154095bce1a5b76..b174cb5bd84b25e691639f72afe775a87e5888dd 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings"
@@ -29,10 +29,10 @@ or fret in the different orientations will be aligned.
   \new FretBoards {
     \chordmode {
       c1
-      \override FretBoard #'(fret-diagram-details orientation) =
+      \override FretBoard.fret-diagram-details.orientation =
         #'landscape
       c1
-      \override FretBoard #'(fret-diagram-details orientation) =
+      \override FretBoard.fret-diagram-details.orientation =
         #'opposing-landscape
       c1
     }
index aded2070cb32726066a534e4bed17bde00ecdd19..82d066eac5e22a507ef34f5212f62813fed46c00 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contexts-and-engravers, midi, real-music"
index ceea216ef269f2b8d726385d7f3dc6ef0dbe84a5..4ef7475f41f5f34362edda04ca388ed4925d0f70 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "really-simple, vocal-music"
@@ -28,8 +28,8 @@ used for printing the stanza number.
   Hi, my name is Bert.
 }
 \addlyrics {
-  \override StanzaNumber #'font-name = #"DejaVu"
+  \override StanzaNumber.font-name = #"DejaVu"
   \set stanza = #"2. "
-  \override LyricText #'font-family = #'typewriter
+  \override LyricText.font-family = #'typewriter
   Oh, ché -- ri, je t'aime
 }
index 31434e5d019e7bbdf82b7d886ac322bd1f17f0e5..002aaf7216b57a008ba17664034236b9f1808256 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -27,7 +27,7 @@ is @code{'dashed-line}, and other possible values include @code{'line},
 \relative c'' {
   \set crescendoText = \markup { \italic { cresc. poco } }
   \set crescendoSpanner = #'text
-  \override DynamicTextSpanner #'style = #'dotted-line
+  \override DynamicTextSpanner.style = #'dotted-line
   a2\< a
   a2 a
   a2 a
index 3fe9208c41542fb6ac158b4228c31a5bf9d0caf2..3f6f3db167de6e6c0e24fd51544438f4896fa133 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "pitches"
@@ -31,18 +31,18 @@ It is possible to change the default gap setting for ambitus.
 
 \new Staff {
   \time 2/4
-  \override AmbitusLine #'gap = #0
+  \override AmbitusLine.gap = #0
   c'4 g''
 }
 
 \new Staff {
   \time 2/4
-  \override AmbitusLine #'gap = #1
+  \override AmbitusLine.gap = #1
   c'4 g''
 }
 
 \new Staff {
   \time 2/4
-  \override AmbitusLine #'gap = #1.5
+  \override AmbitusLine.gap = #1.5
   c'4 g''
 }
index 8b51aea49a32113077de2b6199fe1b8056053d68..33978945b0fe86346959fdded696b52ca2b6c978 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks"
@@ -20,7 +20,7 @@ text.
 
 \relative c'' {
   c2
-  \override BreathingSign #'text =
+  \override BreathingSign.text =
     \markup { \musicglyph #"scripts.rvarcomma" }
   \breathe
   d2
index 6040c76cd19a0853966d13a5c40afc4b8b0dd246..0719c560b1a62836e5c91dce7937397bb6bb91ad 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, rhythms"
@@ -19,10 +19,10 @@ a single note.
 
 \relative c' {
   c4.. a16 r2 |
-  \override Dots #'dot-count = #4
+  \override Dots.dot-count = #4
   c4.. a16 r2 |
-  \override Dots #'dot-count = #0
+  \override Dots.dot-count = #0
   c4.. a16 r2 |
-  \revert Dots #'dot-count
+  \revert Dots.dot-count
   c4.. a16 r2 |
 }
index 19ab74b4496519d83f3e39b3b9bb064b19a3bb7d..c4c53e5c320b6f2301d7d0f773f4ee832b863c96 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "specific-notation, staff-notation"
@@ -36,7 +36,7 @@ lower = \relative c {
       \upper
     }
     \new Staff {
-      \override Staff.StaffSymbol #'line-count = #4
+      \override Staff.StaffSymbol.line-count = #4
       \lower
     }
   >>
index 1400f158c3f5cd2e8bd82bdd8098015e663f446e..ed30920b49eed08d4dd1aa7acc261f48e01bdcc6 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "paper-and-layout, staff-notation, tweaks-and-overrides"
@@ -29,7 +29,7 @@ changed by scaling the properties @code{'staff-space} and
   }
   \new Staff \with {
     fontSize = #-3
-    \override StaffSymbol #'staff-space = #(magstep -3)
+    \override StaffSymbol.staff-space = #(magstep -3)
   } {
     \clef bass
     c8 c c c c\f c c c
index 419f7616892be86f8c409330d70ff6d5056d6d1f..5d4d8891066ccab518953da92a8a91ad4404f417 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -23,8 +23,8 @@ be printed, or the tuplet number may be suppressed altogether.
 \relative c'' {
   \times 2/3 { c8 c c }
   \times 2/3 { c8 c c }
-  \override TupletNumber #'text = #tuplet-number::calc-fraction-text
+  \override TupletNumber.text = #tuplet-number::calc-fraction-text
   \times 2/3 { c8 c c }
-  \override TupletNumber #'stencil = ##f
+  \override TupletNumber.stencil = ##f
   \times 2/3 { c8 c c }
 }
index d49857c542c67e0cf927a17c2b2300a296c95205..4da77bd8520f646be5e8ce4145c3894f9e9b2095 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.15.17
+%% Note: this file works from version 2.16.0
 \version "2.16.0"
 
 \header {
index 7f9153f86d6e72ab297271e81008e440f7fd85bb..e20c06202bcbe9da5314478a01ffe35f1f3f33cf 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.15.15
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers, specific-notation"
@@ -20,13 +20,13 @@ aren't always the same length.
 
 
 stemOn = {
-  \revert Staff.Stem #'transparent
-  \revert Staff.Flag #'transparent
+  \revert Staff.Stem.transparent
+  \revert Staff.Flag.transparent
 }
 
 stemOff = {
-  \override Staff.Stem #'transparent = ##t
-  \override Staff.Flag #'transparent = ##t
+  \override Staff.Stem.transparent = ##t
+  \override Staff.Flag.transparent = ##t
 }
 
 \score {
index 0fed8b205032c1261a81e52623fab1899f6c391f..c335944a5a10708fc454136b9b5f887bb104c3d2 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.15.20
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -79,7 +79,7 @@ Bass = {
     \context Staff = lower {
       \new Voice {
         \clef bass
-        \accidentalStyle "modern-cautionary"
+        \accidentalStyle modern-cautionary
         <<
           \Tenor
           \Bass
@@ -96,7 +96,7 @@ Bass = {
     }
     \context {
       \Voice
-      \override StanzaNumber #'padding = #1.8
+      \override StanzaNumber.padding = #1.8
     }
   }
 }
index 05fe6f5ea60ab7003c1a153bbb19c69eac0fe62a..16ed079f6e578e48bedf99278136535810aab641 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, pitches, really-cool"
@@ -55,7 +55,7 @@ to distinguish enharmonics.
 
 \score {
   \new Staff \relative c' {
-    \override NoteHead #'color = #color-notehead
+    \override NoteHead.color = #color-notehead
     c8 b d dis ees f g aes
   }
 }
index 9005fff11aabe6d2dcf9ec3627281b212ee94640..0a8477adc57f1565ce54d8db0d7eeb19e9dacf29 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "simultaneous-notes, syntax-and-expressions, text"
@@ -65,7 +65,7 @@ musicDown = \relative c'' {
     indent = 6.0\cm
     \context {
       \Score
-      \override SystemStartBar #'collapse-height = #30
+      \override SystemStartBar.collapse-height = #30
     }
   }
 }
index da49aec5327c54897dad2e03f27a1cb62dce6320..9421a12fb1363cb71a39872a9cb933ffd1f720bf 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -28,7 +28,7 @@ signatures and adapting the automatic beaming behavior.
                                            (#:column (two num)))))))
 
 \relative c' {
-  \override Staff.TimeSignature #'stencil = #(compound-time "2" "3" "8")
+  \override Staff.TimeSignature.stencil = #(compound-time "2" "3" "8")
   \time 5/8
   \set Staff.beatStructure = #'(2 3)
   c8 d e fis gis
index fbe2e227bb0c5076b559812152d82aff5478e995..b30f7e73931ef0aa602efd175fdbf75dba37cf25 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.15.19
+%% Note: this file works from version 2.16.0
 \version "2.16.0"
 
 \header {
index 46e86777edef84af77a71fca8e6c1d21e6cdc9f6..f2b61e8e8dbd9ef0eb9b1c599b1965c69de8bf9d 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -19,8 +19,8 @@ first bar number following line breaks.
 } % begin verbatim
 
 consistentlyLeftAlignedBarNumbers = {
-  \override Score.BarNumber #'break-visibility = #end-of-line-invisible
-  \override Score.BarNumber #'self-alignment-X =
+  \override Score.BarNumber.break-visibility = #end-of-line-invisible
+  \override Score.BarNumber.self-alignment-X =
     #(lambda (grob)
        (let ((break-dir (ly:item-break-dir grob)))
          (if (= break-dir RIGHT) RIGHT LEFT)))
index bad94e600d6c2d014c29e5db51512c68379da7df..7d9d563318bb33526d5cb0b3843727aebc62bf1e 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contemporary-notation, expressive-marks, specific-notation"
@@ -20,7 +20,7 @@ hidden note and cadenza timing.
 
 \relative c'' {
   \time 3/4
-  \override Glissando #'style = #'zigzag
+  \override Glissando.style = #'zigzag
   c4 c
   \cadenzaOn
   c4\glissando
index 2f4e1103dc2e75b730acd7d8cd49d97518772c52..10ce65167de539119b9dd3a07066ae9c0a797029 100644 (file)
@@ -8,6 +8,7 @@ chant-or-psalms-notation.ly
 creating-blank-staves.ly
 cross-staff-stems.ly
 defining-an-engraver-in-scheme--ambitus-engraver.ly
+displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly
 engravers-one-by-one.ly
 mensurstriche-layout-bar-lines-between-the-staves.ly
 nesting-staves.ly
index 794b65b8205ee85d60fb973b8bcb3c6b3cc58a95..4df07c679e00b1d4af621b2058538ecdfb7ff00b 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -28,16 +28,16 @@ be hidden by enabling the callback.
 \paper { ragged-right = ##t }
 
 \relative c'' {
-  \override Hairpin #'to-barline = ##f
-  \override Glissando #'breakable = ##t
+  \override Hairpin.to-barline = ##f
+  \override Glissando.breakable = ##t
   % show hairpin
-  \override Hairpin #'after-line-breaking = ##t
+  \override Hairpin.after-line-breaking = ##t
   % hide text span
-  \override TextSpanner #'after-line-breaking =
+  \override TextSpanner.after-line-breaking =
     #ly:spanner::kill-zero-spanned-time
   e2\<\startTextSpan
   % show glissando
-  \override Glissando #'after-line-breaking = ##t
+  \override Glissando.after-line-breaking = ##t
   f2\glissando
   \break
   f,1\!\stopTextSpan
index c1dfc67da40b8e60ebd665bf93c8a48ca6f48df8..d4091b033dea85aa784312116cfed89a28efbb0b 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -25,9 +25,9 @@ comes first.
 
 
 \relative c''' {
-  \once \override TextScript #'script-priority = #-100
+  \once \override TextScript.script-priority = #-100
   a2^\prall^\markup { \sharp }
 
-  \once \override Script #'script-priority = #-100
+  \once \override Script.script-priority = #-100
   a2^\prall^\markup { \sharp }
 }
index 7ceaf5615ef886abc0100a7012944ae8720f92bd..736114f59b744810c01dd15fbfb5705c6946f82d 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -31,11 +31,11 @@ music = \relative c'' {
 \new Voice {
   \relative c' {
     << \music s4^"default" >>
-    \override TupletBracket #'bracket-visibility = #'if-no-beam
+    \override TupletBracket.bracket-visibility = #'if-no-beam
     << \music s4^"'if-no-beam" >>
-    \override TupletBracket #'bracket-visibility = ##t
+    \override TupletBracket.bracket-visibility = ##t
     << \music s4^"#t" >>
-    \override TupletBracket #'bracket-visibility = ##f
+    \override TupletBracket.bracket-visibility = ##f
     << \music s4^"#f" >>
   }
 }
index 519275b9d98ef9fcd534282cf2c20eedf12e7a04..dba460587b29c125f96217c651538f640cf64652 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides"
@@ -23,8 +23,8 @@ horizontally.
 
 
 \relative c'' {
-  \once \override TextScript #'avoid-slur = #'inside
-  \once \override TextScript #'outside-staff-priority = ##f
+  \once \override TextScript.avoid-slur = #'inside
+  \once \override TextScript.outside-staff-priority = ##f
   c2(^\markup \tiny \override #'(baseline-skip . 1) {
     \halign #-4
     \center-column {
index 28de0512c514c1b7e51921bb2894e0ce186a790b..343279e64bc3c5c2213d10950eac33f9ec86723f 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.15.27
+%% Note: this file works from version 2.16.0
 \version "2.16.0"
 
 \header {
index c1d0fb620fc3391b0f626b89591f590fa9c65b88..ba4ccc08c220dcbad54ca3a551f62d6959a7423d 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks, scheme-language, staff-notation, tweaks-and-overrides"
@@ -40,7 +40,7 @@ finger =
 
 \relative c' {
   % optional override to remove warnings for fingerings larger than 5
-  \override Fingering #'text = #calc-finger-without-warning
+  \override Fingering.text = #calc-finger-without-warning
   c1\ten
   c1\fifty
   c1-\finger #36
index 9bbac345084a1d5c4725380b50f97f1d1068869e..3dbde1f7425a8beab5083490369aa19644202e7c 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, text, tweaks-and-overrides"
@@ -24,21 +24,21 @@ end of one system and the start of the following system.
 {
   \key a \major
   \set Score.markFormatter = #format-mark-box-letters
-  \once \override Score.RehearsalMark #'outside-staff-priority = #5000
-  \once \override Score.RehearsalMark #'self-alignment-X = #LEFT
-  \once \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+  \once \override Score.RehearsalMark.outside-staff-priority = #5000
+  \once \override Score.RehearsalMark.self-alignment-X = #LEFT
+  \once \override Score.RehearsalMark.break-align-symbols = #'(key-signature)
   \mark \markup { \bold { Senza denti } }
 
   % the hidden measure and bar line
   % \cadenzaOn turns off automatic calculation of bar numbers
   \cadenzaOn
-  \once \override Score.TimeSignature #'stencil = ##f
+  \once \override Score.TimeSignature.stencil = ##f
   \time 1/16
   s16 \bar ""
   \cadenzaOff
 
   \time 4/4
-  \once \override Score.RehearsalMark #'self-alignment-X = #LEFT
+  \once \override Score.RehearsalMark.self-alignment-X = #LEFT
   \mark \markup { \box \bold Intro }
   d'1
   \mark \default
index ee587e14efe2e1d5ec33c194e5ec835a4fc2cee3..5e18e550e2936019fde484e5acf52538dcf0ff33 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, text, tweaks-and-overrides"
@@ -23,34 +23,33 @@ to modify its output.
 \paper { ragged-right = ##f }
 
 \relative c'' {
-  \override TextSpanner #'(bound-details left text) = #"bla"
-  \override TextSpanner #'(bound-details right text) = #"blu"
+  \override TextSpanner.bound-details.left.text = #"bla"
+  \override TextSpanner.bound-details.right.text = #"blu"
   a4 \startTextSpan
   b4 c
   a4 \stopTextSpan
 
-  \override TextSpanner #'style = #'line
-  \once \override TextSpanner
-    #'(bound-details left stencil-align-dir-y) = #CENTER
+  \override TextSpanner.style = #'line
+  \once \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
   a4 \startTextSpan
   b4 c
   a4 \stopTextSpan
 
-  \override TextSpanner #'style = #'dashed-line
-  \override TextSpanner #'(bound-details left text) =
+  \override TextSpanner.style = #'dashed-line
+  \override TextSpanner.bound-details.left.text =
     \markup { \draw-line #'(0 . 1) }
-  \override TextSpanner #'(bound-details right text) =
+  \override TextSpanner.bound-details.right.text =
     \markup { \draw-line #'(0 . -2) }
-  \once \override TextSpanner #'(bound-details right padding) = #-2
+  \once \override TextSpanner.bound-details.right.padding = #-2
 
   a4 \startTextSpan
   b4 c
   a4 \stopTextSpan
 
   \set Staff.middleCPosition = #-13
-  \override TextSpanner #'dash-period = #10
-  \override TextSpanner #'dash-fraction = #0.5
-  \override TextSpanner #'thickness = #10
+  \override TextSpanner.dash-period = #10
+  \override TextSpanner.dash-fraction = #0.5
+  \override TextSpanner.thickness = #10
   a4 \startTextSpan
   b4 c
   a4 \stopTextSpan
index 1c3817bbf25bcd1a63b54b772c55aa57c476aad3..cb4ec966af60d2cecfad24d90c23f89aad0071df 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "chords, keyboards, tweaks-and-overrides, workaround"
@@ -15,7 +15,7 @@ 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
+between staves using @code{\\override Staff.Beam.collision-voice-only
 = ##t}
 
 "
@@ -28,17 +28,17 @@ between staves using @code{\\override Staff.Beam #'collision-voice-only
     \relative c' {
       <<
         { r4
-          \override Stem #'cross-staff = ##t
-          \override Stem #'length = #19 % this is in half-spaces,
+          \override Stem.cross-staff = ##t
+          \override Stem.length = #19 % this is in half-spaces,
               % so it makes stems 9.5 staffspaces long
-          \override Stem #'Y-offset = #-6 % stems are normally lengthened
+          \override Stem.Y-offset = #-6 % stems are normally lengthened
               % upwards, so here we must lower the stem by the amount
               % equal to the lengthening - in this case (19 - 7) / 2
               % (7 is default stem length)
           e e e }
         { s4
           \change Staff = "bottom"
-          \override NoteColumn #'ignore-collision = ##t
+          \override NoteColumn.ignore-collision = ##t
           c, c c
         }
       >>
index 1431461cf30e82637dc598b1e17cbd75dcfad255..cfcc9ef0d0394d657e58621933c1579ee6bb1906 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.15.42
+%% Note: this file works from version 2.16.0
 \version "2.16.0"
 
 \header {
index 6a4afbd601db333b94a424960ec42ed4d4b420f2..b653e146ac31d4649d2b4237277033b16a9b562b 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "ancient-notation, specific-notation, symbols-and-glyphs, tweaks-and-overrides"
@@ -20,21 +20,21 @@ Custodes may be engraved in various styles.
 \layout { ragged-right = ##t }
 
 \new Staff \with { \consists "Custos_engraver" } \relative c' {
-  \override Staff.Custos #'neutral-position = #4
+  \override Staff.Custos.neutral-position = #4
 
-  \override Staff.Custos #'style = #'hufnagel
+  \override Staff.Custos.style = #'hufnagel
   c1^"hufnagel" \break
   <d a' f'>1
 
-  \override Staff.Custos #'style = #'medicaea
+  \override Staff.Custos.style = #'medicaea
   c1^"medicaea" \break
   <d a' f'>1
 
-  \override Staff.Custos #'style = #'vaticana
+  \override Staff.Custos.style = #'vaticana
   c1^"vaticana" \break
   <d a' f'>1
 
-  \override Staff.Custos #'style = #'mensural
+  \override Staff.Custos.style = #'mensural
   c1^"mensural" \break
   <d a' f'>1
 }
index e0e335621f355005ae9e2afd20a63b988303b920..f9d5816c3716fa9af9d9e956682effbd64e67487 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings, tweaks-and-overrides"
@@ -31,42 +31,27 @@ can be omitted in property overrides.
   }
   \new FretBoards {
     % Set global properties of fret diagram
-    \override FretBoards.FretBoard #'size = #'1.2
-    \override FretBoard
-      #'(fret-diagram-details finger-code) = #'in-dot
-    \override FretBoard
-      #'(fret-diagram-details dot-color) = #'white
+    \override FretBoards.FretBoard.size = #'1.2
+    \override FretBoard.fret-diagram-details.finger-code = #'in-dot
+    \override FretBoard.fret-diagram-details.dot-color = #'white
     \chordmode {
       c
-      \once \override FretBoard #'size = #'1.0
-      \once \override FretBoard
-        #'(fret-diagram-details barre-type) = #'straight
-      \once \override FretBoard
-        #'(fret-diagram-details dot-color) = #'black
-      \once \override FretBoard
-        #'(fret-diagram-details finger-code) = #'below-string
+      \once \override FretBoard.size = #'1.0
+      \once \override FretBoard.fret-diagram-details.barre-type = #'straight
+      \once \override FretBoard.fret-diagram-details.dot-color = #'black
+      \once \override FretBoard.fret-diagram-details.finger-code = #'below-string
       c'
-      \once \override FretBoard
-        #'(fret-diagram-details barre-type) = #'none
-      \once \override FretBoard
-        #'(fret-diagram-details number-type) = #'arabic
-      \once \override FretBoard
-        #'(fret-diagram-details orientation) = #'landscape
-      \once \override FretBoard
-        #'(fret-diagram-details mute-string) = #"M"
-      \once \override FretBoard
-        #'(fret-diagram-details label-dir) = #LEFT
-      \once \override FretBoard
-        #'(fret-diagram-details dot-color) = #'black
+      \once \override FretBoard.fret-diagram-details.barre-type = #'none
+      \once \override FretBoard.fret-diagram-details.number-type = #'arabic
+      \once \override FretBoard.fret-diagram-details.orientation = #'landscape
+      \once \override FretBoard.fret-diagram-details.mute-string = #"M"
+      \once \override FretBoard.fret-diagram-details.label-dir = #LEFT
+      \once \override FretBoard.fret-diagram-details.dot-color = #'black
       c'
-      \once \override FretBoard
-        #'(fret-diagram-details finger-code) = #'below-string
-      \once \override FretBoard
-        #'(fret-diagram-details dot-radius) = #0.35
-      \once \override FretBoard
-        #'(fret-diagram-details dot-position) = #0.5
-      \once \override FretBoard
-        #'(fret-diagram-details fret-count) = #3
+      \once \override FretBoard.fret-diagram-details.finger-code = #'below-string
+      \once \override FretBoard.fret-diagram-details.dot-radius = #0.35
+      \once \override FretBoard.fret-diagram-details.dot-position = #0.5
+      \once \override FretBoard.fret-diagram-details.fret-count = #3
       d
     }
   }
index 77c3004edad05c4ed25a6d48b0623d1493248926..57032ef0fd226deddea079e835a7f87ea479ce73 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings, tweaks-and-overrides"
@@ -26,11 +26,9 @@ markup.
   \new Voice = "mel" {
     \textLengthOn
     % Set global properties of fret diagram
-    \override TextScript #'size = #'1.2
-    \override TextScript
-      #'(fret-diagram-details finger-code) = #'in-dot
-    \override TextScript
-      #'(fret-diagram-details dot-color) = #'white
+    \override TextScript.size = #'1.2
+    \override TextScript.fret-diagram-details.finger-code = #'in-dot
+    \override TextScript.fret-diagram-details.dot-color = #'white
 
     %% C major for guitar, no barre, using defaults
        % terse style
index 8ffb32fee65e35db6528e9ed815388b0801f835e..50ff9bc0cda6324f42da991d69ae65a725c612b1 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -20,8 +20,8 @@ by the @code{Stem} property @code{neutral-direction}.
 
 \relative c'' {
   a4 b c b
-  \override Stem #'neutral-direction = #up
+  \override Stem.neutral-direction = #up
   a4 b c b
-  \override Stem #'neutral-direction = #down
+  \override Stem.neutral-direction = #down
   a4 b c b
 }
index 3546a1ec0e30d1ac791be8d53a7e5ec490bf6d9f..88efc8c20f6c8bdca90cd4a1bf4edeab90fb6b8c 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.15.31
+%% Note: this file works from version 2.16.0
 \version "2.16.0"
 
 \header {
index 6045697b5a527a874d18576de89ed6402250231c..bdd354fce7da6280c378153fb7efa6942fc1d412 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings"
@@ -94,8 +94,7 @@ primeros = {
       \set Staff.stringTunings = #cuatroTuning
 %      \override FretBoard
 %        #'(fret-diagram-details string-count) = #'4
-      \override FretBoard
-        #'(fret-diagram-details finger-code) = #'in-dot
+      \override FretBoard.fret-diagram-details.finger-code = #'in-dot
       \primeros
     }
 
@@ -109,8 +108,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 7af25ba2be46e67eec3d8a07d3d910195441cb8e..86d0906e06a4227e2bd1b2180602d308ac2bcbac 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation, tweaks-and-overrides"
@@ -28,8 +28,8 @@ property has to be set, as shown on the second system in the example.
   \score {
     \new StaffGroup <<
       % Must be lower than the actual number of staff lines
-      \override StaffGroup.SystemStartBracket #'collapse-height = #1
-      \override Score.SystemStartBar #'collapse-height = #1
+      \override StaffGroup.SystemStartBracket.collapse-height = #1
+      \override Score.SystemStartBar.collapse-height = #1
       \new Staff {
         c'1
       }
@@ -39,8 +39,8 @@ property has to be set, as shown on the second system in the example.
   \null
   \score {
     \new PianoStaff <<
-      \override PianoStaff.SystemStartBrace #'collapse-height = #1
-      \override Score.SystemStartBar #'collapse-height = #1
+      \override PianoStaff.SystemStartBrace.collapse-height = #1
+      \override Score.SystemStartBar.collapse-height = #1
       \new Staff {
         c'1
       }
diff --git a/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly b/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly
new file mode 100644 (file)
index 0000000..d3de13e
--- /dev/null
@@ -0,0 +1,76 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.dsi.unimi.it
+%% Make any changes 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"
+
+\header {
+  lsrtags = "contexts-and-engravers"
+
+  texidoc = "
+In orchestral scores sometimes single or groups of instruments are
+silent for a while and their staves can be removed for that time (with
+@code{\\removeEmptyStaves}).
+
+
+When they play again it is often preferred to show the staves of all
+instruments of such a group. this can be done adding the
+@code{Keep_alive_together_engraver} in the grouper (e.g. a GrandStaff
+or a StaffGroup)
+
+
+In the example the violins are silent in the 2nd system and in the 3rd
+system. Only the first violin plays the last measure but the staff of
+the second violin is also displayed.
+
+"
+  doctitle = "Displaying a whole GrandStaff system if only one of its staves is alive"
+} % begin verbatim
+
+\score {
+  <<
+    \new StaffGroup = "StaffGroup_woodwinds"
+    <<
+      \new Staff = "Staff_flute" \with {
+        instrumentName = "Flute"
+        shortInstrumentName = "Fl"}
+        \relative { \repeat unfold 3 { c'4 c c c | c c c c | c c c c | \break }
+      }
+    >>
+    \new StaffGroup = "StaffGroup_Strings"
+    <<
+      \new GrandStaff = "GrandStaff_violins"
+      <<
+        \new Staff = "StaffViolinI" \with {
+          instrumentName = "Violin I"
+          shortInstrumentName = "Vi I"
+        }
+        \relative c'' {
+          a1 \repeat unfold 7 { s1 } \repeat unfold 12 a16  a4
+        }
+        \new Staff = "StaffViolinII" \with {
+          instrumentName = "Violin II"
+          shortInstrumentName = "Vi II"
+        }
+        \relative { e1 \repeat unfold 8 { s1 } }
+      >>
+      \new Staff = "Staff_cello" \with {
+        instrumentName = "Cello"
+        shortInstrumentName = "Ce"
+      }
+      \relative c { \clef bass \repeat unfold 9 { c1 }}
+    >>
+  >>
+}
+\layout {
+  \context {
+    \GrandStaff
+    \consists Keep_alive_together_engraver
+  }
+  \context {
+    \Staff
+    \RemoveEmptyStaves
+  }
+}
index 160093aac7ef987f032ae60ea36a7f36687149c6..902541ce0c8ccefebf086716c56a8d750eb105ee 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "chords, simultaneous-notes, workaround"
@@ -18,14 +18,14 @@ with different accidentals.
 } % begin verbatim
 
 fixA = {
-  \once \override Stem #'length = #9
+  \once \override Stem.length = #9
 }
 fixB = {
-  \once \override NoteHead #'X-offset = #1.7
-  \once \override Stem #'rotation = #'(45 0 0)
-  \once \override Stem #'extra-offset = #'(-0.2 . -0.2)
-  \once \override Flag #'style = #'no-flag
-  \once \override Accidental #'extra-offset = #'(4 . 0)
+  \once \override NoteHead.X-offset = #1.7
+  \once \override Stem.rotation = #'(45 0 0)
+  \once \override Stem.extra-offset = #'(-0.2 . -0.2)
+  \once \override Flag.style = #'no-flag
+  \once \override Accidental.extra-offset = #'(4 . 0)
 }
 
 \relative c' {
index 87d2da59f6294d002091b3067a93375b696d6f45..d6c8d46a2a2534599c2d762f3ae70d91b76de6ed 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \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 @}
 
 
@@ -114,9 +114,9 @@ NoteHead X,Y: NoteColumn
       (format-ancestry (get-ancestry grob) 0)))
 
 \relative c' {
-  \once \override NoteHead #'before-line-breaking = #display-ancestry
+  \once \override NoteHead.before-line-breaking = #display-ancestry
   f4
-  \once \override Accidental #'before-line-breaking = #display-ancestry
-  \once \override Arpeggio #'before-line-breaking = #display-ancestry
+  \once \override Accidental.before-line-breaking = #display-ancestry
+  \once \override Arpeggio.before-line-breaking = #display-ancestry
   <f as c>4\arpeggio
 }
index 2bddbf518c6a6db061623dae6a5bf8107cc94ee6..a95c7739b5bebaee032dd021cf4f38c4102c6703 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides"
@@ -19,19 +19,19 @@ arbitrary grob.
 
 
 \relative c'' {
-  \override TextScript #'stencil =
+  \override TextScript.stencil =
     #(make-stencil-boxer 0.1 0.3 ly:text-interface::print)
   c'4^"foo"
 
-  \override Stem #'stencil =
+  \override Stem.stencil =
     #(make-stencil-boxer 0.05 0.25 ly:stem::print)
-  \override Score.RehearsalMark  #'stencil =
+  \override Score.RehearsalMark.stencil =
     #(make-stencil-boxer 0.15 0.3 ly:text-interface::print)
   b8
 
-  \revert Stem #'stencil
+  \revert Stem.stencil
 
-  \revert Flag #'stencil
+  \revert Flag.stencil
   c4. c4
   \mark "F"
   c1
index b2dc749eb4b0633729002144f4aff450f4db4016..44cfe8c7a1f2f02f64942f28a19ca8df7fb58aa2 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -17,7 +17,7 @@ Here is how to circle a note.
 } % begin verbatim
 
 circle =
-\once \override NoteHead #'stencil = #(lambda (grob)
+\once \override NoteHead.stencil = #(lambda (grob)
     (let* ((note (ly:note-head::print grob))
            (combo-stencil (ly:stencil-add
                note
index f10fa4edc03b5956b5beccf0df86fa5aa8c29a50..196a3d8c81a5ccc935cf76a735d99ec12e880586 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides"
@@ -31,7 +31,7 @@ strategies for rehearsal marks and measure numbers.
       \circle \finger 2
     }
   }
-  \override Score.BarNumber #'break-visibility = #all-visible
-  \override Score.BarNumber #'stencil =
+  \override Score.BarNumber.break-visibility = #all-visible
+  \override Score.BarNumber.stencil =
     #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
 }
index b40a6cebd24b3f377275ebe17ec51c274d3ac156..e6b962a5577363ac5aef7cfb20e4f79279f7bebe 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -53,7 +53,7 @@ Beethoven, Op. 31, No. 3 Piano sonata 18, Movt II, Scherzo Measures 9 -
     |
     e'4-2
     r8
-    \once \override Script #'script-priority = #-100
+    \once \override Script.script-priority = #-100
     \afterGrace
     f'8 ( \trill ^ \markup { \finger "3-2" }
     { e'16 [ f'16 ] }
@@ -71,7 +71,7 @@ Beethoven, Op. 31, No. 3 Piano sonata 18, Movt II, Scherzo Measures 9 -
   \new Staff {
     \key af \major
     \clef treble
-    \override Fingering #'direction = #down
+    \override Fingering.direction = #down
     \set Staff.fingeringOrientations = #'(down)
     \partial 8
     <af' af>8 \staccato
index 24c2538cf9abb532d665de8bd4931404942cf334..76bf91d1ce127dde4f8ca20714f4861876e0e9eb 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -22,7 +22,7 @@ second number indicates the direction (1 = up, -1 = down).
 
 \relative c' {
   <c e g>2~ <c e g>
-  \override TieColumn #'tie-configuration =
+  \override TieColumn.tie-configuration =
     #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
   <c e g>2~ <c e g>
 }
index 4b9d07625a16f928a444e8015f35837fd8b2fff6..1338e8c1756b0e71bfe21795d0e30096f81070db 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "repeats, rhythms"
@@ -28,20 +28,20 @@ the @code{'gap} property.
 
 \relative c'' {
   \repeat tremolo 8 { a32 f }
-  \override Beam #'gap-count = #1
+  \override Beam.gap-count = #1
   \repeat tremolo 8 { a32 f }
-  \override Beam #'gap-count = #2
+  \override Beam.gap-count = #2
   \repeat tremolo 8 { a32 f }
-  \override Beam #'gap-count = #3
+  \override Beam.gap-count = #3
   \repeat tremolo 8 { a32 f }
 
-  \override Beam #'gap-count = #3
-  \override Beam #'gap = #1.33
+  \override Beam.gap-count = #3
+  \override Beam.gap = #1.33
   \repeat tremolo 8 { a32 f }
-  \override Beam #'gap = #1
+  \override Beam.gap = #1
   \repeat tremolo 8 { a32 f }
-  \override Beam #'gap = #0.67
+  \override Beam.gap = #0.67
   \repeat tremolo 8 { a32 f }
-  \override Beam #'gap = #0.33
+  \override Beam.gap = #0.33
   \repeat tremolo 8 { a32 f }
 }
index 6730fe41c9a1447c84442b8cf2a42b452e77ff7e..6f469e15c1ff1754c26934279612d082cfa97998 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -27,7 +27,7 @@ Expressive headword
 %\layout {
 %   \context {
 %      \Score
-%      \override SpacingSpanner #'base-shortest-duration =
+%      \override SpacingSpanner.base-shortest-duration =
 %         #(ly:make-moment 1 20)
 %   }
 %}
@@ -40,7 +40,7 @@ Expressive headword
       \key g \major
       \time 6/8
       \partial 2
-      \once \override TextScript #'staff-padding = #2
+      \once \override TextScript.staff-padding = #2
       d'8 \staccato
       ^ \markup { \column {
          RONDO
index 54cbf78449f2b19dd764f31c30602e610cd96c4a..7fa455694fa01f2a253471f6eb625fcfde5fca06 100644 (file)
@@ -1,5 +1,6 @@
 adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly
 adding-parentheses-around-an-expressive-mark-or-chordal-note.ly
+adding-timing-marks-to-long-glissandi.ly
 adjusting-the-shape-of-falls-and-doits.ly
 alternative-breve-note.ly
 asymmetric-slurs.ly
@@ -48,6 +49,7 @@ setting-hairpin-behavior-at-bar-lines.ly
 setting-the-minimum-length-of-hairpins.ly
 showing-the-same-articulation-above-and-below-a-note-or-chord.ly
 snap-pizzicato-or-bartok-pizzicato.ly
+using-a-tick-as-the-breath-mark-symbol.ly
 using-arpeggiobracket-to-make-divisi-more-visible.ly
 using-double-slurs-for-legato-chords.ly
 using-the-whiteout-property.ly
diff --git a/Documentation/snippets/extending-glissandi-across-repeats.ly b/Documentation/snippets/extending-glissandi-across-repeats.ly
new file mode 100644 (file)
index 0000000..4656fac
--- /dev/null
@@ -0,0 +1,70 @@
+% 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 = "staff-notation, tweaks-and-overrides"
+  texidoc = "
+A glissando which extends into several @code{\\alternative} blocks
+can be simulated by adding a hidden grace note with a glissando
+at the start of each @code{\\alternative} block.  The grace note
+should be at the same pitch as the note which starts the initial
+glissando.  This is implemented here with a music function which
+takes the pitch of the grace note as its argument.
+
+Note that in polyphonic music the grace note must be matched with
+corresponding grace notes in all other voices.
+"
+  doctitle = "Extending glissandi across repeats"
+} % begin verbatim
+
+
+repeatGliss = #(define-music-function (parser location grace)
+  (ly:pitch?)
+  #{
+    % the next two lines ensure the glissando is long enough
+    % to be visible
+    \once \override Glissando.springs-and-rods
+      = #ly:spanner::set-spacing-rods
+    \once \override Glissando.minimum-length = #3.5
+    \once \hideNotes
+    \grace $grace \glissando
+  #})
+
+\score {
+  \relative c'' {
+    \repeat volta 3 { c4 d e f\glissando }
+    \alternative {
+      { g2 d }
+      { \repeatGliss f g2 e }
+      { \repeatGliss f e2 d }
+    }
+  }
+}
+
+music =  \relative c' {
+  \voiceOne
+  \repeat volta 2 {
+    g a b c\glissando
+  }
+  \alternative {
+    { d1 }
+    { \repeatGliss c e1 }
+  }
+}
+
+\score {
+  \new StaffGroup <<
+    \new Staff <<
+      \context Voice { \clef "G_8" \music }
+    >>
+    \new TabStaff  <<
+      \context TabVoice { \clef "moderntab" \music }
+    >>
+  >>
+}
\ No newline at end of file
index fdf1803c22eb9dffe3b0e77d791e7271a7cb7a08..8b76e0204d938fa0f8990644f6b9a19060c51a7d 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -88,7 +88,7 @@ extendOff = \bassFigureExtendersOff
     \new FiguredBass \figuremode {
       \set figuredBassAlterationDirection = #RIGHT
       \set figuredBassPlusDirection = #RIGHT
-      \override BassFigureAlignment #'stacking-dir = #DOWN
+      \override BassFigureAlignment.stacking-dir = #DOWN
       s8 |
       s4 <6>4 <_+>4 <6>4 |
       <6 4\+ 2>8 <6>8 <_+> s8 s2 |
@@ -104,9 +104,9 @@ extendOff = \bassFigureExtendersOff
   \layout {
     \context {
       \Score
-      \override RehearsalMark #'break-align-symbols = #'(time-signature)
-      \override RehearsalMark #'self-alignment-X = #LEFT
-      \override TimeSignature #'break-align-anchor-alignment = #LEFT
+      \override RehearsalMark.break-align-symbols = #'(time-signature)
+      \override RehearsalMark.self-alignment-X = #LEFT
+      \override TimeSignature.break-align-anchor-alignment = #LEFT
     }
   }
 }
index 547d1e8037f01b93a826a669f7b22e2587e8c256..b9cdf44f71750fde290969b73b07892672c6ecee 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "keyboards, tweaks-and-overrides"
@@ -21,10 +21,10 @@ The appearance of pedal brackets may be altered in different ways.
 \relative c'' {
   c2\sostenutoOn c
   c2\sostenutoOff c
-  \once \override Staff.PianoPedalBracket #'shorten-pair = #'(-7 . -2)
+  \once \override Staff.PianoPedalBracket.shorten-pair = #'(-7 . -2)
   c2\sostenutoOn c
   c2\sostenutoOff c
-  \once \override Staff.PianoPedalBracket #'edge-height = #'(0 . 3)
+  \once \override Staff.PianoPedalBracket.edge-height = #'(0 . 3)
   c2\sostenutoOn c
   c2\sostenutoOff c
 }
index 15ebe07c1d4f792b9eaa400cf841108e3af0a190..e4ea09092fa0cddc632e2df4394ad8c2067a735a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "symbols-and-glyphs, winds"
@@ -18,8 +18,8 @@ useful for wind instruments.
 } % begin verbatim
 
 centermarkup = {
-  \once \override TextScript #'self-alignment-X = #CENTER
-  \once \override TextScript #'X-offset =#(ly:make-simple-closure
+  \once \override TextScript.self-alignment-X = #CENTER
+  \once \override TextScript.X-offset =#(ly:make-simple-closure
     `(,+
       ,(ly:make-simple-closure (list
         ly:self-alignment-interface::centered-on-x-parent))
@@ -30,7 +30,7 @@ centermarkup = {
 {\relative c'
   {
     g\open
-    \once \override TextScript #'staff-padding = #-1.0 \centermarkup
+    \once \override TextScript.staff-padding = #-1.0 \centermarkup
     g^\markup{\combine \musicglyph #"scripts.open" \musicglyph
     #"scripts.tenuto"}
     \centermarkup g^\markup{\combine \musicglyph #"scripts.open"
index eeede2855cd59bfb3a48f6944d722a275eb76142..b24c847840e6f7a88b577dad8ab635367c80b6b9 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings, specific-notation, stylesheet, version-specific"
@@ -97,30 +97,30 @@ xDown = \markup { \column { \small x \line { \strokeDown } } }
 
 % Just handy :)
 tupletOff = {
-  \once \override TupletNumber #'stencil = ##f
-  \once \override TupletBracket #'stencil = ##f
+  \once \override TupletNumber.stencil = ##f
+  \once \override TupletBracket.stencil = ##f
 }
 
 tupletsOff = {
-  \override TupletNumber #'stencil = ##f
-  \override TupletBracket #'bracket-visibility = #'if-no-beam
+  \override TupletNumber.stencil = ##f
+  \override TupletBracket.bracket-visibility = #'if-no-beam
 }
 
 tupletsOn = {
-  \override TupletBracket #'bracket-visibility = #'default
-  \revert TupletNumber #'stencil
+  \override TupletBracket.bracket-visibility = #'default
+  \revert TupletNumber.stencil
 }
 
 headsOff = {
-  \override TabNoteHead #'transparent = ##t
-  \override NoteHead #'transparent = ##t
-  \override NoteHead #'no-ledgers = ##t
+  \override TabNoteHead.transparent = ##t
+  \override NoteHead.transparent = ##t
+  \override NoteHead.no-ledgers = ##t
 }
 
 headsOn = {
-  \override TabNoteHead #'transparent = ##f
-  \override NoteHead #'transparent = ##f
-  \override NoteHead #'no-ledgers = ##f
+  \override TabNoteHead.transparent = ##f
+  \override NoteHead.transparent = ##f
+  \override NoteHead.no-ledgers = ##f
 }
 
 %%%%%%%  Cut here ----- End 'flamenco.ly'
@@ -193,7 +193,7 @@ part = \relative c' {
   }
 
   \tupletsOff
-  \override Beam #'positions = #'(2 . 2)
+  \override Beam.positions = #'(2 . 2)
   \times 2/3 {
     a8^\markup{ \small p }
     <e' a>^\strokeUpGolpe
@@ -216,7 +216,7 @@ part = \relative c' {
   }
   \tupletsOn
 
-  \once \override TextScript #'extra-offset = #'(0 . -1)
+  \once \override TextScript.extra-offset = #'(0 . -1)
   <g, b f'>1_\golpe^\mUp
   \bar "|."
 }
index b239a2036d266a37a4e5982a6b0cd31d310bcee2..fb387f9b69d739bdaede5326c280368a491d9979 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contemporary-notation, winds"
@@ -22,11 +22,11 @@ glyph.
 slap =
 #(define-music-function (parser location music) (ly:music?)
 #{
-  \override NoteHead #'stencil =
+  \override NoteHead.stencil =
   #(lambda (grob)
      (grob-interpret-markup grob
       (markup #:musicglyph "scripts.sforzato")))
-  \override NoteHead #'stem-attachment =
+  \override NoteHead.stem-attachment =
   #(lambda (grob)
      (let* ((thickness (ly:staff-symbol-line-thickness grob))
             (stem (ly:grob-object grob 'stem))
@@ -36,8 +36,8 @@ slap =
                       0)
                   (/ thickness 2)))))
   $music
-  \revert NoteHead #'stencil
-  \revert NoteHead #'stem-attachment
+  \revert NoteHead.stencil
+  \revert NoteHead.stem-attachment
 #})
 
 \relative c' {
index ce8072932cc059cd8710839460d28b300b67b1ce..e2413c73b20d20d72d420b530673904820e34e88 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "simultaneous-notes, tweaks-and-overrides"
@@ -26,7 +26,7 @@ are staff spaces.
   \\
   {
     <b f'>2
-    \once \override NoteColumn #'force-hshift = #1.7
+    \once \override NoteColumn.force-hshift = #1.7
     <b f'>2
   }
 >>
index 33545ccb6e39f464bb0d4d8758386d695dddf803..6ab4f3706fd8c802af1ccb10a13c4d51a19e3053 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "vocal-music"
@@ -27,10 +27,10 @@ omitted.  The behaviour can be overridden with the
 }
 \addlyrics {
   syl -- lab word word
-  \override LyricHyphen #'minimum-distance = #1.0
+  \override LyricHyphen.minimum-distance = #1.0
   syl -- lab word word
-  \override LyricHyphen #'minimum-distance = #2.0
+  \override LyricHyphen.minimum-distance = #2.0
   syl -- lab word word
-  \revert LyricHyphen #'minimum-distance
+  \revert LyricHyphen.minimum-distance
   syl -- lab word word
 }
index 217c235be48ceb62e3ed34cba6ea50fc87e6bbcb..244eefef50812637844cdd2bf70420ef47fd75a4 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation, workaround"
@@ -38,6 +38,6 @@ example = {
   R1
   R1
 
-  \override Score.MetronomeMark #'extra-spacing-width = #'(0 . 0)
+  \override Score.MetronomeMark.extra-spacing-width = #'(0 . 0)
   \example
 }
index 0371ee117220fe9e3117bcc67704d5dece94dc55..7ae4dead641cf49548a3ddc6de5cebed34c8ff6a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings, tweaks-and-overrides"
@@ -29,10 +29,9 @@ diagrams.
   \new Voice = "mel" {
     \textLengthOn
     % Set global properties of fret diagram
-    \override TextScript #'size = #1.2
-    \override TextScript
-      #'fret-diagram-details #'finger-code = #'below-string
-    \override TextScript #'fret-diagram-details #'dot-color = #'black
+    \override TextScript.size = #1.2
+    \override TextScript.fret-diagram-details.finger-code = #'below-string
+    \override TextScript.fret-diagram-details.dot-color = #'black
 
     %% A chord for ukulele
     a'2^\markup {
@@ -154,8 +153,7 @@ diagrams.
     }
 
       % These chords will be in landscape orientation
-    \override TextScript
-       #'fret-diagram-details #'orientation = #'landscape
+    \override TextScript.fret-diagram-details.orientation = #'landscape
 
     %% C major for guitar, barred on third fret
     %  verbose style
@@ -253,8 +251,7 @@ diagrams.
     }
 
       % These chords will be in opposing-landscape orientation
-    \override TextScript #'fret-diagram-details
-                           #'orientation = #'opposing-landscape
+    \override TextScript.fret-diagram-details.orientation = #'opposing-landscape
 
     %% C major for guitar, barred on third fret
     %  verbose style
index 0975f55757f9b11f6d2d52a18168fd974d467860..934925104404873a9f4c76236a56a154d5097ace 100644 (file)
@@ -4,13 +4,13 @@
 % and then run scripts/auxiliar/makelsr.py
 %
 % This file is in the public domain.
-%% Note: this file works from version 2.15.18
+%% Note: this file works from version 2.17.6
 % INSPIRATIONAL HEADER FOR LILYPOND DOCUMENTATION fretted-strings %
 % Passage from Johann Kaspar Mertz "Opern Revue, Op. 8, no. 17"   %
 % on melodies from Bellini's "Norma"                              %
 %*****************************************************************%
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -43,7 +43,7 @@ ssnor = \set stringNumberOrientations = #'(right)
 % define fingering offset
 FO = #(define-music-function (parser location offsetX offsetY) (number? number?)
 #{
-  \once \override Voice.Fingering #'extra-offset = #(cons offsetX offsetY)
+  \once \override Voice.Fingering.extra-offset = #(cons offsetX offsetY)
 #})
 
 % markups
@@ -115,7 +115,7 @@ bass = \relative c {
 
   %% new section starts here in A minor
   \set Score.beamExceptions = #'()
-  \once \override TextScript #'staff-padding = #1.7
+  \once \override TextScript.staff-padding = #1.7
   \times 2/3 { a8\p^\andantino e' a c a e a, e' a c a e } | % m. 5
 
   \times 2/3 { a,8\pdolce e' a c a e } % beg m. 6
@@ -141,9 +141,9 @@ bass = \relative c {
   \layout {
     \context {
       \Score
-      \override Fingering #'staff-padding = #'()
-      \override TupletNumber #'stencil = ##f
-      \override TupletBracket #'bracket-visibility = ##f
+      \override Fingering.staff-padding = #'()
+      \override TupletNumber.stencil = ##f
+      \override TupletBracket.bracket-visibility = ##f
     }
   }
   \midi { }
index 8cb311a1a0eed7faa037eaf74f9cd74ad17597f3..a62c85dddd4ee385dbb7fbc438933ea3c52acf4c 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings"
@@ -18,15 +18,15 @@ Demonstrates fretted-string harmonics in tablature
 
 pinchedHarmonics = {
    \textSpannerDown
-   \override TextSpanner #'bound-details #'left #'text =
+   \override TextSpanner.bound-details.left.text =
       \markup {\halign #-0.5 \teeny "PH" }
-      \override TextSpanner #'style =
+      \override TextSpanner.style =
          #'dashed-line
-   \override TextSpanner #'dash-period = #0.6
-   \override TextSpanner #'bound-details #'right #'attach-dir = #1
-   \override TextSpanner #'bound-details #'right #'text =
+   \override TextSpanner.dash-period = #0.6
+   \override TextSpanner.bound-details.right.attach-dir = #1
+   \override TextSpanner.bound-details.right.text =
       \markup { \draw-line #'(0 . 1) }
-   \override TextSpanner #'bound-details #'right #'padding = #-0.5
+   \override TextSpanner.bound-details.right.padding = #-0.5
 }
 
 harmonics = {
index 1bf3b229793ec9224319e83b88315b53f3d6c1a6..99579b27f46d418c2ab24f4ae7f68c0715550c9e 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.15.15
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -50,20 +50,20 @@ function to generate the glyph for the flag.
 snippetexamplenotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64 }
 
 {
-  \override Score.RehearsalMark #'self-alignment-X = #LEFT
+  \override Score.RehearsalMark.self-alignment-X = #LEFT
   \time 1/4
   \mark "Normal flags"
   \snippetexamplenotes
 
   \mark "Custom flag: inverted"
-  \override Flag #'stencil = #inverted-flag
+  \override Flag.stencil = #inverted-flag
   \snippetexamplenotes
 
   \mark "Custom flag: weight"
-  \override Flag #'stencil = #weight-flag
+  \override Flag.stencil = #weight-flag
   \snippetexamplenotes
 
   \mark "Revert to normal"
-  \revert Flag #'stencil
+  \revert Flag.stencil
   \snippetexamplenotes
 }
index 20930095215a9475a31f10e030e6c04c7c0a3a15..af7d81868d807c443683a6388c3c3ce47c1af727 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "pitches, really-cool, scheme-language"
index c2182e123a3130279d1910ca41e18d86e5949b07..ab86d893393b1b9aa603bc72e11986ee6c7abf9e 100644 (file)
@@ -98,9 +98,8 @@ modified to inser all collected scores so far to the book.
             (set! pitch (modulo (1+ pitch) 7)))))
 
 oneNoteScore =
-#(define-music-function (parser location) ()
-   (add-one-note-score parser)
-   (make-music 'Music 'void #t))
+#(define-void-function (parser location) ()
+   (add-one-note-score parser))
 
 %%%
 
index f58120b2d52b0d867a99fb56c150268d85a6ed9e..32caca079cb857828d4ccf2ab0a8e9a8597b5eb3 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.15.12
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, staff-notation, tweaks-and-overrides"
@@ -16,6 +16,6 @@
 
 \relative c' {
   a2 \glissando
-  \once \override NoteColumn #'glissando-skip = ##t
+  \once \override NoteColumn.glissando-skip = ##t
   f''4 d,
 }
index 2b69748857233465575107f61694770db3cc36ab..abb031df093b1fbf27fb2d166a4b783351daf401 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -29,16 +29,16 @@ properties.
     \new Staff {
       \relative c {
         % this moves them up one staff space from the default position
-        \override Score.GridLine #'extra-offset = #'(0.0 . 1.0)
+        \override Score.GridLine.extra-offset = #'(0.0 . 1.0)
         \stemDown
         \clef bass
-        \once \override Score.GridLine #'thickness = #5.0
+        \once \override Score.GridLine.thickness = #5.0
         c4
-        \once \override Score.GridLine #'thickness = #1.0
+        \once \override Score.GridLine.thickness = #1.0
         g'4
-        \once \override Score.GridLine #'thickness = #3.0
+        \once \override Score.GridLine.thickness = #3.0
         f4
-        \once \override Score.GridLine #'thickness = #5.0
+        \once \override Score.GridLine.thickness = #5.0
         e4
       }
     }
@@ -55,7 +55,7 @@ properties.
       \Score
       \consists "Grid_line_span_engraver"
       % this moves them to the right half a staff space
-      \override NoteColumn #'X-offset = #-0.5
+      \override NoteColumn.X-offset = #-0.5
     }
   }
 }
index 52e4c45d94e7c77cf5ba7bf52a4f34109ae76d51..cd425b79cb2544611efe416778aa8ed5e7ff55fe 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -31,19 +31,19 @@ this snippet.
       \new Staff {
         % hides staff and notes so that only the grid lines are visible
         \hideNotes
-        \override Staff.BarLine #'transparent = ##t
-        \override Staff.StaffSymbol #'line-count = #0
-        \override Staff.TimeSignature #'transparent = ##t
-        \override Staff.Clef #'transparent = ##t
+        \override Staff.BarLine.transparent = ##t
+        \override Staff.StaffSymbol.line-count = #0
+        \override Staff.TimeSignature.transparent = ##t
+        \override Staff.Clef.transparent = ##t
 
         % dummy notes to force regular note spacing
-        \once  \override Score.GridLine #'thickness = #4.0
+        \once  \override Score.GridLine.thickness = #4.0
         c8 c c
-        \once  \override Score.GridLine #'thickness = #3.0
+        \once  \override Score.GridLine.thickness = #3.0
         c8 c c
-        \once  \override Score.GridLine #'thickness = #4.0
+        \once  \override Score.GridLine.thickness = #4.0
         c8 c c
-        \once  \override Score.GridLine #'thickness = #3.0
+        \once  \override Score.GridLine.thickness = #3.0
         c8 c c
       }
     >>
@@ -53,7 +53,7 @@ this snippet.
       \Score
       \consists "Grid_line_span_engraver"
       % center grid lines horizontally below note heads
-      \override NoteColumn #'X-offset = #-0.5
+      \override NoteColumn.X-offset = #-0.5
     }
     \context {
       \Staff
@@ -62,7 +62,7 @@ this snippet.
       % set line length and positioning:
       % two staff spaces above center line on hidden staff
       % to four spaces below center line on visible staff
-      \override GridPoint #'Y-extent = #'(2 . -4)
+      \override GridPoint.Y-extent = #'(2 . -4)
     }
     ragged-right = ##t
   }
index dd1cbd8d03315ae4480561c1a3c50ad105794839..710f1afb98efb34a7a79ec0da9dc84dc79c00430 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.15.10
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings"
@@ -23,12 +23,12 @@ in the following example.
 %% Hide fret number: useful to draw slide into/from a casual point of
 %% the fretboard.
 hideFretNumber = {
-  \once \override TabNoteHead #'transparent = ##t
-  \once \override NoteHead #'transparent = ##t
-  \once \override Stem #'transparent = ##t
-  \once \override Flag #'transparent = ##t
-  \once \override NoteHead #'no-ledgers = ##t
-  \once \override Glissando #'(bound-details left padding) = #0.3
+  \once \override TabNoteHead.transparent = ##t
+  \once \override NoteHead.transparent = ##t
+  \once \override Stem.transparent = ##t
+  \once \override Flag.transparent = ##t
+  \once \override NoteHead.no-ledgers = ##t
+  \once \override Glissando.bound-details.left.padding = #0.3
 }
 
 music= \relative c' {
index e77b94296c2cd20569d8a81e506a6e5474454a39..ebfcda051323494a825a957fc9d52209c452a18a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -20,16 +20,16 @@ dotted-line, line, trill or zigzag.
 
 \relative c' {
   c2\< c\!
-  \override Hairpin #'style = #'dashed-line
+  \override Hairpin.style = #'dashed-line
   c2\< c\!
-  \override Hairpin #'style = #'dotted-line
+  \override Hairpin.style = #'dotted-line
   c2\< c\!
-  \override Hairpin #'style = #'line
+  \override Hairpin.style = #'line
   c2\< c\!
-  \override Hairpin #'style = #'trill
+  \override Hairpin.style = #'trill
   c2\< c\!
-  \override Hairpin #'style = #'zigzag
+  \override Hairpin.style = #'zigzag
   c2\< c\!
-  \revert Hairpin #'style
+  \revert Hairpin.style
   c2\< c\!
 }
index e85878da1e779f43c8db4b29eb7e1785a014ce22..f8fdea629f4573e5b5a1d27232a4c9a8edb29555 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contemporary-notation, percussion, real-music, rhythms"
@@ -39,7 +39,7 @@ melody = \relative c'' {
   \set Staff.instrumentName = #"Bb Sop."
   \key g \major
   \time #'(3 2 2 3 2 2 2 2 3 2 2) 25/8
-  \override Staff.TimeSignature #'stencil =
+  \override Staff.TimeSignature.stencil =
     #(custom-time-signature "3" "2" "2" "3" "2" "2"
       "2" "2" "3" "2" "2" "8")
   c8 c c d4 c8 c b c b a4 g fis8 e d c b' c d e4-^ fis8 g \break
@@ -50,8 +50,8 @@ melody = \relative c'' {
 }
 
 drum = \new DrumStaff \drummode {
-  \bar "|:" bd4.^\markup { Drums } sn4 bd \bar ":" sn4.
-  bd4 sn \bar ":" bd sn bd4. sn4 bd \bar ":|"
+  \bar ".|:" bd4.^\markup { Drums } sn4 bd \bar ";" sn4.
+  bd4 sn \bar ";" bd sn bd4. sn4 bd \bar ":|."
 }
 
 {
index c4e19591958406470aeec83f4977a5c8c6bd59ed..1c3c4ea4ea590867214e11a58917e8ad840b1301 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "pitches"
@@ -18,7 +18,7 @@ system.
 } % begin verbatim
 
 \relative c'' {
-  \override Accidental #'hide-tied-accidental-after-break = ##t
+  \override Accidental.hide-tied-accidental-after-break = ##t
   cis1~ cis~
   \break
   cis
index 1df5ec0bf40d7d69da645b29c9993c39f0380d9a..682e2d5421e3f4db6d64481b1bfaf7bfac35ad81 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks"
@@ -20,7 +20,7 @@ following way:
 
 
 \relative c'' {
-  \override DynamicTextSpanner #'style = #'none
+  \override DynamicTextSpanner.style = #'none
   \crescTextCresc
   c1\< | d | b | c\!
 }
index 79423f16588dc4532702931d2c6380f9a4060a1a..483692c6db549e732e7039dbacfaaa5d89ffe420 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "correction-wanted, expressive-marks, tweaks-and-overrides, version-specific"
@@ -17,7 +17,7 @@ displayed way after the note it applies to.
 To correctly align the @qq{sempre pp} horizontally, so that it is
 aligned as if it were only the \\pp, there are several approaches:
 
-* Simply use @code{\\once\\override DynamicText #'X-offset = #-9.2}
+* Simply use @code{\\once\\override DynamicText.X-offset = #-9.2}
 before the note with the dynamics to manually shift it to the correct
 position. Drawback: This has to be done manually each time you use that
 dynamic markup... * Add some padding (@code{#:hspace 7.1}) into the
@@ -137,10 +137,10 @@ semppMII =
     \set Staff.instrumentName = \markup \column { Explicit shifting }
     \relative c'' {
       \key es \major
-      \once \override DynamicText #'X-offset = #-9.2
+      \once \override DynamicText.X-offset = #-9.2
       c4\semppK c\p c c
       c4\ff c
-      \once \override DynamicText #'X-offset = #-9.2
+      \once \override DynamicText.X-offset = #-9.2
       c4\semppK c
     }
   >>
@@ -170,7 +170,7 @@ semppMII =
     \relative c'' {
       \key es \major
       % Setting to ##f (false) gives the same result
-      \override DynamicText #'X-offset = #0
+      \override DynamicText.X-offset = #0
       c4\semppMII c\p c c | c\ff c c\semppMII c
     }
   >>
index c241b7f6afc1885153e408d17a7fe29667a0c2da..cbcd2bc9c724c931b57be795526ef4f3feb74547 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings, specific-notation, tweaks-and-overrides"
@@ -34,7 +34,7 @@ harmonies = \chordmode
 {
   a8:13
 % THE FOLLOWING IS THE COMMAND TO MOVE THE CHORD NAME
-  \once \override ChordNames.ChordName #'extra-offset = #'(10 . 0)
+  \once \override ChordNames.ChordName.extra-offset = #'(10 . 0)
   b8:13 s2.
 % THIS LINE IS THE SECOND METHOD
     s4 s4  b4:13
@@ -47,7 +47,7 @@ harmonies = \chordmode
     \context Staff
     {a8^\markup { \fret-diagram  #"6-x;5-0;4-2;3-0;2-0;1-2;"  }
 % THE FOLLOWING IS THE COMMAND TO MOVE THE FRET DIAGRAM
-     \once \override TextScript #'extra-offset = #'(10 . 0)
+     \once \override TextScript.extra-offset = #'(10 . 0)
      b4.~^\markup { \fret-diagram  #"6-x;5-2;4-4;3-2;2-2;1-4;"  } b4. a8\break
 % HERE IS THE SECOND METHOD
      <<
index 72d4a9b1016e5183327a62c53b3f55010d91bb66..e7eb16dda18ac6cf6d8eb8a4f2cc08e6bc7b38df 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks, staff-notation, tweaks-and-overrides"
@@ -39,16 +39,16 @@ box of the mark from its original value.
 
 \relative c'{
     c d e f |
-    \once \override Score.RehearsalMark #'extra-offset = #'(0 . -8.5)
-    \once \override Score.RehearsalMark #'baseline-skip = #9
+    \once \override Score.RehearsalMark.extra-offset = #'(0 . -8.5)
+    \once \override Score.RehearsalMark.baseline-skip = #9
     \mark \markup \center-column { \circle 1 \box A }
     g f e d |
-    \once \override Score.RehearsalMark #'extra-offset = #'(0 . -8.5)
-    \once \override Score.RehearsalMark #'baseline-skip = #9
+    \once \override Score.RehearsalMark.extra-offset = #'(0 . -8.5)
+    \once \override Score.RehearsalMark.baseline-skip = #9
     \mark \markup \center-column { \flat { \bold \small \italic Fine. } }
     g f e d |
-    \once \override Score.RehearsalMark #'extra-offset = #'(0 . -8.5)
-    \once \override Score.RehearsalMark #'baseline-skip = #9
-    \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
+    \once \override Score.RehearsalMark.extra-offset = #'(0 . -8.5)
+    \once \override Score.RehearsalMark.baseline-skip = #9
+    \override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
     \mark \markup \center-column { \musicglyph #"scripts.ufermata" \box z }
 }
index 80a56e227e5338159355ea7a6899813163eb1696..12d760f3ff1e1c2fd50bdb34e9ce9ad665468246 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks, staff-notation, tweaks-and-overrides"
@@ -30,7 +30,7 @@ independently of the other.
     \new Staff {
       <<
         \new Voice \with {
-          \consists "Mark_engraver"
+          \consists Mark_engraver
           \consists "Staff_collecting_engraver"
         }
         { c4 d e f
@@ -38,9 +38,9 @@ independently of the other.
           c4 d e f
         }
         \new Voice \with {
-          \consists "Mark_engraver"
+          \consists Mark_engraver
           \consists "Staff_collecting_engraver"
-          \override RehearsalMark #'direction = #DOWN
+          \override RehearsalMark.direction = #DOWN
         }
         { s4 s s s
           \mark \markup { \circle 1 }
index 075cd35840cc1e8a5624d208ffc78ac2211fff2a..e6e295348ef7ed41ad5ce2d33bb6f0a0d0f334f9 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.15.42
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation, ancient-notation, really-cool"
@@ -20,13 +20,13 @@ separate the instrument name definition and the incipit definition.
 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 = #UP
-    \once \override Staff.InstrumentName #'Y-offset =
+    \once \override Staff.InstrumentName.self-alignment-X = #RIGHT
+    \once \override Staff.InstrumentName.self-alignment-Y = #UP
+    \once \override Staff.InstrumentName.Y-offset =
       #(lambda (grob)
          (+ 4 (system-start-text::calc-y-offset grob)))
-    \once \override Staff.InstrumentName #'padding = #0.3
-    \once \override Staff.InstrumentName #'stencil =
+    \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)
@@ -35,8 +35,7 @@ incipit =
                         {
                           { \context MensuralStaff \with {
                                instrumentName = #instrument-name
-                               \override VerticalAxisGroup
-                                #'Y-extent = #'(-4 . 4)
+                               \override VerticalAxisGroup.Y-extent = #'(-4 . 4)
                             } $incipit-music
                           }
                           \layout { $(ly:grob-layout grob)
@@ -67,7 +66,7 @@ global = {
   \skip 1*8
 
   % let finis bar go through all staves
-  \override Staff.BarLine #'transparent = ##f
+  \override Staff.BarLine.transparent = ##f
 
   % finis bar
   \bar "|."
@@ -94,7 +93,7 @@ discantusNotes = {
     c'4 e'4.( d'8 c' b |
     a4) b a2 |
     b4.( c'8 d'4) c'4 |
-    \once \override NoteHead #'transparent = ##t
+    \once \override NoteHead.transparent = ##t
     c'1 |
     b\breve |
   }
@@ -131,7 +130,7 @@ altusNotes = {
     a2 g4 e |
     fis g4.( fis16 e fis4) |
     g1 |
-    \once \override NoteHead #'transparent = ##t
+    \once \override NoteHead.transparent = ##t
     g1 |
     g\breve |
   }
@@ -169,7 +168,7 @@ tenorNotes = {
     R1 |
     % two measures
     r2 d'2. d'4 b e' |
-    \once \override NoteHead #'transparent = ##t
+    \once \override NoteHead.transparent = ##t
     e'1 |
     d'\breve |
   }
@@ -205,7 +204,7 @@ bassusNotes = {
     R1 |
     R1 |
     g2. e4 |
-    \once \override NoteHead #'transparent = ##t
+    \once \override NoteHead.transparent = ##t
     e1 |
     g\breve |
   }
@@ -254,7 +253,7 @@ bassusLyrics = \lyricmode {
     \context {
       \Score
       %% no bar lines in staves or lyrics
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
     }
     %% the next two instructions keep the lyrics between the bar lines
     \context {
@@ -265,7 +264,7 @@ bassusLyrics = \lyricmode {
     \context {
       \Voice
       %% no slurs
-      \override Slur #'transparent = ##t
+      \override Slur.transparent = ##t
       %% 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
index 0452647221f52d1d83c0fdfc9f8c20afc11969a5..bbb2f9fbd6b03ca3d9aa619d0d2ecaba3dcce8d5 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "keyboards, real-music"
@@ -26,7 +26,7 @@ context.
 
 \new PianoStaff <<
   \set PianoStaff.connectArpeggios = ##t
-  \override PianoStaff.Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket
+  \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
   \new Staff {
     \relative c' {
       \key b \major
index 2789bce283664f3d204c07e4cce0f2132d69071d..c8378a2f1da094584efeb517d7d55663c64ffbc4 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -20,12 +20,12 @@ available.
 
 
 \relative c'' {
-  \override BreathingSign #'text = \markup {
+  \override BreathingSign.text = \markup {
     \musicglyph #"scripts.caesura.straight"
   }
   c8 e4. \breathe g8. e16 c4
 
-  \override BreathingSign #'text = \markup {
+  \override BreathingSign.text = \markup {
     \musicglyph #"scripts.caesura.curved"
   }
   g8 e'4. \breathe g8. e16 c4
index ff917606a4fd2735a698cbc7ac26fcf759ad6d77..ecfa7748bdc13e919798372793763d3d6d8479a0 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.15.15
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "keyboards, percussion, fretted-strings, template, real-music"
@@ -41,17 +41,17 @@ music is within a @code{\\transpose} section.
 %%%%%%%%%%%% Some macros %%%%%%%%%%%%%%%%%%%
 
 sl = {
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
 }
 nsl = {
-  \revert NoteHead #'style
-  \revert Stem #'transparent
-  \revert Flag #'transparent
+  \revert NoteHead.style
+  \revert Stem.transparent
+  \revert Flag.transparent
 }
-crOn = \override NoteHead #'style = #'cross
-crOff = \revert NoteHead #'style
+crOn = \override NoteHead.style = #'cross
+crOff = \revert NoteHead.style
 
 %% insert chord name style stuff here.
 
@@ -272,8 +272,8 @@ drumContents = {
     \context { \Staff \RemoveEmptyStaves }
     \context {
       \Score
-      \override BarNumber #'padding = #3
-      \override RehearsalMark #'padding = #2
+      \override BarNumber.padding = #3
+      \override RehearsalMark.padding = #2
       skipBars = ##t
     }
   }
index 04c569fd159dacac147696fe8ff3220282a9091e..150474729739106b2e9346033ece701b7c7db1f0 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "pitches, tweaks-and-overrides"
@@ -25,12 +25,12 @@ initial clef.  This can be overridden with @code{full-size-change}.
   c1
   \clef "treble"
   c1
-  \override Staff.Clef #'full-size-change = ##t
+  \override Staff.Clef.full-size-change = ##t
   \clef "bass"
   c1
   \clef "treble"
   c1
-  \revert Staff.Clef #'full-size-change
+  \revert Staff.Clef.full-size-change
   \clef "bass"
   c1
   \clef "treble"
index 8523dd6a8c54e477bed34165ea3f1785ea3695cf..ffc7a1e5626144b40adb7381d2a363fa604adf36 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -85,13 +85,13 @@ fermataLong = \markup {
     >>
     \clef bass
     <ds b! es'>4 ( ^ \markup \bold { Rall. }
-    \override Script #'stencil = #(lambda (grob)
+    \override Script.stencil = #(lambda (grob)
       (grob-interpret-markup grob fermataLong))
     <ds' as'>8 ) \fermata
     \noBeam
     \clef treble
     \slurUp
-    \once \override Hairpin #'to-barline = ##f
+    \once \override Hairpin.to-barline = ##f
     <as fs'>8 ( \pp \>
     |
     <gs b cs'>4. \! ) ^\markup \bold { a Tempo }
@@ -132,19 +132,19 @@ fermataLong = \markup {
         |
         s4. \!
         \slurUp
-        \once \override Script #'direction = #UP
+        \once \override Script.direction = #UP
         <a bs e'>8 ( \accent
         |
         <as! cs' gs'>4. )
-        \once \override Hairpin #'to-barline = ##f
+        \once \override Hairpin.to-barline = ##f
         <a' bs'>8 \ppp \>
         |
         s8 \!
         \stemDown
-        \once \override Script #'direction = #UP
+        \once \override Script.direction = #UP
         \ottava #1
         \voiceOne
-        \once \override PianoStaff.Arpeggio #'padding = #0.8
+        \once \override PianoStaff.Arpeggio.padding = #0.8
         <cs''' as''' cs''''>4. \arpeggio \fermata
         \ottava #0
         \bar "|."
@@ -219,8 +219,8 @@ fermataLong = \markup {
       cs'8
       < ds as >8 ] )
       |
-      \once \override Script #'outside-staff-priority = #100
-      \once \override TextScript #'outside-staff-priority = #500
+      \once \override Script.outside-staff-priority = #100
+      \once \override TextScript.outside-staff-priority = #500
       <cs, gs,>4. \fermata _\markup \italic { ped. }
       <fs, cs>8 (
       |
index bfc4f1600e790ec7dac00b9377674952199e1936..d125dc80386fea60213aa6d6d411ac5db08ba80e 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "connecting-notes, contemporary-notation, expressive-marks, fretted-strings, keyboards, specific-notation"
@@ -23,7 +23,7 @@ using @code{'tie-configuration}.
   <c d f g>4\laissezVibrer r <c d f g>4.\laissezVibrer r8
 
   <c d e f>4\laissezVibrer r
-  \override LaissezVibrerTieColumn #'tie-configuration
+  \override LaissezVibrerTieColumn.tie-configuration
      = #`((-7 . ,DOWN)
           (-5 . ,DOWN)
           (-3 . ,UP)
index 3bc9a105ac982fb94f490fc68e15f59af2ca5384..93086da94c1aae14b51da5f788c2c52e00eb0896 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -19,19 +19,19 @@ Glissando).
 
 
 \relative c'' {
-  \override TextSpanner #'bound-padding = #1.0
-  \override TextSpanner #'style = #'line
-  \override TextSpanner #'(bound-details right arrow) = ##t
-  \override TextSpanner #'(bound-details left text) = #"fof"
-  \override TextSpanner #'(bound-details right text) = #"gag"
-  \override TextSpanner #'(bound-details right padding) = #0.6
-
-  \override TextSpanner #'(bound-details right stencil-align-dir-y) = #CENTER
-  \override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER
-
-  \override Glissando #'(bound-details right arrow) = ##t
-  \override Glissando #'arrow-length = #0.5
-  \override Glissando #'arrow-width = #0.25
+  \override TextSpanner.bound-padding = #1.0
+  \override TextSpanner.style = #'line
+  \override TextSpanner.bound-details.right.arrow = ##t
+  \override TextSpanner.bound-details.left.text = #"fof"
+  \override TextSpanner.bound-details.right.text = #"gag"
+  \override TextSpanner.bound-details.right.padding = #0.6
+
+  \override TextSpanner.bound-details.right.stencil-align-dir-y = #CENTER
+  \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
+
+  \override Glissando.bound-details.right.arrow = ##t
+  \override Glissando.arrow-length = #0.5
+  \override Glissando.arrow-width = #0.25
 
   a8\startTextSpan gis a4 b\glissando b,
   g'4 c\stopTextSpan c2
index fc6757dc6ff03486a1e08946abc726ee91bab27f..9167330fe64826c539b5c3ff19df484be2f658b2 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "really-simple, text, vocal-music"
@@ -27,10 +27,10 @@ well.
   c1
 }
 \addlyrics {
-  \once \override LyricText #'self-alignment-X = #LEFT
+  \once \override LyricText.self-alignment-X = #LEFT
   "This is left-aligned"
-  \once \override LyricText #'self-alignment-X = #CENTER
+  \once \override LyricText.self-alignment-X = #CENTER
   "This is centered"
-  \once \override LyricText #'self-alignment-X = #1
+  \once \override LyricText.self-alignment-X = #1
   "This is right-aligned"
 }
index fd1668089cb43edec449cfd31dc533d5f3025302..1cbb7416a797ea86cf2112741f9f8caab83b094a 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.15.15
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, simultaneous-notes, tweaks-and-overrides"
@@ -31,11 +31,11 @@ in that voice, the tie appears to cross voices.
   \time 2/4
   <<
     {
-      \once \override Stem #'transparent = ##t
-      \once \override Stem #'length = #8
+      \once \override Stem.transparent = ##t
+      \once \override Stem.length = #8
       b8 ~ b\noBeam
-      \once \override Stem #'transparent = ##t
-      \once \override Stem #'length = #8
+      \once \override Stem.transparent = ##t
+      \once \override Stem.length = #8
       g8 ~ g\noBeam
     }
     \\
index 9eee164eb140159e78f12479de08e4956e157c2a..444c98e9b6116c150370a2034d56fd8414fb291c 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.15.15
-\version "2.15.15"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation, tweaks-and-overrides"
@@ -21,14 +21,14 @@ at a line break:
 
 
 glissandoSkipOn = {
-  \override NoteColumn #'glissando-skip = ##t
-  \override NoteHead #'transparent = ##t
-  \override NoteHead #'no-ledgers = ##t
+  \override NoteColumn.glissando-skip = ##t
+  \override NoteHead.transparent = ##t
+  \override NoteHead.no-ledgers = ##t
 }
 
 \relative c'' {
-  \override Glissando #'breakable = ##t
-  \override Glissando #'after-line-breaking = ##t
+  \override Glissando.breakable = ##t
+  \override Glissando.after-line-breaking = ##t
   f1\glissando |
   \break
   a4 r2. |
index 4fda57bcfeb84de0ef50d9749a650b67ad237c7f..b4d11b13d7fdd5c8eb2c6ff1f9df4be7fb6c8b96 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, rhythms"
@@ -29,12 +29,12 @@ staff spaces.  @code{dash-fraction} is set to 1 for a solid slur.
 
 \relative c' {
   \once \override
-    Slur #'dash-definition = #'((0 0.3 0.1 0.75)
+    Slur.dash-definition = #'((0 0.3 0.1 0.75)
                                 (0.3 0.6 1 1)
                                 (0.65 1.0 0.4 0.75))
   c4( d e f)
   \once \override
-    Slur #'dash-definition = #'((0 0.25 1 1)
+    Slur.dash-definition = #'((0 0.25 1 1)
                                 (0.3 0.7 0.4 0.75)
                                 (0.75 1.0 1 1))
   c4( d e f)
index 9b24e3f97eaf91a7ff7c0f9d82b07219bd9a7499..1cf8befaa02315be7d88b4d23a88acb2baf736b9 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, really-cool, staff-notation, workaround"
@@ -21,7 +21,7 @@ emphasized, using the @code{line-positions} property of the
 } % begin verbatim
 
 {
-  \override Staff.StaffSymbol #'line-positions =
+  \override Staff.StaffSymbol.line-positions =
     #'(-4 -2 -0.2 0 0.2 2 4)
   d'4 e' f' g'
 }
index d9d292cb290f6042af25e22c2a9304d6d2e014ca..fe444152341330962595b2cb43fd74a9d5b5ba16 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "connecting-notes, rhythms, tweaks-and-overrides"
@@ -24,9 +24,9 @@ Beam positions may be controlled manually, by overriding the
 \relative c' {
   \time 2/4
   % from upper staff-line (position 2) to center (position 0)
-  \override Beam #'positions = #'(2 . 0)
+  \override Beam.positions = #'(2 . 0)
   c8 c
   % from center to one above center (position 1)
-  \override Beam #'positions = #'(0 . 1)
+  \override Beam.positions = #'(0 . 1)
   c8 c
 }
index 8618782bb1a296ff002e237d947f487418d0abfd..a836fd38d17f4eccc3637fcd9fcc8ce14b31744a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contemporary-notation, editorial-annotations, vocal-music, workaround"
@@ -20,7 +20,7 @@ a spoken section with the @code{\\speakOn} keyword, and end it with the
 
 
 speakOn = {
-  \override Stem #'stencil =
+  \override Stem.stencil =
     #(lambda (grob)
        (let* ((x-parent (ly:grob-parent grob X))
               (is-rest? (ly:grob? (ly:grob-object x-parent 'rest))))
@@ -37,8 +37,8 @@ speakOn = {
 }
 
 speakOff = {
-  \revert Stem #'stencil
-  \revert Flag #'stencil
+  \revert Stem.stencil
+  \revert Flag.stencil
 }
 
 \score {
index 474f13f19de5fc2dd782109b2a151e8864a3f663..36f6db452b5153b2ed2224a9c6b6891b0c816bc3 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "text"
index df602528c1f06943a6db7391703fdd318affcc97..42d9ceb5297d55b03d7b2d98210ae3c4351106cd 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, repeats, staff-notation, workaround"
@@ -27,8 +27,8 @@ transparent percent repeats.
   }
   \context Voice = "foo" {
     \set countPercentRepeats = ##t
-    \override PercentRepeat #'transparent = ##t
-    \override PercentRepeatCounter #'staff-padding = #1
+    \override PercentRepeat.transparent = ##t
+    \override PercentRepeatCounter.staff-padding = #1
     \repeat percent 4 { s1 }
   }
 >>
index 725d9b46eafcb49e89601b4e855b91b6f8e0a012..537d0a189795a85382f27f2a8c75b2a968006f72 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "ancient-notation, contexts-and-engravers, staff-notation, tweaks-and-overrides"
@@ -21,10 +21,10 @@ the @code{transparent} property.
 
 
 global = {
-  \override Staff.BarLine #'transparent = ##t
+  \override Staff.BarLine.transparent = ##t
   s1 s
   % the final bar line is not interrupted
-  \revert Staff.BarLine #'transparent
+  \revert Staff.BarLine.transparent
   \bar "|."
 }
 \new StaffGroup \relative c'' {
index 1b78f4dff4cacb5faf35a629c43c5a5853f9ca52..6a4807ec958beb19346a4b55d524552d9571773a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "really-simple, rhythms, version-specific"
@@ -19,7 +19,7 @@ can be printed on the same staff line, using the following setting.
 } % begin verbatim
 
 
-normalPos = \revert MultiMeasureRest #'staff-position
+normalPos = \revert MultiMeasureRest.staff-position
 
 {
   <<
index 748d309d101f80eb2d327d1f8a13a9bbb64aae74..8a225d29ff56a627f4b66e4ee93f685e6f1185a9 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, simultaneous-notes, tweaks-and-overrides"
@@ -22,9 +22,9 @@ the right.  This behaviour can be over-ridden by using the
 
 \new Staff \relative c' <<
   { f2. f4
-    \override Staff.NoteCollision #'prefer-dotted-right = ##f
+    \override Staff.NoteCollision.prefer-dotted-right = ##f
     f2. f4
-    \override Staff.NoteCollision #'prefer-dotted-right = ##t
+    \override Staff.NoteCollision.prefer-dotted-right = ##t
     f2. f4
   }
   \\
index 6b7d5e44d809b62482a150334ba3753211c2bcb4..d2b93bb89c6d7ef23bce3d14528f8b37800d268b 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -28,24 +28,24 @@ slurs further down.
 \relative c' {
   \stemDown
   e4( a)
-  \override Slur #'positions = #'(1 . 1)
+  \override Slur.positions = #'(1 . 1)
   e4( a)
-  \override Slur #'positions = #'(2 . 2)
+  \override Slur.positions = #'(2 . 2)
   e4( a)
-  \override Slur #'positions = #'(3 . 3)
+  \override Slur.positions = #'(3 . 3)
   e4( a)
-  \override Slur #'positions = #'(4 . 4)
+  \override Slur.positions = #'(4 . 4)
   e4( a)
-  \override Slur #'positions = #'(5 . 5)
+  \override Slur.positions = #'(5 . 5)
   e4( a)
-  \override Slur #'positions = #'(0 . 5)
+  \override Slur.positions = #'(0 . 5)
   e4( a)
-  \override Slur #'positions = #'(5 . 0)
+  \override Slur.positions = #'(5 . 0)
   e4( a)
   \stemUp
-  \override Slur #'positions = #'(-5 . -5)
+  \override Slur.positions = #'(-5 . -5)
   e4( a)
   \stemDown
-  \revert Slur #'positions
+  \revert Slur.positions
   e4( a)
 }
diff --git a/Documentation/snippets/new/GNUmakefile b/Documentation/snippets/new/GNUmakefile
deleted file mode 100644 (file)
index 155e3f1..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-depth = ../../..
-
-EXTRA_DIST_FILES = README
-EXTRA_DIST_FILES += $(call src-wildcard,*.ly)
-
-include $(depth)/make/stepmake.make
index 42c4df97b052e76bc178546be7d45127d84628f3..fcc5778c8422e472040107cb16ee9234133d263f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation, vocal-music"
@@ -25,8 +25,8 @@ cueWhile =
    (string? string? ly:dir? ly:music?)
    #{
      \cueDuring $instrument #dir {
-       \once \override TextScript #'self-alignment-X = #RIGHT
-       \once \override TextScript #'direction = $dir
+       \once \override TextScript.self-alignment-X = #RIGHT
+       \once \override TextScript.direction = $dir
        <>-\markup { \tiny #name }
        $music
      }
index f4ff3a7e21a1fd902fb974eb1f8e4e62c35c897e..53936b4622cd11f3c42925b3b5ac8d4275d77784 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.15"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, staff-notation, tweaks-and-overrides"
@@ -16,15 +16,15 @@ be repositioned slightly.
 }
 
 glissandoSkipOn = {
-  \override NoteColumn #'glissando-skip = ##t
-  \override NoteHead #'transparent = ##t
-  \override NoteHead #'no-ledgers = ##t
+  \override NoteColumn.glissando-skip = ##t
+  \override NoteHead.transparent = ##t
+  \override NoteHead.no-ledgers = ##t
 }
 
 glissandoSkipOff = {
-  \revert NoteColumn #'glissando-skip
-  \revert NoteHead #'transparent
-  \revert NoteHead #'no-ledgers
+  \revert NoteColumn.glissando-skip
+  \revert NoteHead.transparent
+  \revert NoteHead.no-ledgers
 }
 
 \relative c'' {
index 138f4227b94dac45a2ce5d5b95a992bc034fb1ed..159bed3faebf39c1c60efa3c4d60ea19897ffb24 100644 (file)
@@ -1,5 +1,5 @@
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "ancient-notation, symbols-and-glyphs"
@@ -15,49 +15,49 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
   \context VaticanaVoice <<
     \transpose c c {
 
-      \override NoteHead #'style = #'vaticana.punctum
+      \override NoteHead.style = #'vaticana.punctum
       \key es \major
       \clef "vaticana-fa2"
       c1 des e f ges
 
-      \override NoteHead #'style = #'vaticana.inclinatum
+      \override NoteHead.style = #'vaticana.inclinatum
       a! b ces'
       \bar "|"
       % \break % 1 (8*1)
 
-      \override NoteHead #'style = #'vaticana.quilisma
+      \override NoteHead.style = #'vaticana.quilisma
       b! des'! ges! fes!
       \breathe
       \clef "vaticana-fa1"
-      \override NoteHead #'style = #'vaticana.plica
+      \override NoteHead.style = #'vaticana.plica
       es d
-      \override NoteHead #'style = #'vaticana.reverse.plica
+      \override NoteHead.style = #'vaticana.reverse.plica
       c d
       \bar "|"
       % \break %2 (8*1)
 
-      \override NoteHead #'style = #'vaticana.punctum.cavum
+      \override NoteHead.style = #'vaticana.punctum.cavum
       es f
-      \override NoteHead #'style = #'vaticana.lpes
+      \override NoteHead.style = #'vaticana.lpes
       g as
-      \override NoteHead #'style = #'vaticana.upes
+      \override NoteHead.style = #'vaticana.upes
       bes as
-      \override NoteHead #'style = #'vaticana.vupes
+      \override NoteHead.style = #'vaticana.vupes
       g f
-      \override NoteHead #'style = #'vaticana.linea.punctum
-      \once \override Staff.BarLine #'bar-extent = #'(-1 . 1) \bar "|"
+      \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
+      \override NoteHead.style = #'vaticana.epiphonus
       c d
-      \override NoteHead #'style = #'vaticana.cephalicus
+      \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
+      \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 "|"
@@ -65,22 +65,22 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
 
       e! f! ges
       \clef "medicaea-do2"
-      \override NoteHead #'style = #'medicaea.inclinatum
+      \override NoteHead.style = #'medicaea.inclinatum
       a! b! ces'
-      \override NoteHead #'style = #'medicaea.virga
+      \override NoteHead.style = #'medicaea.virga
       b! a!
       \bar "|"
       % \break % 5 (8*1)
 
       ges fes
       \clef "medicaea-fa1"
-      \override NoteHead #'style = #'medicaea.rvirga
+      \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
+      \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 "|"
@@ -88,16 +88,16 @@ upperStaff = \new VaticanaStaff = "upperStaff" <<
 
       fes ges
       \clef "hufnagel-do2"
-      \override NoteHead #'style = #'hufnagel.lpes
+      \override NoteHead.style = #'hufnagel.lpes
       as! bes! ces'
-      \override NoteHead #'style = #'hufnagel.virga
+      \override NoteHead.style = #'hufnagel.virga
       bes! as!
       \bar "|"
       % \break % 7 (8*1)
 
       ges! fes!
       \clef "hufnagel-do-fa"
-      \override NoteHead #'style = #'hufnagel.punctum
+      \override NoteHead.style = #'hufnagel.punctum
       es! des ces des! es! fes!
       \bar "||"
       % \break % 8 (8*1)
@@ -137,8 +137,8 @@ lowerStaff = \new MensuralStaff = "lowerStaff" <<
       r2
       \clef "mensural-g"
       r4 r8 r16 r16
-      \override NoteHead #'style = #'mensural
-      \override Rest #'style = #'mensural
+      \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
@@ -202,23 +202,23 @@ lowerStaff = \new MensuralStaff = "lowerStaff" <<
     }
     \context {
       \MensuralVoice
-      \override NoteHead #'style = #'neomensural
-      \override Rest #'style = #'neomensural
-      \override Flag #'style = #'mensural
-      \override Stem #'thickness = #1.0
+      \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
+      \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
+      \revert  BarLine.transparent
+      \override StaffSymbol.thickness = #2.0
+      \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist
+      \override Custos.neutral-position = #4
     }
   }
 }
index 36e873fd008df7946fff64a803ce9d923457a0d5..b81ef2380b35ac5738aa3679ff195b0be7461be1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "vocal-music, ancient-notation, template"
@@ -36,12 +36,12 @@ verba = \lyricmode {
       \Staff
       \remove "Time_signature_engraver"
       \remove "Bar_engraver"
-      \override Stem #'transparent = ##t
-      \override Flag #'transparent = ##t
+      \override Stem.transparent = ##t
+      \override Flag.transparent = ##t
     }
     \context {
       \Voice
-      \override Stem #'length = #0
+      \override Stem.length = #0
     }
     \context {
       \Score
index 0f292adb038db9e6f4e6c5a452dceaf755a1ecc1..c74d3920023bfaf8d6d153efb0688251874fb383 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "chords, fretted-strings"
@@ -34,12 +34,12 @@ bbarre =
                  (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 =
+       \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)
@@ -51,7 +51,7 @@ bbarre =
                 (padding . 0.25)
                 (attach-dir . 2)))
 %% uncomment this line for make full barred
-       % \once  \override TextSpanner #'bound-details #'left #'text =  \markup { "B" #str }
+       % \once  \override TextSpanner.bound-details.left.text =  \markup { "B" #str }
        $music
    #})
 
index 1e6ffa7b9ec9948a472e674e23239c2f50ff6f72..641f2861c7f4ddd1ea7719ddc68cf2dbabaebf7a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "text, tweaks-and-overrides, contexts-and-engravers"
@@ -39,15 +39,15 @@ been shifted via @code{force-hshift}.
   \context {
     \Voice
     \consists #Text_align_engraver
-    \override TextScript #'X-offset =
+    \override TextScript.X-offset =
       #ly:self-alignment-interface::aligned-on-x-parent
-    \override TextScript #'self-alignment-X = #CENTER
+    \override TextScript.self-alignment-X = #CENTER
   }
 }
 
 \new Staff <<
   \relative c'' {
-    \override NoteColumn #'force-hshift = #3
+    \override NoteColumn.force-hshift = #3
     c1-\markup { \arrow-head #Y #DOWN ##t }
   }
   \\
index 3351cd2d38fa026f1f354f5b93bf1b708620943c..8c7cd659061a9cb79bc11d75d684a5a197e36a7f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers, specific-notation"
@@ -12,13 +12,13 @@ aren't always the same length.
 }
 
 stemOn = {
-  \revert Staff.Stem #'transparent
-  \revert Staff.Flag #'transparent
+  \revert Staff.Stem.transparent
+  \revert Staff.Flag.transparent
 }
 
 stemOff = {
-  \override Staff.Stem #'transparent = ##t
-  \override Staff.Flag #'transparent = ##t
+  \override Staff.Stem.transparent = ##t
+  \override Staff.Flag.transparent = ##t
 }
 
 \score {
index 29fe905a43e89716a129baa71eed20e0347fb6cb..4f625ddbc81cf01fcfde750e71300894e9a0bc31 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -71,7 +71,7 @@ Bass = {
     \context Staff = lower {
       \new Voice {
         \clef bass
-        \accidentalStyle "modern-cautionary"
+        \accidentalStyle modern-cautionary
         <<
           \Tenor
           \Bass
@@ -88,7 +88,7 @@ Bass = {
     }
     \context {
       \Voice
-      \override StanzaNumber #'padding = #1.8
+      \override StanzaNumber.padding = #1.8
     }
   }
 }
diff --git a/Documentation/snippets/new/extending-glissandi-across-repeats.ly b/Documentation/snippets/new/extending-glissandi-across-repeats.ly
new file mode 100644 (file)
index 0000000..0c7496c
--- /dev/null
@@ -0,0 +1,62 @@
+\version "2.17.6"
+
+\header {
+  lsrtags = "staff-notation, tweaks-and-overrides"
+  texidoc = "
+A glissando which extends into several @code{\alternative} blocks
+can be simulated by adding a hidden grace note with a glissando
+at the start of each @code{\alternative} block.  The grace note
+should be at the same pitch as the note which starts the initial
+glissando.  This is implemented here with a music function which
+takes the pitch of the grace note as its argument.
+
+Note that in polyphonic music the grace note must be matched with
+corresponding grace notes in all other voices.
+"
+  doctitle = "Extending glissandi across repeats"
+}
+
+repeatGliss = #(define-music-function (parser location grace)
+  (ly:pitch?)
+  #{
+    % the next two lines ensure the glissando is long enough
+    % to be visible
+    \once \override Glissando.springs-and-rods
+      = #ly:spanner::set-spacing-rods
+    \once \override Glissando.minimum-length = #3.5
+    \once \hideNotes
+    \grace $grace \glissando
+  #})
+
+\score {
+  \relative c'' {
+    \repeat volta 3 { c4 d e f\glissando }
+    \alternative {
+      { g2 d }
+      { \repeatGliss f g2 e }
+      { \repeatGliss f e2 d }
+    }
+  }
+}
+
+music =  \relative c' {
+  \voiceOne
+  \repeat volta 2 {
+    g a b c\glissando
+  }
+  \alternative {
+    { d1 }
+    { \repeatGliss c e1 }
+  }
+}
+
+\score {
+  \new StaffGroup <<
+    \new Staff <<
+      \context Voice { \clef "G_8" \music }
+    >>
+    \new TabStaff  <<
+      \context TabVoice { \clef "moderntab" \music }
+    >>
+  >>
+}
\ No newline at end of file
index f71af0f147f4b0c422c1a5a6f12d8044fa1dcd8f..b7b6b58dec2d28674a7cd0fa33337531f4142e00 100644 (file)
@@ -3,7 +3,7 @@
 % on melodies from Bellini's "Norma"                              %
 %*****************************************************************%
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -35,7 +35,7 @@ ssnor = \set stringNumberOrientations = #'(right)
 % define fingering offset
 FO = #(define-music-function (parser location offsetX offsetY) (number? number?)
 #{
-  \once \override Voice.Fingering #'extra-offset = #(cons offsetX offsetY)
+  \once \override Voice.Fingering.extra-offset = #(cons offsetX offsetY)
 #})
 
 % markups
@@ -107,7 +107,7 @@ bass = \relative c {
 
   %% new section starts here in A minor
   \set Score.beamExceptions = #'()
-  \once \override TextScript #'staff-padding = #1.7
+  \once \override TextScript.staff-padding = #1.7
   \times 2/3 { a8\p^\andantino e' a c a e a, e' a c a e } | % m. 5
 
   \times 2/3 { a,8\pdolce e' a c a e } % beg m. 6
@@ -133,9 +133,9 @@ bass = \relative c {
   \layout {
     \context {
       \Score
-      \override Fingering #'staff-padding = #'()
-      \override TupletNumber #'stencil = ##f
-      \override TupletBracket #'bracket-visibility = ##f
+      \override Fingering.staff-padding = #'()
+      \override TupletNumber.stencil = ##f
+      \override TupletBracket.bracket-visibility = ##f
     }
   }
   \midi { }
index 240ef41b42ae02f87229544a0c61da4dcb4a49c4..aa54b59bf4350d3a05ac4a5f7a4f57c13a2481d1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -42,21 +42,21 @@ function to generate the glyph for the flag.
 snippetexamplenotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64 }
 
 {
-  \override Score.RehearsalMark #'self-alignment-X = #LEFT
+  \override Score.RehearsalMark.self-alignment-X = #LEFT
   \time 1/4
   \mark "Normal flags"
   \snippetexamplenotes
 
   \mark "Custom flag: inverted"
-  \override Flag #'stencil = #inverted-flag
+  \override Flag.stencil = #inverted-flag
   \snippetexamplenotes
 
   \mark "Custom flag: weight"
-  \override Flag #'stencil = #weight-flag
+  \override Flag.stencil = #weight-flag
   \snippetexamplenotes
 
   \mark "Revert to normal"
-  \revert Flag #'stencil
+  \revert Flag.stencil
   \snippetexamplenotes
 }
 
index e978d0df487b18e1ec0b52da3926f0f88105279d..039d5b4310f932725d13cdf2c846ad1260a99fa8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, staff-notation, tweaks-and-overrides"
@@ -8,6 +8,6 @@
 
 \relative c' {
   a2 \glissando
-  \once \override NoteColumn #'glissando-skip = ##t
+  \once \override NoteColumn.glissando-skip = ##t
   f''4 d,
 }
index a3a3ee80ac73be1015a018d0a8d21f2deb9ae52b..a1c1ec66cc4e1729fa4d3564c5ece3ec360eb01d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings"
@@ -15,12 +15,12 @@ in the following example.
 %% Hide fret number: useful to draw slide into/from a casual point of
 %% the fretboard.
 hideFretNumber = {
-  \once \override TabNoteHead #'transparent = ##t
-  \once \override NoteHead #'transparent = ##t
-  \once \override Stem #'transparent = ##t
-  \once \override Flag #'transparent = ##t
-  \once \override NoteHead #'no-ledgers = ##t
-  \once \override Glissando #'(bound-details left padding) = #0.3
+  \once \override TabNoteHead.transparent = ##t
+  \once \override NoteHead.transparent = ##t
+  \once \override Stem.transparent = ##t
+  \once \override Flag.transparent = ##t
+  \once \override NoteHead.no-ledgers = ##t
+  \once \override Glissando.bound-details.left.padding = #0.3
 }
 
 music= \relative c' {
index 8a22de16c3adf9f52a7bd179f9de423645a71a38..92230b5e4689b1d2a7da040359be3f020484869a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation, ancient-notation, really-cool"
@@ -12,13 +12,13 @@ separate the instrument name definition and the incipit definition.
 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 = #UP
-    \once \override Staff.InstrumentName #'Y-offset =
+    \once \override Staff.InstrumentName.self-alignment-X = #RIGHT
+    \once \override Staff.InstrumentName.self-alignment-Y = #UP
+    \once \override Staff.InstrumentName.Y-offset =
       #(lambda (grob)
          (+ 4 (system-start-text::calc-y-offset grob)))
-    \once \override Staff.InstrumentName #'padding = #0.3
-    \once \override Staff.InstrumentName #'stencil =
+    \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)
@@ -27,8 +27,7 @@ incipit =
                         {
                           { \context MensuralStaff \with {
                                instrumentName = #instrument-name
-                               \override VerticalAxisGroup
-                                #'Y-extent = #'(-4 . 4)
+                               \override VerticalAxisGroup.Y-extent = #'(-4 . 4)
                             } $incipit-music
                           }
                           \layout { $(ly:grob-layout grob)
@@ -59,7 +58,7 @@ global = {
   \skip 1*8
 
   % let finis bar go through all staves
-  \override Staff.BarLine #'transparent = ##f
+  \override Staff.BarLine.transparent = ##f
 
   % finis bar
   \bar "|."
@@ -86,7 +85,7 @@ discantusNotes = {
     c'4 e'4.( d'8 c' b |
     a4) b a2 |
     b4.( c'8 d'4) c'4 |
-    \once \override NoteHead #'transparent = ##t
+    \once \override NoteHead.transparent = ##t
     c'1 |
     b\breve |
   }
@@ -123,7 +122,7 @@ altusNotes = {
     a2 g4 e |
     fis g4.( fis16 e fis4) |
     g1 |
-    \once \override NoteHead #'transparent = ##t
+    \once \override NoteHead.transparent = ##t
     g1 |
     g\breve |
   }
@@ -161,7 +160,7 @@ tenorNotes = {
     R1 |
     % two measures
     r2 d'2. d'4 b e' |
-    \once \override NoteHead #'transparent = ##t
+    \once \override NoteHead.transparent = ##t
     e'1 |
     d'\breve |
   }
@@ -197,7 +196,7 @@ bassusNotes = {
     R1 |
     R1 |
     g2. e4 |
-    \once \override NoteHead #'transparent = ##t
+    \once \override NoteHead.transparent = ##t
     e1 |
     g\breve |
   }
@@ -246,7 +245,7 @@ bassusLyrics = \lyricmode {
     \context {
       \Score
       %% no bar lines in staves or lyrics
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
     }
     %% the next two instructions keep the lyrics between the bar lines
     \context {
@@ -257,7 +256,7 @@ bassusLyrics = \lyricmode {
     \context {
       \Voice
       %% no slurs
-      \override Slur #'transparent = ##t
+      \override Slur.transparent = ##t
       %% 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
index 3910d71dc63ff51ac8b2b45fc4884dc18c564b56..7ee7bff7063832e3fb55eaf627a2874e640bf0a8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "keyboards, percussion, fretted-strings, template, real-music"
@@ -33,17 +33,17 @@ music is within a @code{\\transpose} section.
 %%%%%%%%%%%% Some macros %%%%%%%%%%%%%%%%%%%
 
 sl = {
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
 }
 nsl = {
-  \revert NoteHead #'style
-  \revert Stem #'transparent
-  \revert Flag #'transparent
+  \revert NoteHead.style
+  \revert Stem.transparent
+  \revert Flag.transparent
 }
-crOn = \override NoteHead #'style = #'cross
-crOff = \revert NoteHead #'style
+crOn = \override NoteHead.style = #'cross
+crOff = \revert NoteHead.style
 
 %% insert chord name style stuff here.
 
@@ -264,8 +264,8 @@ drumContents = {
     \context { \Staff \RemoveEmptyStaves }
     \context {
       \Score
-      \override BarNumber #'padding = #3
-      \override RehearsalMark #'padding = #2
+      \override BarNumber.padding = #3
+      \override RehearsalMark.padding = #2
       skipBars = ##t
     }
   }
index 7596a4ebcbc2ea6a5e261a57697034bef09296fc..bfe2e1ca59427031897085b5ad442ad3069ac294 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, simultaneous-notes, tweaks-and-overrides"
@@ -23,11 +23,11 @@ in that voice, the tie appears to cross voices.
   \time 2/4
   <<
     {
-      \once \override Stem #'transparent = ##t
-      \once \override Stem #'length = #8
+      \once \override Stem.transparent = ##t
+      \once \override Stem.length = #8
       b8 ~ b\noBeam
-      \once \override Stem #'transparent = ##t
-      \once \override Stem #'length = #8
+      \once \override Stem.transparent = ##t
+      \once \override Stem.length = #8
       g8 ~ g\noBeam
     }
     \\
index dc2bdfa13a58e902583804312c94c8989af3611d..0be9f4b0acdd11be1cf3c1980361319d4e7c90cb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.15"
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation, tweaks-and-overrides"
@@ -13,14 +13,14 @@ at a line break:
 }
 
 glissandoSkipOn = {
-  \override NoteColumn #'glissando-skip = ##t
-  \override NoteHead #'transparent = ##t
-  \override NoteHead #'no-ledgers = ##t
+  \override NoteColumn.glissando-skip = ##t
+  \override NoteHead.transparent = ##t
+  \override NoteHead.no-ledgers = ##t
 }
 
 \relative c'' {
-  \override Glissando #'breakable = ##t
-  \override Glissando #'after-line-breaking = ##t
+  \override Glissando.breakable = ##t
+  \override Glissando.after-line-breaking = ##t
   f1\glissando |
   \break
   a4 r2. |
index 8f9865ac23ebe78a39f0853d5395ab315f4c8d4c..5999b2d1eb2d2b0a95e9b0bcee85a29bdcf8e3d6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -19,17 +19,17 @@ follows:
   % Multi-measure rests by default are set under the fourth line
   R1
   % They can be moved using an override
-  \override MultiMeasureRest #'staff-position = #-2
+  \override MultiMeasureRest.staff-position = #-2
   R1
-  \override MultiMeasureRest #'staff-position = #0
+  \override MultiMeasureRest.staff-position = #0
   R1
-  \override MultiMeasureRest #'staff-position = #2
+  \override MultiMeasureRest.staff-position = #2
   R1
-  \override MultiMeasureRest #'staff-position = #3
+  \override MultiMeasureRest.staff-position = #3
   R1
-  \override MultiMeasureRest #'staff-position = #6
+  \override MultiMeasureRest.staff-position = #6
   R1
-  \revert MultiMeasureRest #'staff-position
+  \revert MultiMeasureRest.staff-position
   \break
 
   % In two Voices, odd-numbered voices are under the top line
@@ -42,7 +42,7 @@ follows:
   % Separating multi-measure rests in more than two voices
   % requires an override
   << { R1 } \\ { R1 } \\
-     \once \override MultiMeasureRest #'staff-position = #0
+     \once \override MultiMeasureRest.staff-position = #0
      { R1 }
   >>
 
@@ -50,10 +50,10 @@ follows:
   % in all voices to avoid multiple instances being printed
   \compressFullBarRests
   <<
-   \revert MultiMeasureRest #'staff-position
+   \revert MultiMeasureRest.staff-position
     { R1*3 }
     \\
-   \revert MultiMeasureRest #'staff-position
+   \revert MultiMeasureRest.staff-position
     { R1*3 }
   >>
 }
diff --git a/Documentation/snippets/new/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly b/Documentation/snippets/new/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
new file mode 100644 (file)
index 0000000..1bdd351
--- /dev/null
@@ -0,0 +1,36 @@
+\version "2.17.6"
+
+\header {
+  lsrtags = "repeats, tweaks-and-overrides"
+
+  texidoc = "
+A @code{.|:} bar line can be printed at the beginning of a piece, by
+overriding the relevant property:
+
+"
+  doctitle = "Printing a repeat sign at the beginning of a piece"
+}
+
+
+\relative c'' {
+  \once \override Score.BreakAlignment.break-align-orders =
+    #(make-vector 3 '(instrument-name
+                      left-edge
+                      ambitus
+                      breathing-sign
+                      clef
+                      key-signature
+                      time-signature
+                      staff-bar
+                      custos))
+  \once \override Staff.TimeSignature.space-alist =
+    #'((first-note . (fixed-space . 2.0))
+       (right-edge . (extra-space . 0.5))
+       ;; free up some space between time signature
+       ;; and repeat bar line
+       (staff-bar . (extra-space . 1)))
+  \bar ".|:"
+  c1
+  d1
+  d4 e f g
+}
index b6575a4714cbc91d0132c4da99c18dbb32fcab21..b4cd68c38cc51b64925bd3e61524d5a09e20a6b4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -17,12 +17,12 @@ other effects may be obtained.
 
 startAcciaccaturaMusic = {
   <>(
-  \override Flag #'stroke-style = #"grace"
+  \override Flag.stroke-style = #"grace"
   \slurDashed
 }
 
 stopAcciaccaturaMusic = {
-  \revert Flag #'stroke-style
+  \revert Flag.stroke-style
   \slurSolid
   <>)
 }
index e4f2326b97ebb1367610d8e387e51d094b07841a..6c005c20096722226b11275fc81d1a9a70d44835 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "template, real-music, specific-notation"
@@ -64,15 +64,15 @@ harmonies = \new ChordNames \chordmode {
   bes1
 }
 
-NoStem = { \override Stem #'transparent = ##t \override Flag #'transparent = ##t }
-NoNoteHead = \override NoteHead #'transparent = ##t
-ZeroBeam = \override Beam  #'positions = #'(0 . 0)
+NoStem = { \override Stem.transparent = ##t \override Flag.transparent = ##t }
+NoNoteHead = \override NoteHead.transparent = ##t
+ZeroBeam = \override Beam.positions = #'(0 . 0)
 
 staffTabLine = \new Staff \with {
   \remove "Time_signature_engraver"
   \remove "Clef_engraver"
 } {
-  \override Staff.StaffSymbol #'line-positions = #'(0)
+  \override Staff.StaffSymbol.line-positions = #'(0)
   % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated with a gridline
   \set Staff.midiInstrument = #"choir aahs"
   \key c \major
@@ -80,7 +80,7 @@ staffTabLine = \new Staff \with {
   {
     % disable the following line to see the the noteheads while writing the song
     \NoNoteHead
-    \override NoteHead #'no-ledgers = ##t
+    \override NoteHead.no-ledgers = ##t
 
     % The beam between 8th-notes is used to draw the push-line
     %How to fast write the push-lines:
@@ -152,7 +152,7 @@ AccordionTab= { \dynamicUp
     \consists "Grid_point_engraver"
     gridInterval = #(ly:make-moment 4 4) % 4/4 - tact. How many beats per bar
     % The following line has to be adjusted O-F-T-E-N.
-    \override GridPoint #'Y-extent = #'(-2 . -21)
+    \override GridPoint.Y-extent = #'(-2 . -21)
   }
   \context {
     \ChoirStaff
@@ -176,7 +176,7 @@ staffVoice = \new Staff = astaffvoice  {
 
 staffAccordionMel =
 \new Staff  \with { \remove "Clef_engraver" } {
-  \accidentalStyle "forget" %Set the accidentals (Vorzeichen) for each note,
+  \accidentalStyle forget %Set the accidentals (Vorzeichen) for each note,
   %do not remember them for the rest of the measure.
   \time 4/4
   \set Staff.instrumentName="Accordion"
@@ -188,13 +188,13 @@ staffAccordionMel =
 
 AltOn =
 #(define-music-function (parser location mag) (number?)
-  #{ \override Stem #'length = #(* 7.0 mag)
-      \override NoteHead #'font-size =
+  #{ \override Stem.length = #(* 7.0 mag)
+      \override NoteHead.font-size =
 #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag))) #})
 
 AltOff = {
-  \revert Stem #'length
-  \revert NoteHead #'font-size
+  \revert Stem.length
+  \revert NoteHead.font-size
 }
 
 BassRhytm = {s4 s8 | c2 c2 | c2 s8 }
@@ -204,8 +204,8 @@ staffBassRhytm =
 \new Staff = staffbass \with { \remove "Clef_engraver" } {
   % This is not a RhythmicStaff  because it must be possible to append lyrics.
 
-  \override Score.GridLine #'extra-offset = #'( 13.0 . 0.0 ) % x.y
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
+  \override Score.GridLine.extra-offset = #'( 13.0 . 0.0 ) % x.y
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
   % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated by a grid
   % Search for 'grid' in this page to find all related functions
   \time 4/4
index 64ebf5d4d3033c8e43679703ce255ac782566011..67bc0f628684fcf2648bf96d944b717286113f70 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \include "catalan.ly"
 
 \header {
@@ -28,7 +28,7 @@ trompette = \relative do'' {
   \key mib \major
   \time 2/4
   R2^\markup { \italic Comodo } |
-  r8 \once \override TextScript #'padding = #2.0
+  r8 \once \override TextScript.padding = #2.0
   sib16-.^\markup {\dynamic p \italic grazioso} do-. mib( re)-. do-. sib-. |
   re8-. r8 re4->( |
   re8) do16-. re-. mib( re) do-. re-. |
index d05686f651ba8170cc2598650bd0b0a050492ec3..90ea3fc2f18022a7244e32b0c04051e0ef1d524b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, text, fretted-strings, tweaks-and-overrides, scheme-language"
@@ -14,10 +14,10 @@ series of notes is supposed to be played all on the same string.
 stringNumberSpanner =
 #(define-music-function (parser location StringNumber) (string?)
   #{
-    \override TextSpanner #'style = #'solid
-    \override TextSpanner #'font-size = #-5
-    \override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER
-    \override TextSpanner #'(bound-details left text) = \markup { \circle \number #StringNumber }
+    \override TextSpanner.style = #'solid
+    \override TextSpanner.font-size = #-5
+    \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
+    \override TextSpanner.bound-details.left.text = \markup { \circle \number #StringNumber }
   #})
 
 
diff --git a/Documentation/snippets/new/using-a-tick-as-the-breath-mark-symbol.ly b/Documentation/snippets/new/using-a-tick-as-the-breath-mark-symbol.ly
new file mode 100644 (file)
index 0000000..ad440c3
--- /dev/null
@@ -0,0 +1,25 @@
+\version "2.17.6"
+
+\header {
+  lsrtags = "expressive-marks"
+
+  texidoc = "
+Vocal and wind music frequently uses a tick mark as a breathing sign.  This
+indicates a breath that subtracts a little time from the previous note rather
+than causing a short pause, which is indicated by the comma breath mark.  The
+mark can be moved up a little to take it away from the stave.
+"
+  doctitle = "Using a tick as the breath mark symbol"
+}
+
+\relative c'' {
+  c2
+  \breathe
+  d2
+  \override BreathingSign.Y-offset = #2.6
+  \override BreathingSign.text =
+    \markup { \musicglyph #"scripts.tickmark" }
+  c2
+  \breathe
+  d2
+}
index d6b327d6edcec0b67ef9c0625068884cc3d4e2b2..5932ba2565238653ccf9c8d8383122afcf062a9f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -21,13 +21,13 @@ testnotes = {
   \time 2/4
   \testnotes
 
-  \override Flag #'stencil = #modern-straight-flag
+  \override Flag.stencil = #modern-straight-flag
   \testnotes
 
-  \override Flag #'stencil = #old-straight-flag
+  \override Flag.stencil = #old-straight-flag
   \testnotes
 
-  \revert Flag #'stencil
+  \revert Flag.stencil
   \testnotes
 }
 
index 024c95dbae26a626185b3174af3bc852c85f4559..0a53f3d9807ed1e6131e4d87ce33e892d618e11c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -12,7 +12,7 @@ other situations.
 }
 
 \relative c'' {
-  \override Flag #'stroke-style = #"grace"
+  \override Flag.stroke-style = #"grace"
   c8( d2) e8( f4)
 }
 
index 8e74c262c71d7a5675a328855bf6d413223173c1..64aafafb706615d4152da0d3f060c671ceeca937 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -19,30 +19,30 @@ to the tuplet number or tuplet fraction.
 } % begin verbatim
 
 \relative c'' {
-  \once \override TupletNumber #'text =
+  \once \override TupletNumber.text =
     #(tuplet-number::non-default-tuplet-denominator-text 7)
   \times 2/3  { c4. c4. c4. c4. }
-  \once \override TupletNumber #'text =
+  \once \override TupletNumber.text =
     #(tuplet-number::non-default-tuplet-fraction-text 12 7)
   \times 2/3  { c4. c4. c4. c4. }
-  \once \override TupletNumber #'text =
+  \once \override TupletNumber.text =
     #(tuplet-number::append-note-wrapper
       (tuplet-number::non-default-tuplet-fraction-text 12 7) "8")
   \times 2/3  { c4. c4. c4. c4. }
 
-  \once \override TupletNumber #'text =
+  \once \override TupletNumber.text =
     #(tuplet-number::append-note-wrapper
       tuplet-number::calc-denominator-text "4")
   \times 2/3  { c8 c8 c8 c8 c8 c8 }
-  \once \override TupletNumber #'text =
+  \once \override TupletNumber.text =
     #(tuplet-number::append-note-wrapper
       tuplet-number::calc-fraction-text "4")
   \times 2/3  { c8 c8 c8 c8 c8 c8 }
 
-  \once \override TupletNumber #'text =
+  \once \override TupletNumber.text =
     #(tuplet-number::fraction-with-notes "4." "8")
   \times 2/3  { c4. c4. c4. c4. }
-  \once \override TupletNumber #'text =
+  \once \override TupletNumber.text =
     #(tuplet-number::non-default-fraction-with-notes 12 "8" 4 "4")
   \times 2/3  { c4. c4. c4. c4. }
 }
index 9abd9336c601fa2ca1a85365024cdc817011e797..70faa4ae4bfeb719edab3521b4d2304086126576 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.15.31
+%% Note: this file works from version 2.16.0
 \version "2.16.0"
 
 \header {
index 61d36d9d6c83a0aa9cf561845c70224713fe573c..2ec7ebf8d9cd2ed53c42c1db9bf119875dc3e69d 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "vocal-music"
@@ -84,15 +84,15 @@ words = \lyricmode {
   \layout {
     \context {
       \Lyrics
-      \override VerticalAxisGroup #'staff-affinity = ##f
-      \override VerticalAxisGroup #'staff-staff-spacing =
+      \override VerticalAxisGroup.staff-affinity = ##f
+      \override VerticalAxisGroup.staff-staff-spacing =
         #'((basic-distance . 0)
           (minimum-distance . 2)
           (padding . 2))
     }
     \context {
       \Staff
-      \override VerticalAxisGroup #'staff-staff-spacing =
+      \override VerticalAxisGroup.staff-staff-spacing =
         #'((basic-distance . 0)
           (minimum-distance . 2)
           (padding . 2))
index 1f061947b055b5c9f6dc046de83ee7cb14f4a4ec..742e687c9300aabe9742f8932d7df54292332023 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "really-simple, scheme-language, text, titles"
@@ -23,7 +23,7 @@ By putting the output of
 
 \score {
   \new Lyrics {
-    \override Score.RehearsalMark #'self-alignment-X = #LEFT
+    \override Score.RehearsalMark.self-alignment-X = #LEFT
     \mark #(string-append "Processed with LilyPond version " (lilypond-version))
     s2
   }
index 909a29f4f8d04a82e387fafe4c152d39fe952807..727f9d4191aa3c18be1fdeaa2e48360011f509b4 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "spacing"
@@ -55,7 +55,7 @@ in markups.
       \mark "B" \label #'markB
       d2 d
       d2 d
-      \once \override Score.RehearsalMark #'break-visibility =
+      \once \override Score.RehearsalMark.break-visibility =
         #begin-of-line-invisible
       \mark "C" \label #'markC
     }
index 10206bee1747ced898086fd68285ea01000773d7..0e8590c7ac4ee8b727caf97d4eff276a6e2bfd8c 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, version-specific"
@@ -25,7 +25,7 @@ tuplets have to be beamed manually.
     % Permit line breaks within tuplets
     \remove "Forbid_line_break_engraver"
     % Allow beams to be broken at line breaks
-    \override Beam #'breakable = ##t
+    \override Beam.breakable = ##t
   }
 }
 \relative c'' {
index b476dede6d55ccfce26ea0bd0113f81bb2459ae6..6a7cc933691915716d9e7ac8d034e675566c65fb 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -67,7 +67,7 @@ Piches headword
     % RH Voice 2
     \new Voice {
       \voiceTwo
-      \override Staff.DynamicLineSpanner #'staff-padding = #2.5
+      \override Staff.DynamicLineSpanner.staff-padding = #2.5
       <e'' b'>2 \p
       <ds'' a'>4
       <cs'' gs'>4
@@ -75,7 +75,7 @@ Piches headword
       <bs' fs'>2
       e'2
       |
-      \once \override TextScript #'staff-padding = #2.5
+      \once \override TextScript.staff-padding = #2.5
       <b'! a'>2 _ \markup \italic { cresc. }
       b'4
       <e'' cs''>4
@@ -99,7 +99,7 @@ Piches headword
 
   % LH Staff
   \new Staff {
-    \override Staff.SustainPedalLineSpanner #'staff-padding = #5
+    \override Staff.SustainPedalLineSpanner.staff-padding = #5
     <gs' e'>2 ( \sustainOn
     <fs' ds' b>4 \sustainOff
     <e' cs'>4
index b62ec12e5f4508d8c37a0eee934ac71220acd66f..68861a1dc30f69e376cdc3106967a13835a09844 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -20,10 +20,10 @@ and lower start positions independently.
 
 \relative c' {
   <c e g b>1\arpeggio
-  \once \override Arpeggio #'positions = #'(-5 . 0)
+  \once \override Arpeggio.positions = #'(-5 . 0)
   <c e g b>1\arpeggio
-  \once \override Arpeggio #'positions = #'(0 . 5)
+  \once \override Arpeggio.positions = #'(0 . 5)
   <c e g b>1\arpeggio
-  \once \override Arpeggio #'positions = #'(-5 . 5)
+  \once \override Arpeggio.positions = #'(-5 . 5)
   <c e g b>1\arpeggio
 }
index 790ab94f32b9f971ae8df3f854dea8178bc59142..253b05ec0315cf1a17423e60aa0c9a90158b3213 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -24,14 +24,14 @@ involved.
 \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.7)-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-1 d-\tweak extra-offset #'(-1.2 . 0)-2 a'-5>4
   \set fingeringOrientations = #'(down right up)
   <c-1 d-2 a'-5>4
-  <c-1 d-\tweak #'extra-offset #'(-1 . 1.2)-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 #'(-1.2 . 0)-2 a'-5>4
 }
index 7f13ed5280e83903011d9c4ac16cc33682e23d19..d3c6e90dc9672e68ac62002d576ab7ac929fad50 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -24,9 +24,9 @@ beaming for grace notes.
   f8[ e]
   \grace {
     f8[ e]
-    \override Stem  #'no-stem-extend = ##f
+    \override Stem.no-stem-extend = ##f
     f8[ e]
-    \revert Stem #'no-stem-extend
+    \revert Stem.no-stem-extend
   }
   f8[ e]
 }
index ae61dd1a9f1caaf04e747186bebfd0236013ee8c..898921de85cf9c0615a404db358495452860babe 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -22,7 +22,7 @@ the) graces are put left of the musical columns for the main notes.
 
 \relative c'' {
   <<
-    \override Score.SpacingSpanner #'strict-grace-spacing = ##t
+    \override Score.SpacingSpanner.strict-grace-spacing = ##t
     \new Staff \new Voice {
       \afterGrace c4 { c16[ c8 c16] }
       c8[ \grace { b16[ d] } c8]
index 093834aa640adef45e1457d6d807c8e17b09a97a..34c688c71b388786cf93f20c7e4c0f05b750512c 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.15.14
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -27,17 +27,17 @@ follows:
   % Multi-measure rests by default are set under the fourth line
   R1
   % They can be moved using an override
-  \override MultiMeasureRest #'staff-position = #-2
+  \override MultiMeasureRest.staff-position = #-2
   R1
-  \override MultiMeasureRest #'staff-position = #0
+  \override MultiMeasureRest.staff-position = #0
   R1
-  \override MultiMeasureRest #'staff-position = #2
+  \override MultiMeasureRest.staff-position = #2
   R1
-  \override MultiMeasureRest #'staff-position = #3
+  \override MultiMeasureRest.staff-position = #3
   R1
-  \override MultiMeasureRest #'staff-position = #6
+  \override MultiMeasureRest.staff-position = #6
   R1
-  \revert MultiMeasureRest #'staff-position
+  \revert MultiMeasureRest.staff-position
   \break
 
   % In two Voices, odd-numbered voices are under the top line
@@ -50,7 +50,7 @@ follows:
   % Separating multi-measure rests in more than two voices
   % requires an override
   << { R1 } \\ { R1 } \\
-     \once \override MultiMeasureRest #'staff-position = #0
+     \once \override MultiMeasureRest.staff-position = #0
      { R1 }
   >>
 
@@ -58,10 +58,10 @@ follows:
   % in all voices to avoid multiple instances being printed
   \compressFullBarRests
   <<
-   \revert MultiMeasureRest #'staff-position
+   \revert MultiMeasureRest.staff-position
     { R1*3 }
     \\
-   \revert MultiMeasureRest #'staff-position
+   \revert MultiMeasureRest.staff-position
     { R1*3 }
   >>
 }
index 047238c2a4d01ba5fe697b80b10784d193d350b3..c329547df0eae2e3984d7d7c66f322e6c928f464 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "breaks, repeats, symbols-and-glyphs, workaround"
@@ -30,14 +30,14 @@ line.
     }
 
     % Set segno sign as rehearsal mark and adjust size if needed
-    % \once \override Score.RehearsalMark #'font-size = #3
+    % \once \override Score.RehearsalMark.font-size = #3
     \mark \markup { \musicglyph #"scripts.segno" }
     \repeat unfold 2 {
       c4 c c c
     }
 
     % Set coda sign as rehearsal mark and adjust size if needed
-    \once \override Score.RehearsalMark #'font-size = #4
+    \once \override Score.RehearsalMark.font-size = #4
     \mark \markup { \musicglyph #"scripts.coda" }
     \repeat unfold 2 {
       c4 c c c
@@ -51,8 +51,8 @@ line.
     \bar "||"
 
     % Set segno sign as rehearsal mark and adjust size if needed
-    \once \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
-    % \once \override Score.RehearsalMark #'font-size = #3
+    \once \override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
+    % \once \override Score.RehearsalMark.font-size = #3
     \mark \markup { \musicglyph #"scripts.segno" }
 
     % Here begins the trickery!
@@ -64,13 +64,13 @@ line.
         % text line-aligned
         % ==================
         % Move text to the desired position
-        % \once \override TextScript #'extra-offset = #'( 2 . -3.5 )
+        % \once \override TextScript.extra-offset = #'( 2 . -3.5 )
         % | s1*0^\markup { D.S. al Coda } }
 
         % text center-aligned
         % ====================
         % Move text to the desired position
-        % \once \override TextScript #'extra-offset = #'( 6 . -5.0 )
+        % \once \override TextScript.extra-offset = #'( 6 . -5.0 )
         % | s1*0^\markup { \center-column { D.S. "al Coda" } }
 
         % text and symbols center-aligned
@@ -80,8 +80,8 @@ line.
           s1
           \bar ""
         }
-        \once \override TextScript #'extra-offset = #'( 0 . -3.0 )
-        \once \override TextScript #'word-space = #1.5
+        \once \override TextScript.extra-offset = #'( 0 . -3.0 )
+        \once \override TextScript.word-space = #1.5
         <>^\markup { \center-column { "D.S. al Coda" \line { \musicglyph #"scripts.coda" \musicglyph #"scripts.tenuto" \musicglyph #"scripts.coda"} } }
 
         % Increasing the unfold counter will expand the staff-free space
@@ -99,20 +99,20 @@ line.
    \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
+   \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
 
    % 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 )
+   % \once \override Score.RehearsalMark.extra-offset = #'( -2 . 1.75 )
 
    % Coda on new line, use this:
-   \once \override Score.RehearsalMark #'extra-offset = #'( -4.5 . 0 )
+   \once \override Score.RehearsalMark.extra-offset = #'( -4.5 . 0 )
 
-   \once \override Score.RehearsalMark #'font-size = #5
+   \once \override Score.RehearsalMark.font-size = #5
    \mark \markup { \musicglyph #"scripts.coda" }
 
    % The coda
index 206db5c2045be5d6d7f4769ab5a32515d25b972a..8348981a4e28bd116c24e5c7d178cb286e8741b7 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides"
@@ -19,7 +19,7 @@ set to false in order to be printed inside slurs.
 
 
 \relative c'' {
-  \override TextScript #'avoid-slur = #'inside
-  \override TextScript #'outside-staff-priority = ##f
+  \override TextScript.avoid-slur = #'inside
+  \override TextScript.outside-staff-priority = ##f
   c2(^\markup { \halign #-10 \natural } d4.) c8
 }
index e6c6c823aa7bf175c47f370e683fa4d912c7b163..9536864eaa9f9bc4576d24f987691f5df07b6db6 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -25,9 +25,9 @@ tuplet marking.  This can be overcome by setting @code{TupletBracket
    \times 2/3 { c'16 c'16 c'16 }
    \times 2/3 { c'16 c'16 c'16 }
    \times 2/3 { c'16 c'16 c'16 }
-   \override Score.RehearsalMark #'break-visibility = #'#(#t #t #t)
-   \override Score.RehearsalMark #'direction = #DOWN
-   \override Score.RehearsalMark #'self-alignment-X = #RIGHT
+   \override Score.RehearsalMark.break-visibility = #'#(#t #t #t)
+   \override Score.RehearsalMark.direction = #DOWN
+   \override Score.RehearsalMark.self-alignment-X = #RIGHT
 % due to issue 2362 the following line is commented
 %   \mark "Composed Feb 2007 - Feb 2008"
 % and a shorter mark is used.
@@ -37,15 +37,15 @@ tuplet marking.  This can be overcome by setting @code{TupletBracket
 \new Staff {
   \set tupletFullLength = ##t
 
-  \override TupletBracket #'full-length-to-extent = ##f
+  \override TupletBracket.full-length-to-extent = ##f
 
   \time 1/8
   \times 2/3 { c'16 c'16 c'16 }
   \times 2/3 { c'16 c'16 c'16 }
   \times 2/3 { c'16 c'16 c'16 }
-  \override Score.RehearsalMark #'break-visibility = #'#(#t #t #t)
-  \override Score.RehearsalMark #'direction = #DOWN
-  \override Score.RehearsalMark #'self-alignment-X = #RIGHT
+  \override Score.RehearsalMark.break-visibility = #'#(#t #t #t)
+  \override Score.RehearsalMark.direction = #DOWN
+  \override Score.RehearsalMark.self-alignment-X = #RIGHT
 % due to issue 2362 the following line is commented
 %   \mark "Composed Feb 2007 - Feb 2008"
 % and a shorter mark is used.
index f2d620be9e9b5ce4aa56d5f4df2a3ca38715245d..b8590edebfd3ca4a581ffb5bbc4f30bd4e088ae7 100644 (file)
@@ -1,16 +1,17 @@
-%% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
-%% Make any changes 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"
+% 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 = "repeats, tweaks-and-overrides"
 
   texidoc = "
-A @code{|:} bar line can be printed at the beginning of a piece, by
+A @code{.|:} bar line can be printed at the beginning of a piece, by
 overriding the relevant property:
 
 "
@@ -18,8 +19,9 @@ overriding the relevant property:
 } % begin verbatim
 
 
+
 \relative c'' {
-  \once \override Score.BreakAlignment #'break-align-orders =
+  \once \override Score.BreakAlignment.break-align-orders =
     #(make-vector 3 '(instrument-name
                       left-edge
                       ambitus
@@ -29,13 +31,13 @@ overriding the relevant property:
                       time-signature
                       staff-bar
                       custos))
-  \once \override Staff.TimeSignature #'space-alist =
+  \once \override Staff.TimeSignature.space-alist =
     #'((first-note . (fixed-space . 2.0))
        (right-edge . (extra-space . 0.5))
        ;; free up some space between time signature
        ;; and repeat bar line
        (staff-bar . (extra-space . 1)))
-  \bar "|:"
+  \bar ".|:"
   c1
   d1
   d4 e f g
index e75b2c37b339230b59da4d665e01ce1d870d0b3a..75c335bdeafccb02eb52708dcd13f99ded706346 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -20,7 +20,7 @@ measures except at the end of the line.
 
 
 \relative c' {
-  \override Score.BarNumber #'break-visibility = #end-of-line-invisible
+  \override Score.BarNumber.break-visibility = #end-of-line-invisible
   \set Score.currentBarNumber = #11
   % Permit first bar number to be printed
   \bar ""
index 838a1bb1e3eea0e4e53bcc892353bcecb2c827e9..63b65a8372c0cebfb01dad4faef1bb3cd679cbc0 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -19,19 +19,19 @@ Bar numbers can also be printed inside boxes or circles.
 
 \relative c' {
   % Prevent bar numbers at the end of a line and permit them elsewhere
-  \override Score.BarNumber #'break-visibility = #end-of-line-invisible
+  \override Score.BarNumber.break-visibility = #end-of-line-invisible
   \set Score.barNumberVisibility = #(every-nth-bar-number-visible 4)
 
   % Increase the size of the bar number by 2
-  \override Score.BarNumber #'font-size = #2
+  \override Score.BarNumber.font-size = #2
 
   % Draw a box round the following bar number(s)
-  \override Score.BarNumber #'stencil
+  \override Score.BarNumber.stencil
     = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
   \repeat unfold 5 { c1 }
 
   % Draw a circle round the following bar number(s)
-  \override Score.BarNumber #'stencil
+  \override Score.BarNumber.stencil
     = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
   \repeat unfold 4 { c1 } \bar "|."
 }
index 6c7e5a3217c9dd5156bb09950ae872d0062ccd64..634017285c1e2dab1d88cf3f153603e695e8a2d1 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks"
@@ -20,7 +20,7 @@ notation) by setting the @code{circled-tip} property of the
 
 
 \relative c'' {
-  \override Hairpin #'circled-tip = ##t
+  \override Hairpin.circled-tip = ##t
   c2\< c\!
   c4\> c\< c2\!
 }
index 0b6dd34387a722250eca5e5c58dceb8b214044e9..89e2fbf87a829a4013d9c213e5ac3b0b8f41df66 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "text"
@@ -22,8 +22,8 @@ to align the right end of the mark with the bar line.
 \relative c'' {
   g2 c
   d,2 a'
-  \once \override Score.RehearsalMark #'break-visibility = #end-of-line-visible
-  \once \override Score.RehearsalMark #'self-alignment-X = #RIGHT
+  \once \override Score.RehearsalMark.break-visibility = #end-of-line-visible
+  \once \override Score.RehearsalMark.self-alignment-X = #RIGHT
   \mark "D.C. al Fine"
   \break
   g2 b,
index f8b2ebc048afce180e552fca3d6faf19519d4055..4c563872b41e188604e7d401e58a765ee371e477 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, rhythms, tweaks-and-overrides"
@@ -23,12 +23,12 @@ of @code{MetronomeMark} or @code{RehearsalMark} appropriately.
 
 {
   % Metronome marks below the staff
-  \override Score.MetronomeMark #'direction = #DOWN
+  \override Score.MetronomeMark.direction = #DOWN
   \tempo 8. = 120
   c''1
 
   % Rehearsal marks below the staff
-  \override Score.RehearsalMark #'direction = #DOWN
+  \override Score.RehearsalMark.direction = #DOWN
   \mark \default
   c''1
 }
index 1e189dfa9b1f15c5ee8f4e8f7c8fa1bb590388bd..2f5821a6b7e96cfb51bc7c64381152d1ae0a3ae4 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contemporary-notation, percussion, real-music, really-cool, rhythms"
@@ -41,8 +41,8 @@ global = { \time 3/4 { s2.*3 } \bar "" \break { s2.*3 } }
     \remove "Timing_translator"
     \remove "Default_bar_line_engraver"
     \remove "Bar_number_engraver"
-    \override SpacingSpanner #'uniform-stretching = ##t
-    \override SpacingSpanner #'strict-note-spacing = ##t
+    \override SpacingSpanner.uniform-stretching = ##t
+    \override SpacingSpanner.strict-note-spacing = ##t
     proportionalNotationDuration = #(ly:make-moment 1 64)
   }
   \context {
@@ -60,7 +60,7 @@ global = { \time 3/4 { s2.*3 } \bar "" \break { s2.*3 } }
 Bassklarinette = \new Staff \with {
   \consists "Bar_number_engraver"
   barNumberVisibility = #(every-nth-bar-number-visible 2)
-  \override BarNumber #'break-visibility = #end-of-line-invisible
+  \override BarNumber.break-visibility = #end-of-line-invisible
 } <<
   \global {
     \bar "|"
index eb4c12e5d78c3fd1b663e08a7dc984abd48cbc26..90b9148df50469590cc7f11df4e373a67458f922 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "spacing, tweaks-and-overrides"
@@ -20,7 +20,7 @@ the note that occurs at the same time. This may cause collisions.
 
 
 \relative c'' <<
-  \override Score.SpacingSpanner #'strict-note-spacing = ##t
+  \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
index c2596fb4c5bf9b9cc1a9e5277d7512ec079c48fa..4edd6a59e58172bc594738f50c0cd2c85affb19e 100644 (file)
@@ -4,14 +4,14 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \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
+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.
 
@@ -24,8 +24,8 @@ hyphens.  The offset needed is established with trial and error.
     \new Voice = "voc" \relative c' { \stemDown a bes c8 b c4 }
   >>
   \new Lyrics \with {
-    \override LyricText #'extra-offset = #'(0 . 8.6)
-    \override LyricExtender #'extra-offset = #'(0 . 8.6)
-    \override LyricHyphen #'extra-offset = #'(0 . 8.6)
+    \override LyricText.extra-offset = #'(0 . 8.6)
+    \override LyricExtender.extra-offset = #'(0 . 8.6)
+    \override LyricHyphen.extra-offset = #'(0 . 8.6)
   } \lyricsto "voc" { La la -- la __ _ la }
 >>
index 55ea2aaba66980964c4241a7383291775653aa93..b83496137443d94decf2e74e1b7d96b8abd9715b 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "staff-notation"
@@ -33,7 +33,7 @@ quoteMe = \relative c' {
 
 original = \relative c'' {
   c8 d s2
-  \once \override NoteColumn #'ignore-collision = ##t
+  \once \override NoteColumn.ignore-collision = ##t
   es8 gis8
 }
 
@@ -54,7 +54,7 @@ original = \relative c'' {
     \new Voice {
       s4
       \set fontSize = #-4
-      \override Stem #'length-fraction = #(magstep -4)
+      \override Stem.length-fraction = #(magstep -4)
       \quoteDuring #"quoteMe" { \skip 2. }
     }
   >>
index dbe8cfa9d03a66bbed481b1127046586207e621c..a3323302ab143ffe4d539854f88de7723b90f4ff 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "winds"
@@ -20,8 +20,8 @@ instruments can be realized.
 % range chart for paetzold contrabass recorder
 
 centermarkup = {
-  \once \override TextScript #'self-alignment-X = #CENTER
-  \once \override TextScript #'X-offset =#(ly:make-simple-closure
+  \once \override TextScript.self-alignment-X = #CENTER
+  \once \override TextScript.X-offset =#(ly:make-simple-closure
   `(,+
   ,(ly:make-simple-closure (list
   ly:self-alignment-interface::centered-on-x-parent))
@@ -32,8 +32,8 @@ centermarkup = {
 \score {
   \new Staff \with {
     \remove "Time_signature_engraver"
-    \override Stem #'stencil = ##f
-    \override Flag #'stencil = ##f
+    \override Stem.stencil = ##f
+    \override Flag.stencil = ##f
     \consists "Horizontal_bracket_engraver"
   }
   {
@@ -44,19 +44,19 @@ centermarkup = {
     gis'1*1/4
     \stemDown a'4^\markup{1)}
     \centermarkup
-    \once \override TextScript #'padding = #2
+    \once \override TextScript.padding = #2
     bes'1*1/4_\markup{\override #'(baseline-skip . 1.7) \column
       { \fontsize #-5 \slashed-digit #0 \finger 1 \finger 2 \finger 3 \finger 4
     \finger 5 \finger 6 \finger 7} }
     b'1*1/4
     c''4^\markup{1)}
     \centermarkup
-    \once \override TextScript #'padding = #2
+    \once \override TextScript.padding = #2
     cis''1*1/4
     deh''1*1/4
     \centermarkup
-    \once \override TextScript #'padding = #2
-    \once \override Staff.HorizontalBracket #'direction = #UP
+    \once \override TextScript.padding = #2
+    \once \override Staff.HorizontalBracket.direction = #UP
     e''1*1/4_\markup{\override #'(baseline-skip . 1.7) \column
       { \fontsize #-5 \slashed-digit #0 \finger 1 \finger 2 \finger 4
     \finger 5} }\startGroup
index c8507a43eb4c8af7247dbf53c5bd79fc68061abf..ae51b3c9a724eb86c17961aa81e569088609a3f8 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.15.15
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -25,12 +25,12 @@ other effects may be obtained.
 
 startAcciaccaturaMusic = {
   <>(
-  \override Flag #'stroke-style = #"grace"
+  \override Flag.stroke-style = #"grace"
   \slurDashed
 }
 
 stopAcciaccaturaMusic = {
-  \revert Flag #'stroke-style
+  \revert Flag.stroke-style
   \slurSolid
   <>)
 }
index f615a50d7a7b39cab334933f8d70fb0e2f82751e..fd0fdce66220359594db3d42c0b52dd51d44c54e 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -23,12 +23,12 @@ a staff-by-staff basis.
   \new StaffGroup <<
     \new Staff {
       e1 | e
-      \once \override Staff.BarLine #'allow-span-bar = ##f
+      \once \override Staff.BarLine.allow-span-bar = ##f
       e1 | e | e
     }
     \new Staff {
       c1 | c | c
-      \once \override Staff.BarLine #'allow-span-bar = ##f
+      \once \override Staff.BarLine.allow-span-bar = ##f
       c1 | c
     }
     \new Staff {
index bcdfb4ee5a2ed2f2ee5cd6e4b1957a3be57adcd1..6cad882e87f416581562e381d62dd9074dfcc4cd 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "breaks, staff-notation, tweaks-and-overrides"
@@ -30,7 +30,7 @@ written.
   \context {
     \Staff \RemoveEmptyStaves
     % To use the setting globally, uncomment the following line:
-    % \override VerticalAxisGroup #'remove-first = ##t
+    % \override VerticalAxisGroup.remove-first = ##t
   }
 }
 \new StaffGroup <<
@@ -41,7 +41,7 @@ written.
   \new Staff {
     % To use the setting globally, comment this line,
     % uncomment the line in the \layout block above
-    \override Staff.VerticalAxisGroup #'remove-first = ##t
+    \override Staff.VerticalAxisGroup.remove-first = ##t
     R1 \break
     R
   }
index 0f284e5bc413c030b2b382ed799cd8f47457f471..068f180268e41a033bc1818648169d48ba45b975 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -30,7 +30,7 @@ Repeats headword
       \key df \major
       \time 2/4
       \set Score.currentBarNumber = #9
-      \bar "|:"
+      \bar ".|:"
       <af ef c>4 (
       <af gf c>8..
       <af ef c>32
@@ -84,7 +84,7 @@ Repeats headword
       \oneVoice
       r8
       \clef bass
-      \bar ":|"
+      \bar ":|."
    }
 
    \new Staff = LH {
index a2d56413647d3129506d38b47a509fa9a9fb6853..789f0b6d346682b3c5591e271ca9121955aee9f7 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "ancient-notation, rhythms, symbols-and-glyphs, tweaks-and-overrides"
@@ -30,22 +30,22 @@ Rests may be used in various styles.
 
 \new Staff \relative c {
   \cadenzaOn
-  \override Staff.Rest #'style = #'mensural
+  \override Staff.Rest.style = #'mensural
   r\maxima^\markup \typewriter { mensural }
   r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128
   \bar ""
 
-  \override Staff.Rest #'style = #'neomensural
+  \override Staff.Rest.style = #'neomensural
   r\maxima^\markup \typewriter { neomensural }
   r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128
   \bar ""
 
-  \override Staff.Rest #'style = #'classical
+  \override Staff.Rest.style = #'classical
   r\maxima^\markup \typewriter { classical }
   r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128
   \bar ""
 
-  \override Staff.Rest  #'style = #'default
+  \override Staff.Rest.style = #'default
   r\maxima^\markup \typewriter { default }
   r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128
 }
index 5feb8b92bd0f4b34d7428b572fa854041f7c9f3d..6d47071c7979cb17ab9b530e0e9089ca05c5e2d2 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -29,20 +29,20 @@ the appropriate duration).
 
 % Macro to print single slash
 rs = {
-  \once \override Rest #'stencil = #ly:percent-repeat-item-interface::beat-slash
-  \once \override Rest #'thickness = #0.48
-  \once \override Rest #'slope = #1.7
+  \once \override Rest.stencil = #ly:percent-repeat-item-interface::beat-slash
+  \once \override Rest.thickness = #0.48
+  \once \override Rest.slope = #1.7
   r4
 }
 
 % Function to print a specified number of slashes
 comp = #(define-music-function (parser location count) (integer?)
   #{
-    \override Rest #'stencil = #ly:percent-repeat-item-interface::beat-slash
-    \override Rest #'thickness = #0.48
-    \override Rest #'slope = #1.7
+    \override Rest.stencil = #ly:percent-repeat-item-interface::beat-slash
+    \override Rest.thickness = #0.48
+    \override Rest.slope = #1.7
     \repeat unfold $count { r4 }
-    \revert Rest #'stencil
+    \revert Rest.stencil
   #}
 )
 
index a05cbcfc3e132aa73439e054341d0c4985c86e5a..895de25a793d894561e194dbc2f88a16a7ebc1a4 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -26,9 +26,9 @@ Rhythms headword
 \layout {
   \context {
     \Score
-    \override SpacingSpanner #'base-shortest-duration =
+    \override SpacingSpanner.base-shortest-duration =
       #(ly:make-moment 1 40)
-      %\override SpacingSpanner #'strict-grace-spacing = ##t
+      %\override SpacingSpanner.strict-grace-spacing = ##t
   }
 }
 
@@ -65,7 +65,7 @@ Rhythms headword
          }
       <e''! e'>16
       <f'' f'>16 ] )
-      \once \override TextScript #'padding = #3.8
+      \once \override TextScript.padding = #3.8
       <g'' g'>16 ( \staccato -\markup { \italic cresc. }
       <a'' a'>16 ) \staccato
       <bf'' bf'>32  (
@@ -75,7 +75,7 @@ Rhythms headword
 
       |
 
-      \once \override DynamicLineSpanner #'padding = #2
+      \once \override DynamicLineSpanner.padding = #2
       b''32 ( \p \>
       c'''32
       d'''32
index 029486b1fe2fcb93abb771b87e1b7c2f01ab371d..4cdddcad383f1e17b5cd21d595050336f0b03ce3 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.15.20
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "template, real-music, specific-notation"
@@ -72,15 +72,15 @@ harmonies = \new ChordNames \chordmode {
   bes1
 }
 
-NoStem = { \override Stem #'transparent = ##t \override Flag #'transparent = ##t }
-NoNoteHead = \override NoteHead #'transparent = ##t
-ZeroBeam = \override Beam  #'positions = #'(0 . 0)
+NoStem = { \override Stem.transparent = ##t \override Flag.transparent = ##t }
+NoNoteHead = \override NoteHead.transparent = ##t
+ZeroBeam = \override Beam.positions = #'(0 . 0)
 
 staffTabLine = \new Staff \with {
   \remove "Time_signature_engraver"
   \remove "Clef_engraver"
 } {
-  \override Staff.StaffSymbol #'line-positions = #'(0)
+  \override Staff.StaffSymbol.line-positions = #'(0)
   % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated with a gridline
   \set Staff.midiInstrument = #"choir aahs"
   \key c \major
@@ -88,7 +88,7 @@ staffTabLine = \new Staff \with {
   {
     % disable the following line to see the the noteheads while writing the song
     \NoNoteHead
-    \override NoteHead #'no-ledgers = ##t
+    \override NoteHead.no-ledgers = ##t
 
     % The beam between 8th-notes is used to draw the push-line
     %How to fast write the push-lines:
@@ -160,7 +160,7 @@ AccordionTab= { \dynamicUp
     \consists "Grid_point_engraver"
     gridInterval = #(ly:make-moment 4 4) % 4/4 - tact. How many beats per bar
     % The following line has to be adjusted O-F-T-E-N.
-    \override GridPoint #'Y-extent = #'(-2 . -21)
+    \override GridPoint.Y-extent = #'(-2 . -21)
   }
   \context {
     \ChoirStaff
@@ -184,7 +184,7 @@ staffVoice = \new Staff = astaffvoice  {
 
 staffAccordionMel =
 \new Staff  \with { \remove "Clef_engraver" } {
-  \accidentalStyle "forget" %Set the accidentals (Vorzeichen) for each note,
+  \accidentalStyle forget %Set the accidentals (Vorzeichen) for each note,
   %do not remember them for the rest of the measure.
   \time 4/4
   \set Staff.instrumentName="Accordion"
@@ -196,13 +196,13 @@ staffAccordionMel =
 
 AltOn =
 #(define-music-function (parser location mag) (number?)
-  #{ \override Stem #'length = #(* 7.0 mag)
-      \override NoteHead #'font-size =
+  #{ \override Stem.length = #(* 7.0 mag)
+      \override NoteHead.font-size =
 #(inexact->exact (* (/ 6.0 (log 2.0)) (log mag))) #})
 
 AltOff = {
-  \revert Stem #'length
-  \revert NoteHead #'font-size
+  \revert Stem.length
+  \revert NoteHead.font-size
 }
 
 BassRhytm = {s4 s8 | c2 c2 | c2 s8 }
@@ -212,8 +212,8 @@ staffBassRhytm =
 \new Staff = staffbass \with { \remove "Clef_engraver" } {
   % This is not a RhythmicStaff  because it must be possible to append lyrics.
 
-  \override Score.GridLine #'extra-offset = #'( 13.0 . 0.0 ) % x.y
-  \override Staff.StaffSymbol #'line-positions = #'( 0 )
+  \override Score.GridLine.extra-offset = #'( 13.0 . 0.0 ) % x.y
+  \override Staff.StaffSymbol.line-positions = #'( 0 )
   % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated by a grid
   % Search for 'grid' in this page to find all related functions
   \time 4/4
index 2bb83f323928c65727b3824a289536630241cf3e..68e858368b367e93856bd1fb0628225294aece67 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -23,7 +23,7 @@ Random complex notation
       \key c \minor
       <<
         {
-          \revert Stem #'direction
+          \revert Stem.direction
           \change Staff = down
           \set subdivideBeams = ##t
           g16.[
@@ -52,9 +52,9 @@ Random complex notation
       \clef bass
       \key c \minor
       \set subdivideBeams = ##f
-      \override Stem #'french-beaming = ##t
-      \override Beam #'beam-thickness = #0.3
-      \override Stem #'thickness = #4.0
+      \override Stem.french-beaming = ##t
+      \override Beam.beam-thickness = #0.3
+      \override Stem.thickness = #4.0
       g'16[ b16 fis16 g16]
       <<
         \makeClusters {
@@ -62,7 +62,7 @@ Random complex notation
         }
         \\
         {
-          \override Staff.Arpeggio #'arpeggio-direction = #DOWN
+          \override Staff.Arpeggio.arpeggio-direction = #DOWN
           <cis, e, gis, b, cis>4\arpeggio
         }
       >>
index 72713fe3e2b669ab4dad7d8e7624722042597f50..5f81f13b4d2ef93303e6f3604aa4c28f92cc3e8a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "pitches, tweaks-and-overrides"
@@ -28,7 +28,7 @@ or the end.
 } % begin verbatim
 
 \new Staff {
-  \override Score.BreakAlignment #'break-align-orders =
+  \override Score.BreakAlignment.break-align-orders =
     #'#((left-edge ambitus breathing-sign clef staff-bar
                    key-cancellation key-signature time-signature custos)
 
index 0966e7ceae8b29a4ab6e97318849211a67f91f84..067fbbfd2c78f72e5c0cf832808e6648fa55e80e 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -22,7 +22,7 @@ by overriding the @code{'to-barline} property.
 \relative c'' {
   e4\< e2.
   e1\!
-  \override Hairpin #'to-barline = ##f
+  \override Hairpin.to-barline = ##f
   e4\< e2.
   e1\!
 }
index 7051646a03f6f8284cba70723a9920ca61d742af..f0e503ed5040d3948ea7858eda3436d47d974308 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "repeats"
@@ -19,7 +19,7 @@ be set using @code{doubleRepeatType}.
 
 \relative c'' {
   \repeat volta 1 { c1 }
-  \set Score.doubleRepeatType = #":|:"
+  \set Score.doubleRepeatType = #":..:"
   \repeat volta 1 { c1 }
   \set Score.doubleRepeatType = #":|.|:"
   \repeat volta 1 { c1 }
index d22a05d91d813dc2190d1e3ae44c8492015b3d31..dea361c49cbfdff667664b826d236bf709277c9f 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks"
@@ -20,6 +20,6 @@ If hairpins are too short, they can be lengthened by modifying the
 
 \relative c'' {
   c4\< c\! d\> e\!
-  \override Hairpin #'minimum-length = #5
+  \override Hairpin.minimum-length = #5
   << f1 { s4 s\< s\> s\! } >>
 }
index c4f595c816c286766bfddf9b1cbb94e5a09d67e8..ec67a11657c1a544fa30016fc2c8411984186ef9 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides, version-specific"
@@ -22,7 +22,7 @@ flageolets in the snippet. To mimic the behaviour of scripts outside a
 chord, 'add-stem-support would be required. So, the solution is to
 write the note as a chord and add the articulations inside the <...>.
 The direction will always be above, but one can tweak this via a
-\\tweak: @code{<c-\\tweak #'direction #DOWN-\\fermata^\\fermata>}
+\\tweak: @code{<c-\\tweak direction #DOWN-\\fermata^\\fermata>}
 
 "
   doctitle = "Showing the same articulation above and below a note or chord"
index 8c43c694f23763186ae62dc0c3a84c19bb73763d..dec4e68295002eb7ba6f1588eac0556ec9603b0c 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -28,15 +28,15 @@ Simultaneous notes
 \layout {
   \context {
     \Score
-    \override SpacingSpanner #'base-shortest-duration =
+    \override SpacingSpanner.base-shortest-duration =
     #(ly:make-moment 1 18)
-    \override NonMusicalPaperColumn #'line-break-system-details =
+    \override NonMusicalPaperColumn.line-break-system-details =
     #'((alignment-distances . (12)))
   }
 }
 
 trillFlat =
-\once \override TrillSpanner #'(bound-details left text) = \markup {
+\once \override TrillSpanner.bound-details.left.text = \markup {
   \concat {
     \musicglyph #"scripts.trill"
     \translate #'(-0.5 . 1.9)
@@ -80,7 +80,7 @@ trillFlat =
     % RH voice 2
     \new Voice {
       \voiceTwo
-      \override Voice.TrillSpanner #'direction = #DOWN
+      \override Voice.TrillSpanner.direction = #DOWN
       d''4.~ \f \startTrillSpan
       d''8.~ |
       d''4.~ d''8.~ |
@@ -94,7 +94,7 @@ trillFlat =
       d''4.~ \startTrillSpan
       d''8. ~ |
       d''4.~ d''8.~ |
-      \once \override NoteColumn #'ignore-collision = ##t
+      \once \override NoteColumn.ignore-collision = ##t
       \hideNotes
       d''8. \stopTrillSpan
       s4. |
@@ -123,7 +123,7 @@ trillFlat =
     <<
       \new Voice {
         \voiceOne
-        \override Voice.TrillSpanner #'direction = #UP
+        \override Voice.TrillSpanner.direction = #UP
         f'4.~ \startTrillSpan
         f'8.~ |
         f'4.~ f'8.~ |
@@ -131,7 +131,7 @@ trillFlat =
       }
       \new Voice {
         \voiceTwo
-        \override Voice.TrillSpanner #'direction = #DOWN
+        \override Voice.TrillSpanner.direction = #DOWN
         bf8.[ bf8. bf8.] |
         bf8.[ bf8. bf8.] |
         bf8.
index 970380d2f309713380c3f6404ddd733fa5581795..760135cda9a0180aa34d08e3dbebf7353b8156f8 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings"
@@ -21,12 +21,12 @@ slides = {
   c'8\3(\glissando d'8\3)
   c'8\3\glissando d'8\3
   \hideNotes
-  \grace { g16\3\glissando }
+  \grace { g16\glissando }
   \unHideNotes
   c'4\3
   \afterGrace d'4\3\glissando {
   \stemDown \hideNotes
-  g16\3 }
+  g16 }
   \unHideNotes
 }
 
@@ -38,10 +38,10 @@ slides = {
   \layout {
     \context {
       \Score
-      \override Glissando #'minimum-length = #4
-      \override Glissando #'springs-and-rods =
+      \override Glissando.minimum-length = #4
+      \override Glissando.springs-and-rods =
                           #ly:spanner::set-spacing-rods
-      \override Glissando #'thickness = #2
+      \override Glissando.thickness = #2
     }
   }
 }
index 5b6ebcb365b7b88488d16b0fe95bbccc86948ff7..6e81017f846d1341681d00a4d094468feac10a01 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.15.32
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 \include "catalan.ly"
 
 \header {
@@ -36,7 +36,7 @@ trompette = \relative do'' {
   \key mib \major
   \time 2/4
   R2^\markup { \italic Comodo } |
-  r8 \once \override TextScript #'padding = #2.0
+  r8 \once \override TextScript.padding = #2.0
   sib16-.^\markup {\dynamic p \italic grazioso} do-. mib( re)-. do-. sib-. |
   re8-. r8 re4->( |
   re8) do16-. re-. mib( re) do-. re-. |
index 483a17253e8a47792de399b02bebf7801f4b1fc9..ab14ed7251f82612734624ba5149410e5d1b6493 100644 (file)
@@ -3,6 +3,7 @@ adding-an-extra-staff-at-a-line-break.ly
 adding-an-extra-staff.ly
 adding-indicators-to-staves-which-get-split-after-a-break.ly
 adding-orchestral-cues-to-a-vocal-score.ly
+adding-timing-marks-to-long-glissandi.ly
 alternative-bar-numbering.ly
 changing-the-number-of-lines-in-a-staff.ly
 changing-the-staff-size.ly
@@ -10,6 +11,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-glissandi-across-repeats.ly
 forcing-measure-width-to-adapt-to-metronomemarks-width.ly
 glissandi-can-skip-grobs.ly
 how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-1.ly
@@ -17,6 +19,7 @@ how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly
 incipit.ly
 inserting-score-fragments-above-a-staff,-as-markups.ly
 letter-tablature-formatting.ly
+making-glissandi-breakable.ly
 making-some-staff-lines-thicker-than-the-others.ly
 measure-counter.ly
 mensurstriche-layout-bar-lines-between-the-staves.ly
index 1e8806041290ec7f2ba509fe8f2187e1be6f51e0..b5960df4974eb6434ea8de750ac3d86a0a36c8b1 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "fretted-strings"
@@ -24,7 +24,7 @@ example.
     \tabFullNotation
     g16 b d g b d g b
     \stemDown
-    \override Beam #'concaveness = #10000
+    \override Beam.concaveness = #10000
     g,,16 b d g b d g b
   }
 }
index fcc096e5b20bd91535f79582b9b7a875589d6875..ca7ba8362573ca7010f59f43a003c8a0b384936e 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contemporary-notation, rhythms"
@@ -38,10 +38,10 @@ the different notations.
   g'16[^\markup { beams over rests } f' r d']
 
   % N.B. use Score.Stem to set for the whole score.
-  \override Staff.Stem #'stemlet-length = #0.75
+  \override Staff.Stem.stemlet-length = #0.75
 
   c'16[^\markup { stemlets over rests } d' r f']
   g'16[^\markup { stemlets and no rests } f'
-  \once \override Rest #'transparent = ##t
+  \once \override Rest.transparent = ##t
   r16 d']
 }
index 68779a8b4d36f669a3c8ae962e85da812fbd6800..238479a41329370478f3e1a29f470ea645f83f65 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.15.28
+%% Note: this file works from version 2.16.0
 \version "2.16.0"
 
 \header {
index 9e34f1ed6471617738690ebc92def167e1e5d95a..726e69b778ac901b19d6f6c8e7e59d995fa4dc7b 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.15.20
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, text, fretted-strings, tweaks-and-overrides, scheme-language"
@@ -22,10 +22,10 @@ series of notes is supposed to be played all on the same string.
 stringNumberSpanner =
 #(define-music-function (parser location StringNumber) (string?)
   #{
-    \override TextSpanner #'style = #'solid
-    \override TextSpanner #'font-size = #-5
-    \override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER
-    \override TextSpanner #'(bound-details left text) = \markup { \circle \number #StringNumber }
+    \override TextSpanner.style = #'solid
+    \override TextSpanner.font-size = #-5
+    \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
+    \override TextSpanner.bound-details.left.text = \markup { \circle \number #StringNumber }
   #})
 
 
index a37404cadf1249cc3d2a6fed9bb1ebb704f3fa48..0ecae8edd5560507be14ac459186822006d4886e 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "simultaneous-notes, tweaks-and-overrides"
@@ -25,7 +25,7 @@ used with care.
 } % begin verbatim
 
 
-ignore = \override NoteColumn #'ignore-collision = ##t
+ignore = \override NoteColumn.ignore-collision = ##t
 
 \relative c' {
   <<
index 51542ae679fa62282d403480beece1ee80f85efb..46cea080dad816e8601330fd51be452f76d33a13 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "paper-and-layout"
index 4254c582363c7a4d9c5f6189ae71a55c672119d5..05ec402058b58be71ed9e7544565c08f0ccf0224 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -27,7 +27,7 @@ Text headword
 \layout {
   \context {
     \Score
-    \override SpacingSpanner #'base-shortest-duration =
+    \override SpacingSpanner.base-shortest-duration =
     #(ly:make-moment 1 20)
   }
 }
@@ -40,7 +40,7 @@ Text headword
     \key af \major
     \time 3/4
 
-    \once \override TextScript #'staff-padding = #4
+    \once \override TextScript.staff-padding = #4
     <c'' af'>4. (
     _ \markup { \dynamic p \italic { con amabilità } }
     <af' ef'>8 )
@@ -66,7 +66,7 @@ Text headword
 
         |
 
-        \once \override TextScript #'staff-padding = #4
+        \once \override TextScript.staff-padding = #4
         ef''8. (
         _ \markup { \italic { tranqu. } }
         d''16 )
@@ -90,7 +90,7 @@ Text headword
     >>
 
     \oneVoice
-    \once \override TextScript #'staff-padding = #4
+    \once \override TextScript.staff-padding = #4
     df''32
     _ \markup { \italic dolce }
     c''32
@@ -103,8 +103,7 @@ Text headword
 
     |
     \break
-    \overrideProperty "Score.NonMusicalPaperColumn"
-    #'line-break-system-details #'((alignment-distances . (12)))
+    \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (12)))
 
     c''4. (
     ^ \markup \italic { cantabile, con intimissimo sentimento,
@@ -183,9 +182,9 @@ Text headword
 
     |
 
-    \override Staff.SustainPedalLineSpanner #'outside-staff-priority = #1000
-    \override Staff.SustainPedalLineSpanner #'staff-padding = #7
-    \once \override TextScript #'padding = #2
+    \override Staff.SustainPedalLineSpanner.outside-staff-priority = #1000
+    \override Staff.SustainPedalLineSpanner.staff-padding = #7
+    \once \override TextScript.padding = #2
     af16 \sustainOn
     ^ \markup \italic { non staccato }
     _ \markup \italic { molto \concat { \dynamic { p } , } sempre tranquillo
@@ -219,7 +218,7 @@ Text headword
 
     |
 
-    \override Staff.SustainPedalLineSpanner #'staff-padding = #4
+    \override Staff.SustainPedalLineSpanner.staff-padding = #4
     df'16 \sustainOn
     <bf' g' ef'>16
     <bf' g' ef'>16
index f7acbae1f183a1847f0ffe94f509a1d45e77d49c..5eebaacc095b7eb687dc1da3a415c1d656040409 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "specific-notation, staff-notation, tweaks-and-overrides"
@@ -18,7 +18,7 @@ Another way to put the time signature in parenthesis
 
 
 \relative c'' {
-  \override Staff.TimeSignature #'stencil = #(lambda (grob)
+  \override Staff.TimeSignature.stencil = #(lambda (grob)
     (parenthesize-stencil (ly:time-signature::print grob) 0.1 0.4 0.4 0.1 ))
   \time 2/4
   a4 b8 c
index 6d792fb6c15de875f13c628d34401e8898f6cb0a..257034d9599675551e7bd4a5d142a1ecda9c392d 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "specific-notation, staff-notation, tweaks-and-overrides"
@@ -18,7 +18,7 @@ The time signature can be enclosed within parentheses.
 
 
 \relative c'' {
-  \override Staff.TimeSignature #'stencil = #(lambda (grob)
+  \override Staff.TimeSignature.stencil = #(lambda (grob)
     (bracketify-stencil (ly:time-signature::print grob) Y 0.1 0.2 0.1))
   \time 2/4
   a4 b8 c
index 188484760bd0b869b7fb50602835a140df98be4a..bee629dc693d0b3daddfaf3ed1190da66668485b 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -12,9 +12,9 @@
   texidoc = "
 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}
+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
+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}.
 
@@ -27,17 +27,17 @@ the single-digit style to only one time signature, use the
   \time 3/4
   c4 c c
   % Change the style permanently
-  \override Staff.TimeSignature #'style = #'single-digit
+  \override Staff.TimeSignature.style = #'single-digit
   \time 2/4
   c4 c
   \time 3/4
   c4 c c
   % Revert to default style:
-  \revert Staff.TimeSignature #'style
+  \revert Staff.TimeSignature.style
   \time 2/4
   c4 c
   % single-digit style only for the next time signature
-  \once \override Staff.TimeSignature #'style = #'single-digit
+  \once \override Staff.TimeSignature.style = #'single-digit
   \time 5/4
   c4 c c c c
   \time 2/4
index 8692f345bffacb1bde7a47a636973847b5e0b7ed..0de6d91f4ae6ed8e09808891e2587ed02f205b71 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "ancient-notation, specific-notation, tweaks-and-overrides, workaround"
@@ -26,10 +26,10 @@ global = {
   \key g \major
   \time 4/4
   %make the staff lines invisible on staves
-  \override Staff.BarLine #'transparent = ##t
+  \override Staff.BarLine.transparent = ##t
   \skip 1*8 % the actual music
   % let finis bar go through all staves
-  \override Staff.BarLine #'transparent = ##f
+  \override Staff.BarLine.transparent = ##f
   % finis bar
   \bar "|."
 }
@@ -42,7 +42,7 @@ discantusNotes = {
     c'4 e'4.( d'8 c' b |
     a4) b a2 |
     b4.( c'8 d'4) c'4 |
-    \once \override NoteHead #'transparent = ##t c'1 |
+    \once \override NoteHead.transparent = ##t c'1 |
     b\breve |
   }
 }
@@ -64,7 +64,7 @@ altusNotes = {
     a2 g4 e |
     fis g4.( fis16 e fis4) |
     g1 |
-    \once \override NoteHead #'transparent = ##t g1 |
+    \once \override NoteHead.transparent = ##t g1 |
     g\breve |
   }
 }
@@ -84,7 +84,7 @@ tenorNotes = {
     R1 |
     R1 |
     r2 d'2. d'4 b e' | % two bars
-    \once \override NoteHead #'transparent = ##t e'1 |
+    \once \override NoteHead.transparent = ##t e'1 |
     d'\breve |
   }
 }
@@ -103,7 +103,7 @@ bassusNotes = {
     R1 |
     R1 |
     g2. e4 |
-    \once \override NoteHead #'transparent = ##t e1 |
+    \once \override NoteHead.transparent = ##t e1 |
     g\breve |
   }
 }
@@ -118,9 +118,9 @@ incipitDiscantus = \markup {
   \score {
     {
       \set Staff.instrumentName = #"Discantus "
-      \override NoteHead #'style = #'neomensural
-      \override Rest #'style = #'neomensural
-      \override Staff.TimeSignature #'style = #'neomensural
+      \override NoteHead.style = #'neomensural
+      \override Rest.style = #'neomensural
+      \override Staff.TimeSignature.style = #'neomensural
       \cadenzaOn
       \clef "neomensural-c1"
       \key f \major
@@ -143,9 +143,9 @@ incipitAltus = \markup {
   \score {
     {
       \set Staff.instrumentName = #"Altus "
-      \override NoteHead #'style = #'neomensural
-      \override Rest #'style = #'neomensural
-      \override Staff.TimeSignature #'style = #'neomensural
+      \override NoteHead.style = #'neomensural
+      \override Rest.style = #'neomensural
+      \override Staff.TimeSignature.style = #'neomensural
       \cadenzaOn
       \clef "neomensural-c3"
       \key f \major
@@ -169,9 +169,9 @@ incipitTenor = \markup {
   \score {
     {
       \set Staff.instrumentName = #"Tenor  "
-      \override NoteHead #'style = #'neomensural
-      \override Rest #'style = #'neomensural
-      \override Staff.TimeSignature #'style = #'neomensural
+      \override NoteHead.style = #'neomensural
+      \override Rest.style = #'neomensural
+      \override Staff.TimeSignature.style = #'neomensural
       \cadenzaOn
       \clef "neomensural-c4"
       \key f \major
@@ -197,9 +197,9 @@ incipitBassus = \markup {
   \score {
     {
       \set Staff.instrumentName = #"Bassus  "
-      \override NoteHead #'style = #'neomensural
-      \override Rest #'style = #'neomensural
-      \override Staff.TimeSignature #'style = #'neomensural
+      \override NoteHead.style = #'neomensural
+      \override Rest.style = #'neomensural
+      \override Staff.TimeSignature.style = #'neomensural
       \cadenzaOn
       \clef "bass"
       \key f \major
@@ -259,13 +259,13 @@ incipitBassus = \markup {
     \context {
       \Score
       % no bars in staves
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
     }
     % the next three instructions keep the lyrics between the bar lines
     \context {
       \Lyrics
       \consists "Bar_engraver"
-      \override BarLine #'transparent = ##t
+      \override BarLine.transparent = ##t
     }
     \context {
       \StaffGroup
@@ -274,7 +274,7 @@ incipitBassus = \markup {
     \context {
       \Voice
       % no slurs
-      \override Slur #'transparent = ##t
+      \override Slur.transparent = ##t
       % 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
index 2afa28fc4df7324e57230f2e6351419ed18ca73c..b7dbf1918de604284a5fcc5b9967b57f1e9c1695 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
index 8ceb9fa8ac236c789a678ce8512ec261844bf242..1e21cb226b617d30bcc0ce747080b5a58766ad21 100644 (file)
@@ -1,3 +1,4 @@
+adding-timing-marks-to-long-glissandi.ly
 adjusting-grace-note-spacing.ly
 altering-the-length-of-beamed-stems.ly
 alternative-bar-numbering.ly
@@ -33,6 +34,7 @@ drawing-boxes-around-grobs.ly
 drawing-circles-around-various-objects.ly
 dynamics-custom-text-spanner-postfix.ly
 dynamics-text-spanner-postfix.ly
+extending-glissandi-across-repeats.ly
 fine-tuning-pedal-brackets.ly
 forcing-horizontal-shift-of-notes.ly
 fret-diagrams-explained-and-developed.ly
@@ -47,6 +49,7 @@ inserting-a-caesura.ly
 keep-change-clefs-full-sized.ly
 line-arrows.ly
 making-an-object-invisible-with-the-transparent-property.ly
+making-glissandi-breakable.ly
 manually-controlling-beam-positions.ly
 mensurstriche-layout-bar-lines-between-the-staves.ly
 moving-dotted-notes-in-polyphony.ly
index 17ec6b723e2644e2a85a7b261a92f529d47e2fe1..c6d9644ab9dad95bef97dcf0b7753d6ae079e8aa 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -56,7 +56,7 @@ fermaTa    = \markup \musicglyph #"scripts.ufermata"
 accel   = \markup \tiny \italic \bold "accel..."
 ritar   = \markup \tiny \italic \bold "ritar..."
 
-ignore     = \override NoteColumn #'ignore-collision = ##t
+ignore     = \override NoteColumn.ignore-collision = ##t
 
 
 %%
@@ -76,9 +76,9 @@ quatre         = \markup \teeny "IV"
 %% Shifting Notes
 %%
 
-shift      = \once \override NoteColumn #'force-hshift = #0.9
-shifta     = \once \override NoteColumn #'force-hshift = #1.2
-shiftb     = \once \override NoteColumn #'force-hshift = #1.4
+shift      = \once \override NoteColumn.force-hshift = #0.9
+shifta     = \once \override NoteColumn.force-hshift = #1.2
+shiftb     = \once \override NoteColumn.force-hshift = #1.4
 
 
 %%
@@ -86,21 +86,21 @@ shiftb     = \once \override NoteColumn #'force-hshift = #1.4
 %%
 
 % aniente        = "a niente"
-aniente        = \once \override Hairpin #'circled-tip = ##t
+aniente        = \once \override Hairpin.circled-tip = ##t
 
 
 %%
 %% Tuplets
 %%
 
-tupletbp       = \once \override Staff.TupletBracket #'padding = #2.25
+tupletbp       = \once \override Staff.TupletBracket.padding = #2.25
 
 
 %%
 %% Flag [Note Head - Stem]
 %%
 
-noflag         = \once \override Flag #'style = #'no-flag
+noflag         = \once \override Flag.style = #'no-flag
 
 %%%
 %%% Functions
@@ -126,9 +126,9 @@ ViolinSolo = \relative c' {
   \voiceOne
 
   \set Score.markFormatter     =  #format-mark-box-numbers
-  \override Score.VoltaBracket #'font-name                  = #"sans"
-  \override Score.VoltaBracket #'extra-offset               = #'(0 . 1)
-  \override SpacingSpanner     #'uniform-stretching         = ##t
+  \override Score.VoltaBracket.font-name                  = #"sans"
+  \override Score.VoltaBracket.extra-offset               = #'(0 . 1)
+  \override SpacingSpanner.uniform-stretching         = ##t
 
 
   %% Measure 1
@@ -178,7 +178,7 @@ ViolinSolo = \relative c' {
 
   %% Measure 6
   \time 5/8
-  \once \override Beam #'grow-direction = #RIGHT  % \featherDurations #(ly:make-moment 2 3)
+  \once \override Beam.grow-direction = #RIGHT  % \featherDurations #(ly:make-moment 2 3)
   { d16 \staccato
     [ d \staccato d \staccato d \staccato d \staccato d \staccato d \staccato d \staccato d \staccato d \staccato]
   }
@@ -220,8 +220,8 @@ ViolinSolo = \relative c' {
       \new Staff \ViolinSolo
     >>
 
-    \override Score.Rest #'transparent = ##t
-    \set Score.defaultBarType          = "empty"
+    \override Score.Rest.transparent = ##t
+    \set Score.defaultBarType          = "-"
   >>
 
   \layout  {
diff --git a/Documentation/snippets/using-a-tick-as-the-breath-mark-symbol.ly b/Documentation/snippets/using-a-tick-as-the-breath-mark-symbol.ly
new file mode 100644 (file)
index 0000000..27c8049
--- /dev/null
@@ -0,0 +1,33 @@
+% 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 = "expressive-marks"
+
+  texidoc = "
+Vocal and wind music frequently uses a tick mark as a breathing sign.  This
+indicates a breath that subtracts a little time from the previous note rather
+than causing a short pause, which is indicated by the comma breath mark.  The
+mark can be moved up a little to take it away from the stave.
+"
+  doctitle = "Using a tick as the breath mark symbol"
+} % begin verbatim
+
+
+\relative c'' {
+  c2
+  \breathe
+  d2
+  \override BreathingSign.Y-offset = #2.6
+  \override BreathingSign.text =
+    \markup { \musicglyph #"scripts.tickmark" }
+  c2
+  \breathe
+  d2
+}
index b037233ba4f45cb10638fa8726a75340f81e2d98..3338586384e5c4cf501bda9191a73f166515aafa 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.15.15
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -29,12 +29,12 @@ testnotes = {
   \time 2/4
   \testnotes
 
-  \override Flag #'stencil = #modern-straight-flag
+  \override Flag.stencil = #modern-straight-flag
   \testnotes
 
-  \override Flag #'stencil = #old-straight-flag
+  \override Flag.stencil = #old-straight-flag
   \testnotes
 
-  \revert Flag #'stencil
+  \revert Flag.stencil
   \testnotes
 }
index c5bcb7e88dc1a8f88346248faa83663a7c2a99ce..a348603f9abb305b1c98045b939d4dc6cf3a57b2 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.15.15
-\version "2.16.0"
+%% Note: this file works from version 2.17.6
+\version "2.17.6"
 
 \header {
   lsrtags = "rhythms"
@@ -20,6 +20,6 @@ other situations.
 
 
 \relative c'' {
-  \override Flag #'stroke-style = #"grace"
+  \override Flag.stroke-style = #"grace"
   c8( d2) e8( f4)
 }
index 6b8c9f468eaccb859b7f3e98e18631e4238041b2..c2e468501521a9c768dd4a8745367e5adfe3dc76 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "devel, scheme-language, tweaks-and-overrides"
@@ -68,10 +68,10 @@ Example console output:
 
 \relative c' {
   %% display grobs for each note head:
-  %\override NoteHead #'before-line-breaking = #display-grobs
+  %\override NoteHead.before-line-breaking = #display-grobs
   <c
   %% or just for one:
-  \tweak #'before-line-breaking #display-grobs
+  \tweak before-line-breaking #display-grobs
   es
   g>1\arpeggio
 }
index b732903167dac41358ad21e98853a408ae0b31bf..976387a0d1c36e334f56bd647e01f1c7c8de355a 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, really-cool, scheme-language, tweaks-and-overrides"
@@ -34,12 +34,12 @@ parallelogram =
     (cons 0 1.3125)
     (cons -.75 .75))
 
-myNoteHeads = \override NoteHead #'stencil = \parallelogram
-normalNoteHeads = \revert NoteHead #'stencil
+myNoteHeads = \override NoteHead.stencil = \parallelogram
+normalNoteHeads = \revert NoteHead.stencil
 
 \relative c'' {
   \myNoteHeads
   g4 d'
   \normalNoteHeads
-  <f, \tweak #'stencil \parallelogram b e>4 d
+  <f, \tweak stencil \parallelogram b e>4 d
 }
index 43540003dc6d610b2b41d4d4934f001312e460c7..f6bb8ed356c507fc2b44814b08ce8f478e7b0374 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "really-simple, tweaks-and-overrides"
@@ -22,9 +22,9 @@ Here are some examples of available tweaks.
   \time 2/4
   \set fingeringOrientations = #'(right)
   <
-    \tweak #'font-size #3 c
-    \tweak #'color #red d-\tweak #'font-size #8 -4
-    \tweak #'style #'cross g
-    \tweak #'duration-log #2 a
+    \tweak font-size #3 c
+    \tweak color #red d-\tweak font-size #8 -4
+    \tweak style #'cross g
+    \tweak duration-log #2 a
   >2
 }
index 70c0a834237ed643a5574034f1a7b53548f38b3b..2e9f1a32431d1c8614ea4cb84e9f71f4229702df 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "editorial-annotations, expressive-marks"
@@ -30,10 +30,10 @@ is not masked.
 } % begin verbatim
 
 {
-  \override Score.StaffSymbol #'layer = #4
-  \override Staff.TimeSignature #'layer = #3
+  \override Score.StaffSymbol.layer = #4
+  \override Staff.TimeSignature.layer = #3
   b'2 b'~
-  \once \override Staff.TimeSignature #'whiteout = ##t
+  \once \override Staff.TimeSignature.whiteout = ##t
   \time 3/4
   b' r4
 }
index 31ec39112c2f7495ddc2934d95c125ace22db13a..5fcbb8e39b11b474be3a5fd3691801c1317c5a17 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "spacing, tweaks-and-overrides, workaround"
@@ -32,8 +32,8 @@ music = \relative c' {
 {
   \music
   \break
-  \override DynamicLineSpanner #'staff-padding = #2.0
-  \override DynamicLineSpanner #'Y-extent = #'(-1.5 . 1.5)
-  \override TextScript #'Y-extent = #'(-1.5 . 1.5)
+  \override DynamicLineSpanner.staff-padding = #2.0
+  \override DynamicLineSpanner.Y-extent = #'(-1.5 . 1.5)
+  \override TextScript.Y-extent = #'(-1.5 . 1.5)
   \music
 }
index a6fd2906b8425a96a681ef63faf82546f456c705..0adb0dec41def52b13ff6e762b25842cf82ed534 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "expressive-marks"
@@ -21,7 +21,7 @@ of the @code{DynamicLineSpanner} object.
 
 
 \relative c' {
-  \override DynamicLineSpanner #'staff-padding = #4
+  \override DynamicLineSpanner.staff-padding = #4
   c2\p f\mf
   g2\< b4\> c\!
 }
index b93afc58fcb5dd134d6464235d63c8b3c4f6dc26..dfbb0c8a503c38d41ad00cff9dcfd0f3dd960e6d 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "spacing, tweaks-and-overrides, vocal-music"
@@ -36,11 +36,11 @@ positioning of lyrics and ossias.
       \new Staff \with {
         alignAboveContext = #"3"
         fontSize = #-2
-        \override StaffSymbol #'staff-space = #(magstep -2)
+        \override StaffSymbol.staff-space = #(magstep -2)
         \remove "Time_signature_engraver"
       } {
         \times 4/6 {
-          \override TextScript #'padding = #3
+          \override TextScript.padding = #3
           c8[^"ossia above" d e d e f]
         }
       }
index a819d064ccf695499a87e4e97fa7294aa1522d0f..7c59cd3b1620509a15a17fff8bda7de53fcab57e 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "vocal-music"
@@ -25,16 +25,16 @@ rightbrace = \markup { \rotate #180 \leftbrace }
 
 dropLyrics =
 {
-    \override LyricText #'extra-offset = #'(0 . -5)
-    \override LyricHyphen #'extra-offset = #'(0 . -5)
-    \override LyricExtender #'extra-offset = #'(0 . -5)
+    \override LyricText.extra-offset = #'(0 . -5)
+    \override LyricHyphen.extra-offset = #'(0 . -5)
+    \override LyricExtender.extra-offset = #'(0 . -5)
 }
 
 raiseLyrics =
 {
-    \revert LyricText #'extra-offset
-    \revert LyricHyphen #'extra-offset
-    \revert LyricExtender #'extra-offset
+    \revert LyricText.extra-offset
+    \revert LyricHyphen.extra-offset
+    \revert LyricExtender.extra-offset
 }
 
 skipFour = \repeat unfold 4 { \skip 8 }
index 59754d98ee480133791b2f26498ce5526a93b306..8e1796fd47d0b11b50aa25464b5ea8765e6d472e 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "automatic-notation, keyboards, template, vocal-music"
@@ -67,7 +67,7 @@ bassWords = \lyricmode {
     \new ChoirStaff <<
       \new Lyrics = "sopranos" \with {
         % This is needed for lyrics above a staff
-        \override VerticalAxisGroup #'staff-affinity = #DOWN
+        \override VerticalAxisGroup.staff-affinity = #DOWN
       }
       \new Staff = "women" <<
         \new Voice = "sopranos" { \voiceOne << \global \sopMusic >> }
@@ -76,7 +76,7 @@ bassWords = \lyricmode {
       \new Lyrics = "altos"
       \new Lyrics = "tenors" \with {
         % This is needed for lyrics above a staff
-        \override VerticalAxisGroup #'staff-affinity = #DOWN
+        \override VerticalAxisGroup.staff-affinity = #DOWN
       }
 
       \new Staff = "men" <<
index 86228b93fa4fb6c42550f9beecd81fb10823c958..51ffe694b2f6b7ee7bcbc4fdf5d186211ddc83cf 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "contexts-and-engravers, template, vocal-music"
@@ -101,7 +101,7 @@ BassLyrics = \lyricmode {
     \context { \Staff
       % these lines prevent empty staves from being printed
       \RemoveEmptyStaves
-      \override VerticalAxisGroup #'remove-first = ##t
+      \override VerticalAxisGroup.remove-first = ##t
     }
   }
 }
index c657cfe192a61031f62b1f2387b8d5c0621f011a..100d57e09857f97cee5c6b65ae52256689c94832 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "really-simple, template, vocal-music"
@@ -65,7 +65,7 @@ bassWords = \lyricmode {
   \new ChoirStaff <<
     \new Lyrics = "sopranos" \with {
       % this is needed for lyrics above a staff
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff = "women" <<
       \new Voice = "sopranos" {
@@ -80,7 +80,7 @@ bassWords = \lyricmode {
     \new Lyrics = "altos"
     \new Lyrics = "tenors" \with {
       % this is needed for lyrics above a staff
-      \override VerticalAxisGroup #'staff-affinity = #DOWN
+      \override VerticalAxisGroup.staff-affinity = #DOWN
     }
     \new Staff = "men" <<
       \clef bass
index 14b21c9c0ae336bd1de92d54881ce97a72fe517c..d09d784396542d4ca302646832e24d999b191deb 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -19,8 +19,8 @@ Vocal headword
 \layout {
   \context {
     \Score
-    \override PaperColumn #'keep-inside-line = ##t
-    \override NonMusicalPaperColumn #'keep-inside-line = ##t
+    \override PaperColumn.keep-inside-line = ##t
+    \override NonMusicalPaperColumn.keep-inside-line = ##t
   }
 }
 
@@ -56,7 +56,7 @@ Vocal headword
     e([ d)] d([ cis d a)]
     g8([ fis)] fis([ e d c)]
     c8([ b)] g'2~
-    \once \override Script #'outside-staff-priority = #1 % put fermata closer to staff
+    \once \override Script.outside-staff-priority = #1 % put fermata closer to staff
     g4.\fermata ^\markup { \small \italic "ad libitum" } e8[ cis!] d
     d8 a a4 r \bar "||"
 
index ca451e32a81fa7b7cc450bf786030998d3b1e78b..821403d192245f6ace9d14eea0f57c156d1cd10b 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   lsrtags = "headword"
@@ -23,10 +23,10 @@ Wind headword
   \new StaffGroup <<
     \new Staff \relative c'' {
       \set Staff.instrumentName = "Flauto I,II"
-      \once \override Score.RehearsalMark #'self-alignment-X = #-1
-      \once \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
-      \once \override Score.TimeSignature #'break-align-anchor-alignment = #LEFT
-      \once \override Score.RehearsalMark #'padding = #4
+      \once \override Score.RehearsalMark.self-alignment-X = #-1
+      \once \override Score.RehearsalMark.break-align-symbols = #'(time-signature)
+      \once \override Score.TimeSignature.break-align-anchor-alignment = #LEFT
+      \once \override Score.RehearsalMark.padding = #4
       \mark \markup \large \bold {Moderato assai}
       \key d \major
       \time 2/4
index f472cdafeae4dc5973f69043c4a3529fb53081b6..011aa3dcc6a7b2773f2bd76c1e306e603f84a0f1 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.14.0
+%% Note: this file works from version 2.16.0
 \version "2.16.0"
 
 \header {
diff --git a/Documentation/usage/GNUmakefile b/Documentation/usage/GNUmakefile
deleted file mode 100644 (file)
index 26e33a6..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth = ../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-LATEX_FILES =$(call src-wildcard,*.latex)
-EXTRA_DIST_FILES = $(LATEX_FILES)
-
-include $(depth)/make/stepmake.make
-
-
index db31e4347135bba9dfc93051212ee87d303c59db..b832706c760162657a347d277ff3a29a1de3b49c 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.17.6"
 
 
 @node Running lilypond
@@ -968,7 +968,7 @@ colored red, but in fact it results in two staves with the note
 heads remaining the default black in the lower staff.
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.NoteHead #'color = #red
+\override Staff.NoteHead.color = #red
 \new Staff { a }
 @end lilypond
 
@@ -980,7 +980,7 @@ correct code to color all note heads red is
 
 @lilypond[quote,verbatim,relative=2]
 \new Staff {
-  \override Staff.NoteHead #'color = #red
+  \override Staff.NoteHead.color = #red
   a
 }
 @end lilypond
@@ -1066,7 +1066,7 @@ messages can be avoided by making one of the contexts behave as a
 staff by inserting
 
 @example
-\override VerticalAxisGroup #'staff-affinity = ##f
+\override VerticalAxisGroup.staff-affinity = ##f
 @end example
 
 @noindent
index 2075925c78c1a930f261d79338f8af5e16393f15..18eae26ab6fd206ede7639e2c6959d0895e16e8c 100644 (file)
@@ -121,10 +121,13 @@ The program is invoked as follows:
 convert-ly [@var{option}]@dots{} @var{filename}@dots{}
 @end example
 
-
 The following options can be given:
 
 @table @code
+@item -d,--diff-version-update
+update the @code{\version} to the latest or, if this is greater, do
+nothing.
+
 @item -e,--edit
 Apply the conversions direct to the input file, modifying it
 in-place.
@@ -134,6 +137,14 @@ Set the version to convert from.  If this is not set, @command{convert-ly}
 will guess this, on the basis of @code{\version} strings in the file.
 E.g. @option{--from=2.10.25}
 
+@item -h, --help
+Print usage help.
+
+@item -l @var{loglevel}, --loglevel=@var{loglevel}
+Set the output verbosity to @var{loglevel}. Possible values, in upper
+case, are @code{PROGRESS} (the default), @code{NONE}, @code{WARNING},
+@code{ERROR} and @code{DEBUG}.
+
 @item -n,--no-version
 Normally, @command{convert-ly} adds a @code{\version} indicator
 to the output.  Specifying this option suppresses this.
@@ -141,16 +152,13 @@ to the output.  Specifying this option suppresses this.
 @item -s, --show-rules
 Show all known conversions and exit.
 
-@item --to=@var{to-patchlevel}
-Set the goal version of the conversion.  It defaults to the latest
-available version.  E.g. @option{--to=2.12.2}
+@item -t, --to=@var{to-patchlevel}
+Explicitly set which @code{\version} to convert to, otherwise the
+default is the most current value.
 
-@item -h, --help
-Print usage help.
-
-@item -l @var{loglevel}, --loglevel=@var{loglevel}
-Set the output verbosity to @var{loglevel}. Possible values are @code{NONE},
-@code{ERROR}, @code{WARNING}, @code{PROGRESS} (default) and @code{DEBUG}.
+@example
+convert-ly --to=2.14.1 myfile.ly
+@end example
 
 @end table
 
diff --git a/Documentation/web/GNUmakefile b/Documentation/web/GNUmakefile
deleted file mode 100644 (file)
index 278256f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-depth = ../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-SUBDIRS = server
-include $(depth)/make/stepmake.make
-
-#OUT_BIB_FILES = $(addprefix $(outdir)/, $(BIB_FILES))
-BIB_FILES = $(call src-wildcard,*.bib)
-EXTRA_DIST_FILES += $(BIB_FILES) $(call src-wildcard,*.bst)
-
index d06932a3ff44905ccc32aac598f7a4c9c1e35b42..719367e35aa6eb19a71ec14275afec92070783aa 100644 (file)
@@ -1160,6 +1160,7 @@ the @ref{Attic}}
 @subheading Announcements
 
 Announcements and news by version:
+@uref{http://lilypond.org/doc/v2.16/Documentation/web/index#Lilypond-2_002e16_002e0-released_0021-August-24_002c-2012-1,v2.16},
 @uref{http://lilypond.org/doc/v2.14/Documentation/web/index#LilyPond-2_002e14_002e0-released_0021-June-6_002c-2011,v2.14},
 @miscLink{announce-v2.12,v2.12},
 @miscLink{announce-v2.10,v2.10},
@@ -1173,6 +1174,7 @@ Announcements and news by version:
 @miscLink{ANNOUNCE-0.1,v0.1}
 
 Descriptive list of changes by version:
+@uref{http://lilypond.org/doc/v2.16/Documentation/changes/index.html,v2.16},
 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/index.html,v2.14},
 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS,v2.12},
 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS,v2.10},
@@ -1188,6 +1190,23 @@ Descriptive list of changes by version:
 
 @divEnd
 
+@divClass{column-center-bottom}
+@subheading Thanks
+
+Thanks to developers, contributors, bug hunters and suggestions for
+@miscLink{THANKS-2.16,v2.16},
+@miscLink{THANKS-2.14,v2.14},
+@miscLink{THANKS-2.12,v2.12},
+@miscLink{THANKS-2.10,v2.10},
+@miscLink{THANKS-2.8,v2.8},
+@miscLink{THANKS-2.6,v2.6},
+@miscLink{THANKS-2.4,v2.4},
+@miscLink{THANKS-2.2,v2.2},
+@miscLink{THANKS-2.0,v2.0},
+@miscLink{THANKS-1.8,v1.8}
+
+@divEnd
+
 @divClass{column-center-bottom}
 @subheading Changelogs
 
index e0d3b5de0e7dae796e86b139747dda51f98d18c0..e2b9bae6776a31596f324895ee8d180ce18fed5b 100644 (file)
@@ -445,7 +445,7 @@ acknowledged.
 @item
 @sourceimage{logo-windows,,,}
 @downloadStableWindows
-For Windows 2000, XP, Vista and Windows 7.
+For Windows 2000, XP, Vista, Windows 7 and 8.
 
 @end itemize
 
index e37cf8c74bf9b7e398d2e160c355379586c455b4..36ba93a56350c2e14ab43014c4761e299b89e841 100644 (file)
@@ -8,10 +8,64 @@
 
 @c used for news about the upcoming release; see CG 10.2
 
+@newsItem
+@subsubheading LilyPond 2.17.8 released!  @emph{December 1, 2012}
+
+We are happy to announce the release of LilyPond 2.17.8.  This
+release contains the usual number of bugfixes and 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.16 version.
+
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.17.7 released!  @emph{November 17, 2012}
+
+We are happy to announce the release of LilyPond 2.17.7.  This
+release contains the usual number of bugfixes and 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.16 version.
+
+@newsEnd
+
+@newsItem
+@subsubheading The LilyPond Report #28.  @emph{November 12, 2012}
+
+The @uref{http://news.lilynet.net/?The-LilyPond-Report-28, October
+issue of the @emph{LilyPond Report}} focuses on the
+@uref{http://news.lilynet.net/?LilyPond-meeting-in-Waltrop,
+meeting of LilyPond developers and users} in Waltrop, Germany last
+August.  Of course, there are also some musings on LilyPond
+triggered by the release of 2.16.0 and 2.17.0 occuring from that
+venue.
+
+There are also two monthly financial reports from David Kastrup
+whose work on LilyPond is
+@uref{http://news.lilynet.net/?The-LilyPond-Report-24#an_urgent_request_for_funding,
+solely paid for} by financial contributions from other developer
+and users (thank you!), and a report about experiences from
+@uref{http://scorio.com, a web-based music typesetting service}
+using LilyPond internally.
+
+Come @uref{http://news.lilynet.net/?The-LilyPond-Report-28, read
+LilyPond Report 28} now; comments and contributions are warmly
+encouraged!
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.16.1 released!  @emph{November 9, 2012}
+
+We are happy to announce the release of LilyPond 2.16.1. This has a number of
+updates to the previous stable version, and should cause no problems. We
+recommend that everybody upgrade to this version.
+@newsEnd
+
 @newsItem
 @subsubheading Lilypond 2.16.0 released!  @emph{August 24, 2012}
 
-We are proud to announce the release of GNU LilyPond 2.16.0.
+We are proud to announce the release of GNU LilyPond 2.16.1.
 LilyPond is a music engraving program, devoted to producing the
 highest-quality sheet music possible.  It brings the aesthetics of
 traditionally engraved music to computer printouts.
@@ -72,50 +126,4 @@ Jean-Charles Malahieude, Till Paala, Yoshiki Sawada
 @newsEnd
 
 
-@newsItem
-@subsubheading Lilypond 2.15.95 released!  @emph{August 11, 2012}
-
-We are excited to announce the release of LilyPond 2.15.95.
-With this release, development on version 2.15 is frozen for the
-upcoming 2.16 stable release and only open to bug fixes.
-
-All users are urged to try this version to ensure the best
-quality of the upcoming stable release.  If you discover any
-problems, please send us @ref{Bug reports}.
-
-New features since 2.14.2 are listed in the @qq{Changes} manual
-on the website section about @ref{Development}.
-
-@newsEnd
-
-
-@newsItem
-@subsubheading LilyPond 2.15.42 released!  @emph{August 02, 2012}
-
-We are happy to announce the release of LilyPond 2.15.42.  This
-release contains the usual number of bugfixes.
-
-It is strongly recommended that normal users do @strong{not} use
-this release, and instead use the stable 2.14 version.  Please
-note that due to a few Critical bugs, this is not the next release
-candidate.
-
-@newsEnd
-
-
-@newsItem
-@subsubheading The LilyPond Report #27. @emph{August 2, 2012}
-
-The @emph{LilyPond Report} is back, with some interesting insights on
-new Scheme-related features recently added by our community’s only paid
-developer David Kastrup (thanks to your
-@uref{http://lilypond.org/sponsoring.html, continuing donations}).  Also
-to be found in this issue are an overview of some lesser-known LilyPond
-companion projects, and a handful of more shallow factoids.
 
-Come
-@uref{http://news.lilynet.net/?The-LilyPond-Report-27, read
-LilyPond Report 27} now; comments and contributions are
-warmly encouraged!
-
-@newsEnd
index 0a21c0de225105d56f9e75c10bbfad5aacdb4121..f2bfd4f5419488ec9fc18edc5dd56c40f2670a85 100644 (file)
@@ -26,7 +26,197 @@ NOTE:
   * don't duplicate entries from news-front.itexi
 @end ignore
 
+@newsItem
+@subsubheading LilyPond 2.16.1 released!  @emph{November 9, 2012}
+
+We are happy to announce the release of LilyPond 2.16.1. This has a number of
+updates to the previous stable version, and should cause no problems. We
+recommend that everybody upgrade to this version.
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.17.6 released!  @emph{November 3, 2012}
+
+We are happy to announce the release of LilyPond 2.17.6.  This
+release contains the usual number of bugfixes and 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.16 version.
+
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.17.5 released!  @emph{October 20, 2012}
+
+We are happy to announce the release of LilyPond 2.17.5.  This
+release contains the usual number of bugfixes and 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.16 version.
 
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.17.4 released!  @emph{October 6, 2012}
+
+We are happy to announce the release of LilyPond 2.17.4.  This
+release contains the usual number of bugfixes.  It is strongly
+recommended that normal users do @strong{not} use this release,
+and instead use the stable 2.16 version.
+
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.17.3 released!  @emph{September 23, 2012}
+
+We are happy to announce the release of LilyPond 2.17.3.  This
+release contains the usual number of bugfixes.  It is strongly
+recommended that normal users do @strong{not} use this release,
+and instead use the stable 2.16 version.
+
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.17.2 released!  @emph{September 10, 2012}
+
+We are happy to announce the release of LilyPond 2.17.2.  This
+release contains the usual number of bugfixes.  It is strongly
+recommended that normal users do @strong{not} use this release,
+and instead use the stable 2.16 version.
+
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.17.1 released!  @emph{August 28, 2012}
+
+We are happy to announce the release of LilyPond 2.17.1.  This
+release contains the usual number of bugfixes.  It is strongly
+recommended that normal users do @strong{not} use this release,
+and instead use the stable 2.16 version.
+
+@newsEnd
+
+
+@newsItem
+@subsubheading LilyPond 2.17.0 released!  @emph{August 26, 2012}
+
+We are happy to announce the release of LilyPond 2.17.0.  This
+release contains the usual number of bugfixes.  It is strongly
+recommended that normal users do @strong{not} use this release,
+and instead use the stable 2.16 version.
+
+@newsEnd
+
+@newsItem
+@subsubheading Lilypond 2.16.0 released!  @emph{August 24, 2012}
+
+We are proud to announce the release of GNU LilyPond 2.16.0.
+LilyPond is a music engraving program, devoted to producing the
+highest-quality sheet music possible.  It brings the aesthetics of
+traditionally engraved music to computer printouts.
+
+Many improvements have been made in the past year since the previous
+main stable version. A few major improvements are: 
+
+@itemize
+@item
+Support for kievan square notation
+@item
+User and programming interfaces have greatly improved
+@item
+Music functions have become quite more versatile 
+@end itemize
+
+A full list of new features is given in:
+
+@example
+@uref{http://lilypond.org/doc/v2.16/Documentation/changes/index.html}
+@end example
+
+Happy music typesetting!  LilyPond 2.16 was brought to you by...
+
+Main development team:
+
+Bertrand Bordage, Trevor Daniels, Colin Hall, Phil Holmes, Ian Hulin,
+Reinhold Kainhofer, David Kastrup, Jonathan Kulp, Werner Lemberg,
+John Mandereau, Patrick McCarty, Joe Neeman, Han-Wen Nienhuys,
+Jan Nieuwenhuizen, Graham Percival, Mark Polesky, Neil Puttock,
+Mike Solomon, Carl Sorensen, Francisco Vila, Valentin Villenave,
+Jan Warchoł
+
+Programming contributors:
+
+Aleksandr Andreev, Sven Axelsson, Peter Chubb, Karin Hoethker,
+Marc Hohl, David Nalesnik, Justin Ohmie, Benkő Pál, Julien Rioux, Patrick Schmidt,
+Adam Spiers, Heikki Taurainen, Piers Titus van der Torren,
+Jan-Peter Voigt, Janek Warchol
+
+Documentation contributors:
+
+James Lowe, Pavel Roskin, Alberto Simoes, Stefan Weil
+
+Bug squad:
+
+Colin Campbell, Eluze, Phil Holmes, Marek Klein, Ralph Palmer,
+James Lowe
+
+Support:
+
+Colin Campbell, Christian Hitz, Phil Holmes
+
+Translation contributors:
+
+Jean-Charles Malahieude, Till Paala, Yoshiki Sawada 
+
+@newsEnd
+
+@newsItem
+@subsubheading Lilypond 2.15.95 released!  @emph{August 11, 2012}
+
+We are excited to announce the release of LilyPond 2.15.95.
+With this release, development on version 2.15 is frozen for the
+upcoming 2.16 stable release and only open to bug fixes.
+
+All users are urged to try this version to ensure the best
+quality of the upcoming stable release.  If you discover any
+problems, please send us @ref{Bug reports}.
+
+New features since 2.14.2 are listed in the @qq{Changes} manual
+on the website section about @ref{Development}.
+
+@newsEnd
+
+
+@newsItem
+@subsubheading LilyPond 2.15.42 released!  @emph{August 02, 2012}
+
+We are happy to announce the release of LilyPond 2.15.42.  This
+release contains the usual number of bugfixes.
+
+It is strongly recommended that normal users do @strong{not} use
+this release, and instead use the stable 2.14 version.  Please
+note that due to a few Critical bugs, this is not the next release
+candidate.
+
+@newsEnd
+
+
+@newsItem
+@subsubheading The LilyPond Report #27. @emph{August 2, 2012}
+
+The @emph{LilyPond Report} is back, with some interesting insights on
+new Scheme-related features recently added by our community’s only paid
+developer David Kastrup (thanks to your
+@uref{http://lilypond.org/sponsoring.html, continuing donations}).  Also
+to be found in this issue are an overview of some lesser-known LilyPond
+companion projects, and a handful of more shallow factoids.
+
+Come
+@uref{http://news.lilynet.net/?The-LilyPond-Report-27, read
+LilyPond Report 27} now; comments and contributions are
+warmly encouraged!
+
+@newsEnd
 @newsItem
 @subsubheading Release candidate withdrawn  @emph{July 11, 2012}
 
diff --git a/Documentation/web/server/GNUmakefile b/Documentation/web/server/GNUmakefile
deleted file mode 100644 (file)
index 99edf28..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-depth=../../..
-LOCALSTEPMAKE_TEMPLATES = ly
-include $(depth)/make/stepmake.make
-
-EXTRA_DIST_FILES = favicon.ico robots.txt tweets.xml
-EXTRA_DIST_FILES += lilypond.org.htaccess website-dir.htaccess
-
index d696f1093ed1f305bbb4401762383b0c928780c9..b4780a94147df06f986cb21957f7670ec7b881a0 100644 (file)
@@ -43,13 +43,13 @@ RedirectMatch ^/stable    /doc/stable
 #RedirectMatch ^/development    /doc/development
 
 #old# default doc dir
-RedirectMatch ^/doc/*$ /doc/v2.14
+RedirectMatch ^/doc/*$ /doc/v2.16
 # make attempt at `latest' symlink avoid ^v catch-all doc fix rule below
-RedirectMatch ^/doc//*latest/*(.*)$ /doc/v2.15/$1
-RedirectMatch ^/doc//*development/*(.*)$ /doc/v2.15/$1
-RedirectMatch ^/doc//*stable/*(.*)$ /doc/v2.14/$1
-RedirectMatch ^/doc//*([^v].*)$ /doc/v2.14/$1
-RedirectMatch ^(/Documentation.*)$ /doc/v2.14$1
+RedirectMatch ^/doc//*latest/*(.*)$ /doc/v2.17/$1
+RedirectMatch ^/doc//*development/*(.*)$ /doc/v2.17/$1
+RedirectMatch ^/doc//*stable/*(.*)$ /doc/v2.16/$1
+RedirectMatch ^/doc//*([^v].*)$ /doc/v2.16/$1
+RedirectMatch ^(/Documentation.*)$ /doc/v2.16$1
 RedirectMatch ^/index$ /
 
 # fix root calculation: no double slashes
index 27db672a39c61a39956b63872f66f78255104660..edc172823316c5f8fa5723d0f2af38922abbde3c 100644 (file)
@@ -16,4 +16,7 @@ Disallow: /doc/v2.8/
 Disallow: /doc/v2.9/
 Disallow: /doc/v2.10/
 Disallow: /doc/v2.11/
+Disallow: /doc/v2.12/
 Disallow: /doc/v2.13/
+Disallow: /doc/v2.14/
+Disallow: /doc/v2.15/
index 1eb2eb29e1c6c9c7d1b067837580db3a4233bdbf..9b12cef21bc30a7dc159e2776898ca1756b014dd 100644 (file)
@@ -1,60 +1,7 @@
 <tweets>
-<tweet>
-&lt;a target="_blank"
-href="http://www.inadiutorium.xf.cz"&gt;
-Project&lt;/a&gt; in adiutorium provides chants to the catholic Divine
-Office in the Czech language. We use LilyPond for the typesetting.
-</tweet>
-<tweet>
-28/07/2012 : Christophe Rousset et les Talens Lyriques interprètent Phaëton
-de Lully au
-&lt;a
-href="http://festivalbeaune.pagesperso-orange.fr/2012/o120728.htm"
-target="_blank"
-&gt;
-festival
-de Beaune&lt;/a&gt;,
-en utilisant un &lt;a
-href="http://nicolas.sceaux.free.fr/index.php/2009/05/03/39"
-target="_blank"
-&gt;
-matériel créé avec LilyPond.
-&lt;/a&gt;
-</tweet>
-<tweet>
-28/07/2012 : Christophe Rousset et les Talens Lyriques interprètent Phaëton
-de Lully au
-&lt;a
-href="http://festivalbeaune.pagesperso-orange.fr/2012/o120728.htm"
-target="_blank"
-&gt;
-festival
-de Beaune&lt;/a&gt;,
-en utilisant un &lt;a
-href="http://nicolas.sceaux.free.fr/index.php/2009/05/03/39"
-target="_blank"
-&gt;
-matériel créé avec LilyPond&lt;/a&gt;.
-</tweet>
-<tweet>
-2012.07.28: Christophe Rousset and Les Talens Lyriques play Phaëton by Lully
-at the
-&lt;a
-href="http://festivalbeaune.pagesperso-orange.fr/2012/o120728.htm"
-target="_blank"
-&gt;
-Beaune festival&lt;/a&gt;, using
-&lt;a
-href="http://nicolas.sceaux.free.fr/index.php/2009/05/03/39"
-target="_blank"
-&gt;
-music typeset with LilyPond&lt;/a&gt;.
-</tweet>
-<tweet>
-Schumann - &lt;a target="_blank"
-href="http://superbonus.project.free.fr/spip.php?article50"&gt;
-Album pour la Jeunesse&lt;/a&gt;, Op. 68.
-Currently in French or German, with or without
-fingering. LilyPond typeset and freely downloadable!
-</tweet>
+  <tweet>
+    Nov 6, at Xinghai Conservatory of Music in Guangzhou, China, a premiere of
+    James Harkins's new piece for sheng and electronics, typeset in
+    lilypond.
+  </tweet>
 </tweets>
index c46b13bb43f61b8e9ee40d06964a5292ce317cf1..08ecf84576a61ad79cb6923c92e01490ad9c8b00 100644 (file)
@@ -1,7 +1,5 @@
 ISOLANG = zh
 depth = ../..
-# SUBDIRS = web learning notation texidocs usage included essay extending
-SUBDIRS = web texidocs included
 STEPMAKE_TEMPLATES = documentation texinfo
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
 NO_PDF_FILES = 1
diff --git a/Documentation/zh/included/.gitignore b/Documentation/zh/included/.gitignore
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Documentation/zh/included/GNUmakefile b/Documentation/zh/included/GNUmakefile
deleted file mode 100644 (file)
index afe7a4d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth = ../../..
-
-STEPMAKE_TEMPLATES=documentation
-
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ly)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
-EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
-
-include $(depth)/make/stepmake.make
index 844b22bccbdd87c49e06900403aef23006464e80..639cf4d778d1d3acb7ec24debc9606dc949b4c69 100644 (file)
@@ -5,20 +5,20 @@
     version that you are working on.  See TRANSLATION for details.
 
 we depend on an external entity here, which we cannot control.  Suppose
-we go from 2.16.x to 2.17.x and put the documentation under "v2.17".
+we go from 2.15.x to 2.17.x and put the documentation under "v2.17".
 For some time, Google won't have the new location in its index, so the
-search would get nothing.  It would be better to keep "v2.16" in the
-search for a while and have a redirection from "v2.16" to "v2.17".
+search would get nothing.  It would be better to keep "v2.15" in the
+search for a while and have a redirection from "v2.15" to "v2.17".
 -->
 
 <form action="http://google.com/search"
       method="get"
       name="search"
-      onSubmit="search.q.value='site:lilypond.org/doc/v2.16 '
+      onSubmit="search.q.value='site:lilypond.org/doc/v2.17 '
                + search.brute_query.value"
-      onMouseMove="search.q.value='site:lilypond.org/doc/v2.16 '
+      onMouseMove="search.q.value='site:lilypond.org/doc/v2.17 '
                   + search.brute_query.value"
-      onKeyUp="search.q.value='site:lilypond.org/doc/v2.16 '
+      onKeyUp="search.q.value='site:lilypond.org/doc/v2.17 '
               + search.brute_query.value">
   <input type="hidden" name="btnG" value="Google 搜索">
   <input type="text" name="brute_query" onfocus="this.value=''" value="搜索">
diff --git a/Documentation/zh/texidocs/GNUmakefile b/Documentation/zh/texidocs/GNUmakefile
deleted file mode 100644 (file)
index 0ffa758..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth=../../..
-
-EXTRA_DIST_FILES=$(call src-wildcard,*.texidoc)
-
-include $(depth)/make/stepmake.make
diff --git a/Documentation/zh/web/GNUmakefile b/Documentation/zh/web/GNUmakefile
deleted file mode 100644 (file)
index 425cc1d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-depth = ../../..
-
-LOCALSTEPMAKE_TEMPLATES = ly
-
-include $(depth)/make/stepmake.make
index 512b8ef598bfc8d2e645df21415501fc2da5010f..74f255139382183558ed5e908f092cb137d19eb5 100644 (file)
@@ -6,10 +6,10 @@ SUBDIRS = python scripts \
        flower lily \
        mf ly \
        tex ps scm \
-       po make \
+       po \
        elisp vim \
        input \
-       stepmake $(documentation-dir)
+       $(documentation-dir)
 
 
 ## this convoluted construction is necessary, since we don't know the
@@ -17,7 +17,7 @@ SUBDIRS = python scripts \
 documentation-dir=$(if $(findstring no,$(DOCUMENTATION)),,Documentation)
 
 SCRIPTS = configure autogen.sh smart-autogen.sh smart-configure.sh
-README_FILES = COPYING COPYING.FDL DEDICATION ROADMAP THANKS HACKING \
+README_FILES = COPYING COPYING.FDL DEDICATION ROADMAP HACKING \
   LICENSE LICENSE.DOCUMENTATION
 TOPDOC_FILES = AUTHORS INSTALL README NEWS
 TOPDOC_TXT_FILES = $(addprefix $(top-build-dir)/Documentation/topdocs/$(outdir)/,$(addsuffix .txt,$(TOPDOC_FILES)))
@@ -26,11 +26,9 @@ IN_FILES := $(call src-wildcard,*.in)
 RELEASE_FILES = ChangeLog RELEASE-COMMIT
 RELEASE_OUT_FILES = $(RELEASE_FILES:%=$(outdir)/%)
 OUT_DIST_FILES += $(RELEASE_OUT_FILES)
-EXTRA_DIST_FILES = VERSION .gitignore .mailmap \
-  $(README_FILES) $(SCRIPTS) $(IN_FILES)
 INSTALLATION_DIR=$(local_lilypond_datadir)
 INSTALLATION_FILES=$(config_make) VERSION
-
+GENERATED_BUILD_FILES=configure aclocal.m4 autogen.sh
 # bootstrap stepmake:
 #
 STEPMAKE_TEMPLATES=toplevel po install
@@ -40,7 +38,36 @@ include $(depth)/make/stepmake.make
 
 .PHONY: test info website
 
-local-dist: refresh-release-files dist-toplevel-txt-files
+dist: local-dist $(GENERATED_BUILD_FILES) top-doc refresh-release-files .gitfilelist
+       @cd $(top-src-dir) && \
+         if test -n "`find . -name .git`" -a '(' -n "`git diff HEAD | head -1`" \
+           -o -n "`git status | grep -i untracked`" ')'; \
+         then echo "***   dist must been rolled on a clean git tree;"; \
+         echo "uncommitted changes or untracked files detected, aborting."; \
+         exit 1; fi
+       rm -rf $(distdir)
+       $(MAKE) local-dist $(distdir)
+       chmod -R a+r $(distdir)
+       chmod  a+x `find $(distdir) -type d -print`
+       $(LN) $(TOPDOC_TXT_FILES) $(distdir)
+       $(LN) $(GENERATED_BUILD_FILES:%=$(src-dir)/%) .gitfilelist $(distdir)
+       cd $(top-src-dir) && xargs $(buildscript-dir)/mass-link hard . $(distdir) <$(top-build-dir)/.gitfilelist
+       if test -n "`find $(top-src-dir) -name .git`"; then \
+         COMMIT_DATE=`git --git-dir=$(top-src-dir)/.git log -1 --format=%cD`; \
+         find $(distdir) | xargs touch -d "$$COMMIT_DATE"; fi
+       (cd ./$(depth)/$(outdir); $(TAR) -cf -  --owner=0 --group=0 $(DIST_NAME) | gzip -9 > $(DIST_NAME).tar.gz)
+       rm -rf $(distdir)
+
+ifneq ($(shell find $(top-src-dir) -name .git),)
+.gitfilelist: $(top-src-dir)/.git/index
+       cd $(top-src-dir) && git ls-files >$(top-build-dir)/$@
+local-clean-filelist:
+       rm -f .gitfilelist
+else
+.gitfilelist: $(src-dir)/.gitfilelist
+       cp $< $@
+local-clean-filelist:
+endif
 
 all: $(outdir)/VERSION
 
@@ -65,16 +92,11 @@ python-modules:
 
 top-doc: python-modules
 
-local-clean: local-clean-ChangeLog
+local-clean: local-clean-ChangeLog local-clean-filelist
 
 local-clean-ChangeLog:
        rm -f ChangeLog
 
-dist-toplevel-txt-files: top-doc
-       -mkdir -p $(distdir)
-       ln $(TOPDOC_TXT_FILES) $(distdir)
-       ln $(top-src-dir)/stepmake/aclocal.m4 $(distdir)
-
 info:
        $(foreach d, $(INFO_DIRECTORIES),$(MAKE) -C $(d) out=www info && ) true
 
@@ -285,32 +307,9 @@ test:
        $(MAKE) -C input/regression/abc2ly out=test local-test
        $(MAKE) -C input/regression/lilypond-book out=test local-test
 
-ifndef BASELINE_COMMIT
-BASELINE_COMMIT:=HEAD
-endif
-
-ifdef LILYPOND_BASELINES
-BASELINE_ARCHIVE:=$(LILYPOND_BASELINES)/baseline-$(shell git rev-list -1 $(BASELINE_COMMIT)).tar.gz
-
-test-baseline: $(BASELINE_ARCHIVE)
-       tar xzf $(BASELINE_ARCHIVE)
-       $(MAKE) test-snippets-clean
-
-$(BASELINE_ARCHIVE):
-       $(MAKE) test-baseline-create
-       tar czf $(BASELINE_ARCHIVE) input/regression/out-test-baseline \
-               input/regression/midi/out-test-baseline \
-               input/regression/musicxml/out-test-baseline \
-               input/regression/abc2ly/out-test-baseline \
-               input/regression/lilypond-book/out-test-baseline
-else
-test-baseline: test-baseline-create
-       $(MAKE) test-snippets-clean
-endif
-
-test-baseline-create:
+test-baseline:
        @if test -d .git ; then \
-               $(if $(shell git diff $(BASELINE_COMMIT)), echo "commit before base lining" && false,true) ; \
+               $(if $(shell git diff), echo "commit before base lining" && false,true) ; \
        fi
        $(MAKE)
        $(MAKE) test
@@ -319,6 +318,8 @@ test-baseline-create:
        $(MAKE) out=test -C input/regression/musicxml local-test-baseline
        $(MAKE) out=test -C input/regression/abc2ly local-test-baseline
        $(MAKE) out=test -C input/regression/lilypond-book local-test-baseline
+       $(MAKE) test-snippets-clean
+
 
 local-check: test
        rm -rf $(RESULT_DIR)
diff --git a/ROADMAP b/ROADMAP
index 99ad6b7fb6afe707b9079195a50a8a4f1fbc0f0a..2616c11c164380b3fe7f57a8458a69e9ac8fa7e8 100644 (file)
--- a/ROADMAP
+++ b/ROADMAP
@@ -78,6 +78,7 @@ LilyPond's source files.
 |
 |   SCRIPTS:
 |
+|-- config/              Autoconf helpers for configure script
 |-- python/              Python modules, MIDI module
 |   `-- auxiliar/        Python modules for build/maintenance
 |-- scripts/             End-user scripts (--> lilypond/usr/bin/)
diff --git a/THANKS b/THANKS
deleted file mode 100644 (file)
index 783d75f..0000000
--- a/THANKS
+++ /dev/null
@@ -1,820 +0,0 @@
-Release 2.16
-************
-
-For information about the various official or semi-official positions,
-check out <URL:http://lilypond.org/authors.html>
-
-The following are registered as having authored changes to the
-repository of LilyPond since 2.14.2:
-
-Adam Spiers
-Alberto Simoes
-Aleksandr Andreev
-Anthony Fok
-Arnold Theresius
-Benkő Pál
-Bertrand Bordage
-Carl D. Sorensen
-Choan Gálvez
-Colin Campbell
-Daisuke Yamashita
-David Kastrup
-David Nalesnik
-Dénes Harmath
-Federico Bruni
-Francisco Vila
-Frédéric Bron
-Graham Breed
-Graham Percival
-Han-Wen Nienhuys
-Heikki Tauriainen
-Ian Hulin
-James Lowe
-Jan Nieuwenhuizen
-Jan-Peter Voigt
-Janek Warchoł
-Jean-Charles Malahieude
-Joe Neeman
-John Mandereau
-Joseph Wakeling
-Julien Rioux
-Karin Hoethker
-Keith OHara
-Marc Hohl
-Markus Oehme
-Matthias Kilian
-Michael Welsh Duggan
-Mike Solomon
-Neil Puttock
-Nicolas Sceaux
-Patrick McCarty
-Patrick Schmidt
-Pavel Roskin
-Peter Chubb
-Phil Holmes
-Piers Titus van der Torren
-Reinhold Kainhofer
-Rodolfo Zitellini
-Seafire
-Stefan Weil
-Sven Axelsson
-Thomas Morley
-Till Rettig
-Trevor Daniels
-Valentin Villenave
-Werner Lemberg
-Wol
-Yoshiki Sawada
-Łukasz Czerwiński
-
-
-Release 2.13
-************
-
-DEVELOPMENT TEAM
-
-Han-Wen Nienhuys   - Core development
-Jan Nieuwenhuizen  - Core development
-Graham Percival    - Release Meister
-Valentin Villenave - LSR Editor and Bug Meister
-Mats Bengtsson     - Support Guru
-John Mandereau     - Translation Meister
-Trevor Daniels     - Documentation Editor
-
-CONTRIBUTORS
-
-Carl Sorensen      - Fret diagrams
-Jonathan Kulp      - Documentation Patches
-Ralph Palmer       - Documentation Indexing
-
-TRANSLATORS
-
-Francisco Vila
-Jean-Charles Malahieude
-Till Rettig
-Yoshiki Sawada
-
-FROGS
-
-Carl Sorensen     - Frog meister
-Andrew Hawryluk
-Andrew Wilson
-Marek Klein
-Ian Hulin
-Frédéric Bron
-Hajo Dezelski
-Kieren MacMillan
-
-
-BUG HUNTERS/SUGGESTIONS
-
-Chris Liddell
-Chris Snyder
-David Kastrup
-Karim Haddad
-Mark Polesky
-Martin Tarenskeen
-Michael Käppler
-Nick Payne
-
-
-Release 2.12
-************
-
-
-DEVELOPMENT TEAM
-
-Han-Wen Nienhuys   - Core development
-Jan Nieuwenhuizen  - Core development
-Joe Neeman         - Core development
-Graham Percival    - Documentation Editor and Bug Meister
-Valentin Villenave - LSR Editor and Bug Meister
-Mats Bengtsson     - Support Guru
-John Mandereau     - Translation Meister
-
-
-CONTRIBUTORS
-
-Rune Zedeler
-Maximilian Albert
-Milan Zamazal
-Reinhold Kainhofer - musicxml2ly development
-Erlend Aasland
-Stan Sanderson     - Regression Checker
-Neil Puttock
-
-
-GRAND DOCUMENTATION PROJECT
-
-Trevor Daniels     - Assistant Documentation Editor
-Andrew Hawryluk    - NR work
-Carl Sorensen      - NR work
-Eyolf Østrem       - NR work
-Francisco Vila     - NR work
-Jay Hamilton       - NR work
-Jonathan Kulp      - NR work
-Joseph Harfouch    - NR work
-Patrick McCarty    - NR work
-Ralph Palmer       - NR work
-Till Rettig        - NR work
-Kurt Kroon         - Glossary Updates, NR work
-Alard de Boer      - Formatting
-Michael Rasmussen  - Formatting
-Trevor Bača        - Inspirational Headwords
-Reinhold Kainhofer - Technical Aid
-Neil Puttock       - Snippet Editor, Technical Aid
-
-
-TRANSLATORS
-
-Clytie Siddall
-Damien Heurtebise
-Francisco Vila
-Heikki Junes
-Jean-Charles Malahieude
-John Mandereau
-Matthieu Jacquot
-Nicolas Klutchnikoff
-Till Rettig
-Valentin Villenave
-
-
-SPONSORS
-
-Mike Amundsen
-Trevor Bača
-
-
-BUG HUNTERS/SUGGESTIONS
-
-Adam James Wilson
-Alard de Boer
-Alex Rolex
-Andy Haupt
-Arvid Grøtting
-Bertalan Fodor
-Benjamin Drung
-Cameron Horsburgh
-Carl Sorensen
-Christian Hitz
-Christian Herzberg
-David Bobroff
-David Griffel
-Daniel Hulme
-Daniel Johnson
-Dominic Neumann
-Eduardo Vieira
-Frédéric Chiasson
-Georg Dummer
-Georg Romstorfer
-Gilles Thibault
-Hernán J. González
-Hu Haipeng
-Jay Anderson
-James Kilfinger
-Jean-Marie Mouchel
-Jean-Yves Baudais
-Jesús Guillermo Andrade
-Jonathan Henkelman
-Kazuhiro Suzuki
-Kevin Dalley
-Laura Conrad
-Luc Wehli
-Maarten Hijzelendoorn
-Marc Lanoiselée
-Mark Polesky
-Matthieu Jacquot
-Matthijs Frankeno
-Martijn Vromans
-Marnen Laibow-Koser
-Maximilian Albert
-Mirosław Doroszewski
-Mike Coleman
-Neil Puttock
-Nicolas Mayencourt
-Nicolas Sceaux
-Orm Finnendahl
-Peter Budny
-Phillip Kirlin
-Pierre-Emmanuel Brame
-Ralph Palmer
-Renaud Flavigny
-Rick Hansen
-Risto Vääräniemi
-Robin Bannister
-Roland Goretzki
-Rune Zedeler
-Ruud van Silfhout
-Sean Reed
-Steven Weber
-Tomas Sauer
-Thomas Scharkowski
-Trevor Bača
-Vivian Barty-Taylor
-Werner Lemberg
-Wilbert Berendsen
-William Oram
-Yota Moteuchi
-Zack Charter
-Zoltan Selyem
-
-
-
-Release 2.10
-************
-
-
-DEVELOPMENT TEAM
-
-Han-Wen Nienhuys  - Core development
-Jan Nieuwenhuizen - Core development
-Graham Percival   - Documentation Editor and Bug Meister
-John Mandereau    - Translation Meister
-Mats Bengtsson    - Support Guru 
-
-
-CONTRIBUTORS
-
-Angelo Contardi
-David Feuer
-Erik Sandberg
-Erlend Aasland
-Guido Amoruso
-Heikki Junes
-Joe Neeman
-John Mandereau
-
-
-TRANSLATORS
-
-Frédéric Chiasson
-Gauvain Pocentek
-Jean-Charles Malahieude
-John Mandereau
-Ludovic Sardain
-Nicolas Grandclaude
-Valentin Villenave
-
-
-SPONSORS
-
-Andrew Sidwell
-Anthony Youngman 
-Chris Sawer
-David Griffel
-Jamie Bullock
-Kieren MacMillan
-Michael Meixner 
-Paul Scott
-Rick Hansen
-Steve Doonan
-Trent Johnston
-Trevor Bača
-Vivian Barty-Taylor
-William Wilson
-
-DOCUMENTATION HELPERS
-
-Cameron Horsburgh
-Dave Luttinen
-Eduardo Vieira
-Erlend Aasland
-Geoff Horton
-Juergen Reuter
-
-
-BUG HUNTERS/SUGGESTIONS
-
-Albert Frantz
-Arvid Grøtting
-Anthony Youngman
-Aurèle Duda
-Ben Hoefer
-Bernie Arai
-Cameron Horsburgh
-Charles Cave
-Christian Hitz
-Christopher Ellis
-Claude Routhier
-Colin Wilding
-Daniel Tonda Castillo
-David Rogers
-Francisco Vila
-Harald Wellmann
-Henrik Frisk
-Hernán J. González 
-Johannes Schindelin
-John Williams
-J. Leung
-Karim Haddad
-Karl Hammar
-Keith Packard
-Kieren MacMillan
-Lee T. Wilkirson
-Lieke van der Meer
-Luc Wehli
-Manuzhai
-Mark Dewey
-Marcus Macauley
-Markus Schneider
-Matti Aaltonen
-Michael Meixner
-Michael Welsh Duggan
-Milan Zamazal
-Orm Finnendahl
-Paul Scott
-Phillip Kirlin
-Quentin Spencer
-Rainer Typke
-Rick Hansen
-Rutger Helmers
-Ruud van Silfhout
-Sietse Brouwer
-Stephen Carter
-Stephen Kress
-Thies Albrecht
-Toine Schreurs
-Trent Johnston
-Trevor Bača
-Trevor Daniels
-Vaclav Smilauer
-Vicente Solsona Dellá
-Victor Eijkhout
-Villum Sejersen
-Werner Lemberg
-Will Oram
-Zoltan V. Laszlo
-
-Release 2.8
-***********
-
-DEVELOPMENT TEAM
-
-Han-Wen Nienhuys  - Core development
-Jan Nieuwenhuizen - Core development
-Erik Sandberg     - Bug Meister
-Pedro Kroger      - Build Meister
-Graham Percival   - Documentation Editor
-Mats Bengtsson    - Support Guru 
-
-CONTRIBUTORS
-
-Erlend Aasland
-Heikki Junes
-Joe Neeman
-Johannes Schindelin
-Nicolas Sceaux
-Werner Lemberg
-Yoshinobu Ishizaki
-
-
-SPONSORS
-
-Aaron Mehl
-Basil Crow
-Bertalan Fodor
-Christian Ebert
-Henrik Frisk
-Jay Hamilton
-Jamie Bullock
-John Mandereau
-D. Josiah Boothby
-Kieren MacMillan
-Kris Shaffer
-Mark van den Borre
-Mike Rolish
-Muziekacademie Lede
-Nancho Alvarez
-Nicolas Sceaux
-Sean Reed
-Steve Doonan
-Sven Axelsson
-Trent Johnston
-Trevor Bača
-Vicente Solsona Dellá
-Yoshinobu Ishizaki   
-
-
-BUG HUNTERS/SUGGESTIONS
-
-Alan Stern
-Andrea Valle
-Bertalan Fodor
-Bob Broadus
-Bruce Fairchild
-Cameron Horsburgh
-Chris Sawer
-Christian Ebert
-Christian Hitz
-Darius Blasband
-David Bobroff
-David Raleigh Arnold
-Donald Axel
-Don Blaheta
-Dunstan Vavasour
-Edward Neeman
-Eduardo Vieira
-Ernesto Gancedo
-François Vion
-Frédéric Bron
-Geoff Horton
-Gianluca D.
-Hans Forbrich
-Hoang Nguyen
-Joe Neeman
-Jordi Nadal
-Jukka Akkanen
-Kieren Richard MacMillan
-Lambros Lambrou
-Laura Conrad
-Libero Mureddu
-Marcus Macauley
-Mark Steinheuser
-Matevž Jekovec
-Michael Kiermaier
-Michael Welsh Duggan
-Milan Zamazal
-Nicolas Mayencourt
-Orm Finnendahl
-Patrick K Welton
-Paul Scott
-Ralph Little
-Richard Schoeller
-Robert Vlasaty
-Roman Kurakin
-Russell Lang
-Scott Russell
-Sean Reed
-Seng Liang
-Steve Doonan
-Steven Weber
-Sven Axelsson
-Thomas Scharkowski
-Thomas Bushnell BSG
-Toine Schreurs
-Trent Johnston
-Trevor Bača
-Vicente Solsona Dellá
-Vincenzo Colonnella
-Werner Lemberg
-Will Oram
-Wolfgang Hoffmann
-
-Release 2.6
-***********
-
-DEVELOPMENT TEAM
-
-Han-Wen Nienhuys  - Core development
-Jan Nieuwenhuizen - Core development
-Erik Sandberg     - Bug Meister
-Pedro Kroger      - Build Meister
-Graham Percival   - Documentation Editor
-
-CONTRIBUTORS
-
-Andreas Scherer
-Arno Waschk
-Bertalan Fodor
-Carl Sorensen
-Christian Hitz
-David Jedlinsky
-Erlend Aasland
-Heikki Junes
-John Williams
-Jonatan Liljedahl
-Jürgen Reuter
-Mats Bengtsson
-Matthias Neeracher
-Mathieu Giraud
-Nicolas Sceaux
-Pal Benko
-Sebastiano Vigna
-Tatsuya Ono
-Vicente Solsona Della
-Werner Lemberg
-Yuval Harel
-
-TRANSLATORS
-
-Abel Cheung
-John Mandereau
-Olcay Yıldırım
-Roland Stigge
-Steven Michael Murphy
-
-
-WEBSITE TRANSLATORS
-
-Gauvain Pocentek
-Jean-Charles Malahieude
-John Mandereau
-Tineke de Munnik
-
-
-SPONSORS
-
-Bertalan Fodor
-Chris Sawer
-Gunther Strube
-Hans Forbrich
-Jonathan Walther
-Marcus Macauley
-Steve Doonan
-
-BUG HUNTERS/SUGGESTIONS
-
-Alexandre Beneteau
-Andreas Scherer
-Anthony W. Youngman
-Antti Kaihola
-Arjan Bos
-David Bobroff
-Bernard Hurley
-Bruce Fairchild
-Bruce McIntyre
-Daniel Johnson
-David Rogers
-Dylan Nicholson
-Ed Jackson
-Erik Ronström
-Fernando Pablo Lopez-Lezcano
-Gilles Sadowski
-Pothárn Imre
-Jack O'Quin
-Jeff Smith
-Johannes Schindelin
-John Mandereau
-Jose Miguel Pasini
-Josiah Boothby
-Juergen Reuter
-Karl Hammar
-Laura Conrad
-Olivier Guéry
-Paul Scott
-Richard Schoeller
-Rob Platt
-Roman Stöckl-Schmidt
-Russ Jorgensen
-Simon Bailey
-Stephen McCarthy
-Sven Axelsson
-Tapio Tuovila
-Tom Cato Amundsen
-Tyler Eaves
-Will Oram
-Wolfgang Hoffmann
-
-
-Release 2.4
-***********
-
-DEVELOPMENT TEAM
-
-Han-Wen Nienhuys  - Core development
-Jan Nieuwenhuizen - Core development
-Erik Sandberg     - Bug Meister
-Pedro Kroger      - Build Meister
-Graham Percival   - Documentation Editor
-
-
-CONTRIBUTORS
-
-Carl Sorensen
-David Svoboda
-Guy Gascoigne-Piggford
-Heikki Junes
-Hendrik Maryns
-Kristof Bastiaensen
-Lisa Opus Goldstein
-Mats Bengtsson
-Michael Welsh Duggan
-Peter Lutek
-Werner Lemberg
-
-BUG HUNTERS/SUGGESTIONS
-
-
-Antti Kaihola
-Bertalan Fodor
-Brian Clements
-Christian Hitz
-Christoph Ludwig
-Christophe Papazian
-Daniel Berjón Díez
-Dave Phillips
-David Bobroff
-David Brandon
-Doug Asherman
-Ed Jackson
-Fernando Pablo Lopez-Lezcano
-Heinz Stolba
-Jack O'Quin
-Jefferson dos Santos Felix
-Karl Hammar
-Marco Gusy
-Martin Norbäck
-Matthias Neeracher
-Maurizio Tomasi
-Michael Kiermaier
-Pascal Legris
-Peter Rosenbeck
-Russ Ross
-Stephen Pollei
-Thomas Scharlowski
-Will Oram
-Yuval Harel
-
-
-Release 2.2
-***********
-
-HEAD HACKERS
-
-Han-Wen Nienhuys
-Jan Nieuwenhuizen
-
-CONTRIBUTORS
-
-David Bobroff
-Edward Sanford Sutton
-Heikki Junes
-Nicolas Sceaux
-
-BUG HUNTERS/SUGGESTIONS
-
-Alexandre Beneteau
-Andrew McNabb
-Atte Andre Jensen 
-Bertalan Fodor
-Bruce McIntyre
-Dave Symonds
-David Bobroff
-Darius
-Delma Avers
-Doug Linhardt
-Eric Wurbel
-Erik Sandberg
-Ferenc Wagner
-Hans Forbrich
-John Williams
-José Luis Cruz
-Jürgen Reuter
-Kieren Richard MacMillan
-Laurent Martelli
-Mats Bengtsson
-Matthias Kilian
-Nancho Alvarez
-Nick Busigin
-Nicolas Sceaux 
-Olivier Guéry
-Patrick Atamaniuk
-Paul Scott
-Pawel D
-Pedro Kroger
-Ray McKinney
-Reuben Thomas
-Robert Vlasaty
-Stef Epardaud
-Thomas Willhalm
-Thomas Scharkowski
-Tom Bäckström
-Werner Lemberg
-Will Oram
-
-
-Release 2.0
-***********
-
-HEAD HACKERS
-
-Han-Wen Nienhuys
-Jan Nieuwenhuizen
-
-CONTRIBUTORS
-
-Mats Bengtsson
-Heikki Junes
-Jürgen Reuter
-
-BUG HUNTERS/SUGGESTIONS
-
-Antonio Palama
-Benjamin Milde
-Daniel Berjon Diez
-David Bobroff
-David Rayleigh Arnold
-Erik Ronstroem
-Fabio dos Santos
-Fodor Bertalan 
-Frederic Bron
-Graham Percival
-Ian Bailey-Mortimer
-John Williams
-Josza Marton
-Marco Caliari
-Matthieu Amiguet
-Michael Welsh Duggan
-Patrick Atamaniuk
-Paul Scott
-Pedro Kroeger
-Peter Lutek
-Richard Schoeller
-Thorkil Wolvendans
-Werner Trobin 
-
-
-Release 1.8
-***********
-
-HEAD HACKERS
-
-Han-Wen Nienhuys
-Jan Nieuwenhuizen
-
-CONTRIBUTORS
-
-Graham Percival
-Heikki Junes
-Jügen Reuter
-Kim Shrier
-Rune Zedeler
-Werner Lemberg
-
-
-BUG HUNTERS
-
-Amelie Zapf
-Andrew Schaaf
-Atte Andre Jensen
-Bob Harrington
-Chris Jackson
-Chris Sawer
-David Bobroff
-Erik Sandberg
-Fernando Pablo Lopez-Lezcano
-Hans Kieserman
-Jeremie Lumbroso
-John Potelle
-John Williams
-Karl Berry
-Karl-Johan Karlsson 
-Klaus Zimmermann
-Koblinger Egmont
-Paul Scott
-Pedro Kroger
-Richard Shann
-Roland Stigge
-Ryan O'Neil
-Simon Bailey
-Simon Weatherill
-Stanislav Brabec
-Thomas Rijniers
-Werner Lemberg
-Yotam Medini
-
-
-#Local variables:
-#coding: utf-8
-#End:
-
diff --git a/VERSION b/VERSION
index 111da924563c791a56cb8f1154df4fcbb9f772ec..bc5d95abfc0eb872cc0cd9915bb8de20f08de5e7 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
-MINOR_VERSION=16
-PATCH_LEVEL=1
+MINOR_VERSION=17
+PATCH_LEVEL=9
 MY_PATCH_LEVEL=
-VERSION_STABLE=2.16.0
-VERSION_DEVEL=2.17.4
+VERSION_STABLE=2.16.1
+VERSION_DEVEL=2.17.8
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644 (file)
index 0000000..0dcd5bd
--- /dev/null
@@ -0,0 +1,1292 @@
+dnl aclocal.m4   -*-shell-script-*-
+dnl StepMake subroutines for configure.in
+
+
+### mostly interal macros
+
+# Get full path of executable ($1)
+AC_DEFUN(STEPMAKE_GET_EXECUTABLE, [
+    ## which doesn't work in ash, if /usr/bin/which isn't installed
+    ## type -p doesn't work in ash
+    ## command -v doesn't work in zsh
+    ## command -v "$1" 2>&1
+    ## this test should work in ash, bash, pdksh (ksh), zsh
+    type -p $1 2>/dev/null | tail -n 1 | awk '{print $NF}'
+])
+
+
+# Get version string from executable ($1)
+AC_DEFUN(STEPMAKE_GET_VERSION, [
+    ## "$1" --version 2>&1 | grep -v '^$' | head -n 1 | awk '{print $NF}'
+    ##
+    ## ARG.
+    ## Workaround for broken Debian gcc version string:
+    ##     gcc (GCC) 3.1.1 20020606 (Debian prerelease)
+    ##
+    ## -V: Workaround for python
+
+    changequote(<<, >>)#dnl
+
+    ## Assume and hunt for dotted version multiplet.
+    ## use eval trickery, because we cannot use multi-level $() instead of ``
+    ## for compatibility reasons.
+    
+    ## grab the first version number in  --version output.
+    eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 |
+               grep -E '(^| )[0-9][0-9]*\.[0-9]' |
+               head -n 1 |
+               tr ' ' '\n' |
+               sed 's/\([0-9][0-9]*\.[0-9][0-9.]*\).*/\1/g' |
+               grep -E '(^| )[0-9][0-9]*\.[0-9]' |
+               head -n 1\`\"
+
+    if test -z "$_ver"; then
+        ## If empty, try date [fontforge]
+        eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 | grep '[0-9]\{6,8\}' \
+           | head -n 1 \
+           | sed -e 's/^[^.0-9]*//' -e 's/[^.0-9]*$//'\`\"
+    fi
+    echo "$_ver"
+    changequote([, ])#dnl
+])
+
+# Calculate simplistic numeric version from version string ($1)
+# As yet, we have no need for something more elaborate.
+AC_DEFUN(STEPMAKE_NUMERIC_VERSION, [
+    echo "$1" | awk -F. '
+    {
+      if ([$]3) {three = [$]3}
+      else {three = 0}
+    }
+    {printf "%.0f\n", [$]1*1000000 + [$]2*1000 + three}'
+])
+
+
+# Add item ($2) to list ($1, one of 'OPTIONAL', 'REQUIRED')
+AC_DEFUN(STEPMAKE_ADD_ENTRY, [
+    eval "$1"=\"`eval echo \"'$'$1\" \"$2\"`\"
+])
+
+# Check if tested program ($2) was found ($1).
+# If not, add entry to missing-list ($3, one of 'OPTIONAL', 'REQUIRED').
+# We could abort here if a 'REQUIRED' program is not found
+AC_DEFUN(STEPMAKE_OPTIONAL_REQUIRED, [
+    STEPMAKE_CHECK_SEARCH_RESULT($1)
+    if test $? -ne 0; then
+       STEPMAKE_ADD_ENTRY($3, $2)
+       if test "$3" = "REQUIRED"; then
+           command="echo ERROR: $2 not found"
+           # abort configure process here?
+       else
+           command="- echo $2 not found"
+       fi
+       eval "$1"='$command'
+       false
+    else
+       true
+    fi
+])
+
+
+# Return if tested proram ($1) was found (true) or not (false).
+AC_DEFUN(STEPMAKE_CHECK_SEARCH_RESULT, [
+    r="`eval echo '$'"$1"`"
+    if test -n "$r" -a "$r" != "error" -a "$r" != "no" && expr '`eval echo '$'"$1"`' : '.*\(echo\)' > /dev/null; then
+       true
+    else
+       ##STEPMAKE_WARN(cannot find $2. $3)
+       false
+    fi
+])
+
+
+# Check version of program ($1)
+# If version ($4: optional argument, supply if version cannot be
+# parsed using --version or -V ) is smaller than requested ($3), add
+# entry to missing-list ($2, one of 'OPTIONAL', 'REQUIRED').
+AC_DEFUN(STEPMAKE_CHECK_VERSION, [
+    r="`eval echo '$'"$1"`"
+    AC_MSG_CHECKING([$r version])
+    exe=`STEPMAKE_GET_EXECUTABLE($r)`
+    if test -n "$4"; then
+        ver="$4"
+    else
+        ver=`STEPMAKE_GET_VERSION($exe)`
+    fi
+    num=`STEPMAKE_NUMERIC_VERSION($ver)`
+    req=`STEPMAKE_NUMERIC_VERSION($3)`
+    AC_MSG_RESULT([$ver])
+    if test "$num" -lt "$req"; then
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
+    fi
+    vervar="`echo $1 | tr '[a-z]' '[A-Z]'`_VERSION"
+    eval `echo $vervar=$num`
+##    AC_SUBST(`eval echo $vervar`)
+])
+
+# Check version of program ($1)
+# If version is greater than or equals unsupported ($3),
+# add entry to unsupported list ($2, 'UNSUPPORTED')
+AC_DEFUN(STEPMAKE_CHECK_VERSION_UNSUPPORTED, [
+    r="`eval echo '$'"$1"`"
+    AC_MSG_CHECKING([$r version])
+    exe=`STEPMAKE_GET_EXECUTABLE($r)`
+    ver=`STEPMAKE_GET_VERSION($exe)`
+    num=`STEPMAKE_NUMERIC_VERSION($ver)`
+    sup=`STEPMAKE_NUMERIC_VERSION($3)`
+    AC_MSG_RESULT([$ver])
+    if test "$num" -ge "$sup"; then
+       STEPMAKE_ADD_ENTRY($2, ["$r < $3 (installed: $ver)"])
+    fi
+])
+
+### Macros to build configure.in
+
+
+AC_DEFUN(STEPMAKE_BIBTEX2HTML, [
+    STEPMAKE_PROGS(BIBTEX2HTML, bibtex2html bib2html, $1)
+    if test "$BIBTEX2HTML" = "bib2html"; then
+       BIBTEX2HTML_FLAGS='$< $(@)'
+    else
+       BIBTEX2HTML_FLAGS='-o $(@D)/$(*F) $<'
+    fi
+    AC_SUBST(BIBTEX2HTML)
+    AC_SUBST(BIBTEX2HTML_FLAGS)
+])
+
+
+AC_DEFUN(STEPMAKE_BISON, [
+    # ugh, automake: we want (and check for) bison
+    AC_PROG_YACC
+    
+    STEPMAKE_PROGS(BISON, bison, $1)
+    
+    # urg.  should test functionality rather than version.
+    if test "$BISON" = "bison" -a -n "$2"; then
+       STEPMAKE_CHECK_VERSION(BISON, $1, $2)
+    fi
+])
+
+AC_DEFUN(STEPMAKE_COMPILE_BEFORE, [
+    # -O is necessary to get inlining
+    CFLAGS=${CFLAGS-""}
+    CXXFLAGS=${CXXFLAGS-$CFLAGS}
+    LDFLAGS=${LDFLAGS-""}
+    optimise_b=yes
+    profile_b=no
+    debug_b=yes
+    pipe_b=yes
+
+    AC_ARG_ENABLE(debugging,
+    [AS_HELP_STRING([--enable-debugging],
+                    [compile with debugging info.  Default: on])],
+    [debug_b=$enableval])
+
+    AC_ARG_ENABLE(optimising,
+    [AS_HELP_STRING([--enable-optimising],
+                    [compile with optimising.  Default: on])],
+    [optimise_b=$enableval])
+
+    AC_ARG_ENABLE(profiling, 
+    [AS_HELP_STRING([--enable-profiling],
+                    [compile with gprof support.  Default: off])],
+    [profile_b=$enableval])
+    
+    AC_ARG_ENABLE(pipe, 
+    [AS_HELP_STRING([--enable-pipe],
+                    [compile with -pipe.  Default: on])],
+    [pipe_b=$enableval])
+
+    if test "$optimise_b" = yes; then
+       AC_DEFINE(NDEBUG)
+       DEFINES="$DEFINES -DNDEBUG"
+       OPTIMIZE=" -O2 -finline-functions"
+    fi
+
+    if test $profile_b = yes; then
+       EXTRA_LIBS="-pg"
+       OPTIMIZE="$OPTIMIZE -pg"
+    fi
+
+    if test $debug_b = yes; then
+       OPTIMIZE="$OPTIMIZE -g"
+    fi
+])
+
+AC_DEFUN(STEPMAKE_COMPILE, [
+
+    AC_REQUIRE([STEPMAKE_COMPILE_BEFORE])
+    AC_REQUIRE([AC_PROG_CC])
+
+    STEPMAKE_OPTIONAL_REQUIRED(CC, cc, $1)
+    LD='$(CC)'
+    AC_SUBST(LD)
+
+    # If -pipe requested, test if it works and add to CFLAGS.
+    if test "$pipe_b" = yes; then
+       save_cflags="$CFLAGS"
+       CFLAGS=" -pipe $CFLAGS";
+       AC_CACHE_CHECK([whether compiler understands -pipe],
+           [stepmake_cv_cflags_pipe],
+           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[/* -pipe test */]])],
+               [stepmake_cv_cflags_pipe=yes],
+               [stepmake_cv_cflags_pipe=no]))
+       CFLAGS=$save_cflags
+       if test $stepmake_cv_cflags_pipe = yes; then
+           OPTIMIZE="$OPTIMIZE -pipe"
+       fi
+    fi
+
+    CFLAGS="$CFLAGS $OPTIMIZE"
+    CPPFLAGS=${CPPFLAGS-""}
+
+    AC_MSG_CHECKING([for IEEE-conformance compiler flags])
+    save_cflags="$CFLAGS"
+    case "$host" in
+        alpha*-*-*)
+           dnl should do compile test?
+           AC_MSG_RESULT(-mieee)
+           CFLAGS=" -mieee $CFLAGS"
+           ;;
+       *)
+           AC_MSG_RESULT([none])
+           ;;
+    esac
+
+    AC_SUBST(cross_compiling)
+    AC_SUBST(CFLAGS)
+    AC_SUBST(CPPFLAGS)
+    AC_SUBST(LDFLAGS)
+    AC_SUBST(DEFINES)
+    AC_SUBST(EXTRA_LIBS)
+])
+
+AC_DEFUN(STEPMAKE_CXX, [
+    AC_PROG_CXX
+    STEPMAKE_OPTIONAL_REQUIRED(CXX, c++, $1)
+
+    CXXFLAGS="$CXXFLAGS $OPTIMIZE"
+    LD='$(CXX)'
+
+    AC_SUBST(CXX)
+    AC_SUBST(CXXFLAGS)
+    AC_SUBST(LD)
+])
+
+
+AC_DEFUN(STEPMAKE_CXXTEMPLATE, [
+    AC_CACHE_CHECK([whether explicit instantiation is needed],
+       stepmake_cv_need_explicit_instantiation,
+       AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+    template <class T> struct foo { static int baz; };
+    template <class T> int foo<T>::baz = 1;
+    ]], [[ return foo<int>::baz; ]])],[stepmake_cv_need_explicit_instantiation=no],[stepmake_cv_need_explicit_instantiation=yes]))
+    if test x"$stepmake_cv_need_explicit_instantiation"x = x"yes"x; then
+       AC_DEFINE(NEED_EXPLICIT_INSTANTIATION)
+    fi
+])
+
+AC_DEFUN(STEPMAKE_GXXCODEGENBUG, [
+    AC_MSG_CHECKING([options for known g++ bugs])
+    case "$GXX:$CXX_VERSION" in
+       yes:400600[[0-2]])
+           AC_MSG_RESULT([-fno-optimize-sibling-calls (tail call bug)])
+           CXXFLAGS="$CXXFLAGS -fno-optimize-sibling-calls"
+           ;;
+       yes:400700?)
+           AC_MSG_RESULT([-fno-tree-vrp (comparison bug)])
+           CXXFLAGS="$CXXFLAGS -fno-tree-vrp"
+           ;;
+       *) AC_MSG_RESULT([none])
+    esac
+    AC_SUBST(CXXFLAGS)
+])
+
+
+AC_DEFUN(STEPMAKE_DATADIR, [
+    if test "$datadir" = "\${prefix}/share"; then
+           datadir='${prefix}/share'
+    fi
+    presome=${prefix}
+    if test "$prefix" = "NONE"; then
+       presome=${ac_default_prefix}
+    fi
+    
+    build_package_datadir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/share/$package
+    
+    DATADIR=`echo ${datadir} | sed "s!\\\${datarootdir}!${prefix}/share!"`
+    DATADIR=`echo ${DATADIR} | sed "s!\\\${prefix}!$presome!"`
+    BUILD_PACKAGE_DATADIR=`echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!"`
+    
+    AC_SUBST(datadir)
+    AC_SUBST(datarootdir)
+    AC_SUBST(build_package_datadir)
+    AC_DEFINE_UNQUOTED(DATADIR, ["${DATADIR}"])
+    AC_DEFINE_UNQUOTED(BUILD_PACKAGE_DATADIR, ["${BUILD_PACKAGE_DATADIR}"])
+])
+
+## ugh: cut & paste programming from datadir. 
+AC_DEFUN(STEPMAKE_LIBDIR, [
+
+    if test "$libdir" = "\${exec_prefix}/lib"; then
+       libdir='${exec_prefix}/lib'
+    fi
+    presome=$exec_prefix
+    build_package_libdir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/lib/$package
+    
+    LIBDIR=`echo ${libdir} | sed "s!\\\${exec_prefix}!$presome!"`
+    BUILD_PACKAGE_LIBDIR=`echo ${build_package_libdir} | sed "s!\\\${exec_prefix}!$presome!"`
+    
+    AC_SUBST(libdir)
+    AC_SUBST(build_package_libdir)
+    AC_DEFINE_UNQUOTED(LIBDIR, ["${LIBDIR}"])
+    AC_DEFINE_UNQUOTED(BUILD_PACKAGE_LIBDIR, ["${BUILD_PACKAGE_LIBDIR}"])
+])
+
+
+AC_DEFUN(STEPMAKE_PREFIX_EXPAND_FIXUP, [
+    # undo expanding of explicit --infodir=/usr/share
+    # to ease install-time override with prefix=...
+    strip=`echo $includedir | eval sed s@^$prefix@@`
+    if test "$includedir" = "`eval echo $prefix$strip`"; then
+           includedir='${prefix}'$strip''
+    fi
+    strip=`echo $libdir | eval sed s@^$exec_prefix@@`
+    if test "$libdir" = "`eval echo $exec_prefix$strip`"; then
+           libdir='${exec_prefix}'$strip''
+    fi
+    strip=`echo $infodir | eval sed s@^$datarootdir@@`
+    if test "$infodir" = "`eval echo $datarootdir$strip`"; then
+           infodir='${datarootdir}'$strip''
+    fi
+    strip=`echo $mandir | eval sed s@^$datarootdir@@`
+    if test "$mandir" = "`eval echo $datarootdir$strip`"; then
+           mandir='${datarootdir}'$strip''
+    fi
+])
+
+
+AC_DEFUN(STEPMAKE_END, [
+    STEPMAKE_PREFIX_EXPAND_FIXUP
+
+    AC_SUBST(OPTIONAL)
+    AC_SUBST(REQUIRED)
+    
+    AC_CONFIG_FILES([$CONFIGFILE.make:config.make.in])
+    AC_OUTPUT
+    
+    if test -n "$OPTIONAL"; then
+       echo
+        echo "WARNING: Please consider installing optional programs or files: $OPTIONAL"
+    fi
+
+    if test -n "$REQUIRED"; then
+       echo
+        echo "ERROR: Please install required programs: $REQUIRED"
+    fi
+    
+    if test -n "$UNSUPPORTED"; then
+       echo
+        echo "ERROR: Please use older version of programs: $UNSUPPORTED"
+    fi
+    
+    if test -n "$OPTIONAL$REQUIRED$UNSUPPORTED"; then
+       echo
+       echo "See INSTALL.txt for more information on how to build $PACKAGE_NAME"
+       if test -f config.cache ; then
+           echo "Remove config.cache before rerunning ./configure"
+       fi 
+    fi
+    
+    if test -n "$REQUIRED$UNSUPPORTED"; then
+       rm -f $srcdir/GNUmakefile
+        exit 1
+    fi
+
+    # regular in-place build
+    # test for srcdir_build = yes ?
+    if test "$srcdir_build" = "yes"; then
+       rm -f $srcdir/GNUmakefile
+       cp $srcdir/GNUmakefile.in $srcdir/GNUmakefile
+       chmod 444 $srcdir/GNUmakefile
+    else
+       if test -f $srcdir/GNUmakefile; then
+           cat <<EOF
+Source directory already configured.  Please clean the source directory
+
+     make -C $srcdir distclean
+
+and rerun configure.
+EOF
+           exit 2
+       fi
+
+       abssrcdir="`cd $srcdir; pwd`"
+       absbuilddir="`pwd`"
+       for d in 2 3 4 5 ; do
+           for mf in `cd $srcdir ; find . -maxdepth $d -mindepth $d -name GNUmakefile`; do
+               case "$abssrcdir" in
+                   "$absbuilddir"/*)
+# source is below build directory, always copy
+                       ;;
+                   *)
+                       case "$abssrcdir/${mf#./}" in
+                           "$absbuilddir"/*)
+# find descended into build directory, don't copy
+                               continue
+                       esac
+               esac
+               mkdir -p ${mf%/*}
+               cat <<EOF | $PYTHON -  > $mf
+print 'depth=' + ('../' * ( $d-1 ) )
+print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
+print 'include \$(configure-srcdir)/$mf'
+print 'MODULE_INCLUDES += \$(src-dir)/\$(outbase)'
+EOF
+           done
+           for mf in `cd $srcdir ; find . -maxdepth $d -mindepth $d -name '*.make' | grep -v config.make `; do
+               case "$abssrcdir" in
+                   "$absbuilddir"/*)
+# source is below build directory, always copy
+                       ;;
+                   *)
+                       case "$abssrcdir/${mf#./}" in
+                           "$absbuilddir"/*)
+# find descended into build directory, don't copy
+                               continue
+                       esac
+               esac
+               mkdir -p ${mf%/*}
+               cat <<EOF | $PYTHON -  > $mf
+print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
+print 'include \$(configure-srcdir)/$mf'
+EOF
+           done
+       done
+
+       rm -f GNUmakefile
+       cat <<EOF > GNUmakefile
+depth = .
+include config\$(if \$(conf),-\$(conf),).make
+include \$(configure-srcdir)/GNUmakefile.in
+EOF
+       chmod 444 GNUmakefile
+       AC_SUBST(VPATH)
+    fi
+])
+
+
+AC_DEFUN(STEPMAKE_FLEX, [
+    # ugh, automake: we want (and check for) flex
+    # AC_PROG_LEX
+    # urg: automake 1.3: hope this doesn't break 1.2 ac_cv_pro_lex_root hack...
+
+    # AC_PROG_LEX()
+    # ugh, ugh
+    ac_cv_prog_lex_root=lex.yy
+    STEPMAKE_PROGS(FLEX, flex, $1)
+])
+
+
+AC_DEFUN(STEPMAKE_FLEXLEXER, [
+    AC_CHECK_HEADERS([FlexLexer.h],[true],[false])
+    if test $? -ne 0; then
+       warn='FlexLexer.h (flex package)'
+       STEPMAKE_ADD_ENTRY($1, $warn)
+    fi
+    # check for yyFlexLexer.yy_current_buffer,
+    # in 2.5.4 <= flex < 2.5.29
+    AC_CACHE_CHECK([for yyFlexLexer.yy_current_buffer],
+       [stepmake_cv_flexlexer_yy_current_buffer],
+       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+using namespace std;
+#include <FlexLexer.h>
+class yy_flex_lexer: public yyFlexLexer
+{
+  public:
+    yy_flex_lexer ()
+    {
+      yy_current_buffer = 0;
+    }
+};
+]])],
+           [stepmake_cv_flexlexer_yy_current_buffer=yes],
+           [stepmake_cv_flexlexer_yy_current_buffer=no]))
+    if test $stepmake_cv_flexlexer_yy_current_buffer = yes; then
+       AC_DEFINE(HAVE_FLEXLEXER_YY_CURRENT_BUFFER, 1, [Define to 1 if yyFlexLexer has yy_current_buffer.])
+    fi
+])
+  
+
+
+AC_DEFUN(STEPMAKE_FLEXLEXER_LOCATION, [
+       AC_MSG_CHECKING([FlexLexer.h location])
+
+       # ugh.
+       cat <<EOF > conftest.cc
+using namespace std;
+#include <FlexLexer.h>
+EOF
+       FLEXLEXER_FILE=`eval $ac_cpp conftest.cc | \
+         sed 's!# 1 "\(.*FlexLexer.h\)"!@FLEXLEXER@\1@@!g' | grep '@@' | \
+         sed 's!.*@FLEXLEXER@\(.*\)@@.*$!\1!g' ` 1> /dev/null 2> /dev/null
+       rm conftest.cc
+       AC_SUBST(FLEXLEXER_FILE)
+        AC_MSG_RESULT($FLEXLEXER_FILE)
+])
+
+AC_DEFUN(STEPMAKE_GCC_OR_CLANG, [
+    STEPMAKE_HAS_CLANG()
+    if test "$HAS_CLANG" = "no"; then
+        if test "$GCC" = "yes"; then
+            STEPMAKE_CHECK_VERSION(CC, $1, $2)
+        else
+           warn="$CC (Please install *GNU* cc)"
+           STEPMAKE_ADD_ENTRY($1, $warn)
+        fi
+    fi
+    # no else, we're fine with any clang
+])
+
+AC_DEFUN(STEPMAKE_GETTEXT, [
+    presome=${prefix}
+    if test "$prefix" = "NONE"; then
+           presome=${ac_default_prefix}
+    fi
+    LOCALEDIR=`echo ${localedir} | sed "s!\\\${prefix}!$presome!"`
+    
+    AC_SUBST(localedir)
+    AC_DEFINE_UNQUOTED(LOCALEDIR, ["${LOCALEDIR}"])
+    AC_CHECK_LIB(intl, gettext)
+    AC_CHECK_FUNCS(gettext)
+])
+
+
+AC_DEFUN(STEPMAKE_GUILE, [
+    STEPMAKE_PATH_PROG(GUILE, guile guile1, $1)
+])
+
+
+#   STEPMAKE_GUILE_FLAGS --- set flags for compiling and linking with Guile
+#
+#   This macro runs the guile-config script, installed with Guile,
+#   to find out where Guile's header files and libraries are
+#   installed.  It sets two variables, marked for substitution, as
+#   by AC_SUBST.
+#   
+#     GUILE_CFLAGS --- flags to pass to a C or C++ compiler to build
+#             code that uses Guile header files.  This is almost
+#             always just a -I flag.
+#   
+#     GUILE_LDFLAGS --- flags to pass to the linker to link a
+#             program against Guile.  This includes -lguile for
+#             the Guile library itself, any libraries that Guile
+#             itself requires (like -lqthreads), and so on.  It may
+#             also include a -L flag to tell the compiler where to
+#             find the libraries.
+
+AC_DEFUN([STEPMAKE_GUILE_FLAGS], [
+    exe=`STEPMAKE_GET_EXECUTABLE($guile_config)`
+    if test -x $exe; then
+       AC_MSG_CHECKING([guile compile flags])
+       GUILE_CFLAGS="`$guile_config compile`"
+       AC_MSG_RESULT($GUILE_CFLAGS)
+       AC_MSG_CHECKING([guile link flags])
+       GUILE_LDFLAGS="`$guile_config link`"
+       AC_MSG_RESULT($GUILE_LDFLAGS)
+    fi
+    AC_SUBST(GUILE_CFLAGS)
+    AC_SUBST(GUILE_LDFLAGS)
+])
+
+
+AC_DEFUN(STEPMAKE_GUILE_DEVEL, [
+    ## First, let's just see if we can find Guile at all.
+    test -n "$target_alias" && target_guile_config=$target_alias-guile-config
+    test -n "$host_alias" && host_guile_config=$host_alias-guile-config
+    AC_MSG_CHECKING([for guile-config])
+    for guile_config in $GUILE_CONFIG $target_guile_config $host_guile_config $build_guile_config guile-config guile1-config; do
+       AC_MSG_RESULT([$guile_config])
+       if ! $guile_config --version > /dev/null 2>&1 ; then
+           AC_MSG_WARN([cannot execute $guile_config])
+           AC_MSG_CHECKING([if we are cross compiling])
+           GUILE_CONFIG='echo no guile-config'
+       else
+           GUILE_CONFIG=$guile_config
+           break
+       fi
+    done
+    STEPMAKE_OPTIONAL_REQUIRED(GUILE_CONFIG, $guile_config, $1)
+    if test $? -ne 0; then
+        STEPMAKE_ADD_ENTRY($1, 'guile-config (guile-devel, guile-dev or libguile-dev package) or guile1-config (guile1-devel package)')
+    fi 
+
+    STEPMAKE_CHECK_SEARCH_RESULT(GUILE_CONFIG)
+    # urg.  should test functionality rather than version.
+    if test $? -eq 0 -a -n "$2"; then
+       STEPMAKE_CHECK_VERSION(GUILE_CONFIG, $1, $2)
+    fi
+
+    AC_SUBST(GUILE_CONFIG)
+    
+    guile_version="$ver"
+    changequote(<<, >>)#dnl
+    GUILE_MAJOR_VERSION=`expr $guile_version : '\([0-9]*\)'`
+    GUILE_MINOR_VERSION=`expr $guile_version : '[0-9]*\.\([0-9]*\)'`
+    GUILE_PATCH_LEVEL=`expr $guile_version : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
+    changequote([, ])#dnl
+    STEPMAKE_GUILE_FLAGS
+    save_CPPFLAGS="$CPPFLAGS"
+    save_LIBS="$LIBS"
+    CPPFLAGS="$GUILE_CFLAGS $CPPFLAGS"
+    LIBS="$GUILE_LDFLAGS $LIBS"
+    AC_CHECK_HEADERS([libguile.h])
+    AC_CHECK_LIB(guile, scm_boot_guile)
+    AC_CHECK_FUNCS(scm_boot_guile,,libguile_b=no)
+    if test "$libguile_b" = "no"; then
+           warn='libguile (libguile-dev, guile-devel or guile-dev
+   package).'
+           STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
+    fi
+    CPPFLAGS="$save_CPPFLAGS"
+    LIBS="$save_LIBS"
+    AC_DEFINE_UNQUOTED(GUILE_MAJOR_VERSION, $GUILE_MAJOR_VERSION)
+    AC_DEFINE_UNQUOTED(GUILE_MINOR_VERSION, $GUILE_MINOR_VERSION)
+    AC_DEFINE_UNQUOTED(GUILE_PATCH_LEVEL, $GUILE_PATCH_LEVEL)
+])
+
+
+AC_DEFUN(STEPMAKE_DLOPEN, [
+    AC_CHECK_LIB(dl, dlopen)
+    AC_CHECK_FUNCS(dlopen)
+])
+
+AC_DEFUN(STEPMAKE_HAS_CLANG, [
+    AC_EGREP_CPP(yes,
+      [#ifdef __clang__
+       yes
+       #endif
+      ], HAS_CLANG=yes, HAS_CLANG=no)
+])
+
+AC_DEFUN(STEPMAKE_GXX_OR_CLANG, [
+    STEPMAKE_HAS_CLANG()
+    if test "$HAS_CLANG" = "no"; then
+        if test "$GXX" = "yes"; then
+            STEPMAKE_CHECK_VERSION(CXX, $1, $2)
+        else
+           warn="$CXX (Please install *GNU* c++)"
+           STEPMAKE_ADD_ENTRY($1, $warn)
+        fi
+    fi
+    # no else, we're fine with any clang
+])
+
+
+AC_DEFUN(STEPMAKE_INIT, [
+
+    . $srcdir/VERSION
+    FULL_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
+    MICRO_VERSION=$PATCH_LEVEL
+    TOPLEVEL_VERSION=$FULL_VERSION
+    if test x$MY_PATCH_LEVEL != x; then
+       FULL_VERSION=$FULL_VERSION.$MY_PATCH_LEVEL
+    fi
+    VERSION=$FULL_VERSION
+    export MAJOR_VERSION MINOR_VERSION PATCH_LEVEL
+    # urg: don't "fix" this: irix doesn't know about [:lower:] and [:upper:]
+    changequote(<<, >>)#dnl
+    PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'`
+    package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
+    changequote([, ])#dnl
+
+    # No versioning on directory names of sub-packages 
+    # urg, urg
+    stepmake=${datadir}/stepmake
+    presome=${prefix}
+    if test "$prefix" = "NONE"; then
+           presome=${ac_default_prefix}
+    fi
+    stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
+
+    # urg, how is this supposed to work?
+    if test "$program_prefix" = "NONE"; then
+         program_prefix=
+    fi
+    if test "$program_suffix" = "NONE"; then
+         program_suffix=
+    fi
+
+    AC_MSG_CHECKING(Package)
+    if test "$PACKAGE" = "STEPMAKE"; then
+       AC_MSG_RESULT(Stepmake package!)
+
+       AC_MSG_CHECKING(builddir)
+
+       ugh_ugh_autoconf250_builddir="`pwd`"
+       
+       if test "$srcdir" = "."; then
+           srcdir_build=yes
+       else
+           srcdir_build=no
+           package_builddir="`dirname $ugh_ugh_autoconf250_builddir`"
+           package_srcdir="`dirname  $srcdir`"
+       fi
+       AC_MSG_RESULT($ugh_ugh_autoconf250_builddir)
+
+       (cd stepmake 2>/dev/null || mkdir stepmake)
+       (cd stepmake; rm -f bin; ln -s ../$srcdir/bin .)
+       stepmake=stepmake
+    else
+        AC_MSG_RESULT($PACKAGE)
+
+       AC_MSG_CHECKING(builddir)
+       ugh_ugh_autoconf250_builddir="`pwd`"
+
+       here_dir=$(cd . && pwd)
+       full_src_dir=$(cd $srcdir && pwd)
+
+       if test "$full_src_dir" = "$here_dir"; then
+           srcdir_build=yes
+       else
+           srcdir_build=no
+       fi
+       AC_MSG_RESULT($ugh_ugh_autoconf250_builddir)
+
+       AC_MSG_CHECKING(for stepmake)
+       # Check for installed stepmake
+       if test -d $stepmake; then
+           AC_MSG_RESULT($stepmake)
+       else
+           stepmake="`cd $srcdir/stepmake; pwd`"
+           AC_MSG_RESULT([$srcdir/stepmake  ($datadir/stepmake not found)])
+       fi
+    fi
+
+    AC_SUBST(ugh_ugh_autoconf250_builddir)
+
+    # Use absolute directory for non-srcdir builds, so that build
+    # dir can be moved.
+    if test "$srcdir_build" = "no" ;  then 
+       srcdir="`cd $srcdir; pwd`"
+    fi
+    
+    AC_SUBST(srcdir)
+    AC_SUBST(stepmake)
+    AC_SUBST(package)
+    AC_SUBST(PACKAGE)
+    AC_SUBST(PACKAGE_NAME)
+    AC_SUBST(VERSION)
+    AC_SUBST(MAJOR_VERSION)
+    AC_SUBST(MINOR_VERSION)
+    AC_SUBST(MICRO_VERSION)
+
+    # stepmake nonstandard names
+    AC_SUBST(PATCH_LEVEL)
+    AC_SUBST(TOPLEVEL_VERSION)
+    
+    # We don't need the upper case variant,
+    # so stick to macros are uppercase convention.
+    # AC_DEFINE_UNQUOTED(package, ["${package}"])
+    # AC_DEFINE_UNQUOTED(PACKAGE, ["${PACKAGE}"])
+    AC_DEFINE_UNQUOTED(PACKAGE, ["${package}"])
+    AC_DEFINE_UNQUOTED(PACKAGE_NAME, ["${PACKAGE_NAME}"])
+    AC_DEFINE_UNQUOTED(TOPLEVEL_VERSION, ["${FULL_VERSION}"])
+
+    if test -z "$package_depth"; then
+       package_depth="."
+    else
+       package_depth="../$package_depth"
+    fi
+    export package_depth
+    AC_SUBST(package_depth)
+
+    AUTOGENERATE="This file was automatically generated by configure"
+    AC_SUBST(AUTOGENERATE)
+
+    CONFIGSUFFIX=
+    AC_ARG_ENABLE(config,
+    [AS_HELP_STRING([--enable-config=CONF],
+                    [put settings in config-CONF.make and config-CONF.h;
+                   do `make conf=CONF' to get output in ./out-CONF])],
+    [CONFIGURATION=$enableval])
+
+    ##'`#
+
+    test -n "$CONFIGURATION" && CONFIGSUFFIX="-$CONFIGURATION"
+    CONFIGFILE=config$CONFIGSUFFIX
+    AC_SUBST(CONFIGSUFFIX)
+     
+    AC_CANONICAL_HOST
+    STEPMAKE_PROGS(MAKE, gmake make, REQUIRED)
+    STEPMAKE_PROGS(FIND, find, REQUIRED)
+
+    STEPMAKE_PROGS(TAR, tar, REQUIRED)
+
+    if test "$(echo 2)" != "2" ||
+       test "x`uname`" = "xHP-UX"; then
+       AC_PATH_PROG(KSH, ksh, /bin/ksh)
+       AC_PATH_PROG(BASH, bash, $KSH)
+       STEPMAKE_WARN(avoiding buggy /bin/sh)
+       AC_PATH_PROG(SHELL, bash, $KSH)
+    else
+       SHELL=/bin/sh
+       AC_PATH_PROG(BASH, bash, $SHELL)
+    fi
+    AC_SUBST(SHELL)
+
+    STEPMAKE_PYTHON(REQUIRED, 1.5)
+
+    if expr "$MAKE" : '.*\(echo\)' >/dev/null; then
+       $MAKE -v 2> /dev/null | grep GNU > /dev/null
+       if test "$?" = 1; then
+           warn='make (Please install *GNU* make)'
+           # STEPMAKE_WARN($warn)
+           STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
+        fi
+    fi
+
+    ROOTSEP=':'
+    DIRSEP='/'
+    PATHSEP=':'
+    LN=ln
+    LN_S='ln -s'
+    ZIP="zip -r -9"
+
+    AC_SUBST(program_prefix)
+    AC_SUBST(program_suffix)
+    AC_SUBST(ZIP)
+    AC_SUBST(LN)
+    AC_SUBST(LN_S)
+    AC_DEFINE_UNQUOTED(DIRSEP, ['${DIRSEP}'])
+    AC_DEFINE_UNQUOTED(PATHSEP, ['${PATHSEP}'])
+    AC_SUBST(DIRSEP)
+    AC_SUBST(PATHSEP)
+    AC_SUBST(ROOTSEP)
+  
+    STEPMAKE_DATADIR
+    STEPMAKE_LIBDIR
+])
+
+    
+AC_DEFUN(STEPMAKE_LIB, [
+    STEPMAKE_PROGS(AR, ar, $1)
+    AC_PROG_RANLIB
+    STEPMAKE_OPTIONAL_REQUIRED(RANLIB, ranlib, $1)
+])
+
+
+AC_DEFUN(STEPMAKE_LIBTOOL, [
+    # libtool.info ...
+    # **Never** try to set library version numbers so that they correspond
+    # to the release number of your package.  This is an abuse that only
+    # fosters misunderstanding of the purpose of library versions.
+
+    REVISION=$PATCH_LEVEL
+    # CURRENT=$MINOR_VERSION
+    CURRENT=`expr $MINOR_VERSION + 1`
+    # AGE=`expr $MAJOR_VERSION + 1`
+    AGE=$MAJOR_VERSION
+    AC_SUBST(CURRENT)
+    AC_SUBST(REVISION)
+    AC_SUBST(AGE)
+])
+
+
+AC_DEFUN(STEPMAKE_LOCALE, [
+    lang=English
+    ALL_LINGUAS="en nl"
+
+    # with/enable ??
+    AC_ARG_WITH(localedir,
+    [AS_HELP_STRING([--with-localedir=DIR],
+                    [location of locales.  Default: PREFIX/share/locale])],
+    localedir=$with_localedir,
+    localedir='${prefix}/share/locale')
+
+    AC_ARG_WITH(lang,
+    [AS_HELP_STRING([--with-lang=LANG],
+                    [use LANG as language to emit messages])],
+    language=$with_lang,
+    language=English)
+
+    AC_MSG_CHECKING(language)    
+    case "$language" in
+      En* | en* | Am* | am* | US* | us*)
+           lang=English;;
+      NL | nl | Du* | du* | Ned* | ned*)
+           lang=Dutch;;
+      "")
+           lang=English;;
+      *)
+           lang=unknown;;
+    esac
+    AC_MSG_RESULT($lang)
+
+    if test "$lang" = "unknown" ; then
+       STEPMAKE_WARN($language not supported; available are: $ALL_LINGUAS)
+    fi
+
+])
+
+
+AC_DEFUN(STEPMAKE_MAKEINFO, [
+    STEPMAKE_PROGS(MAKEINFO, makeinfo, $1)
+])
+
+
+AC_DEFUN(STEPMAKE_MAN, [
+    STEPMAKE_PROGS(GROFF, groff ditroff, $1)
+    AC_SUBST(GROFF)
+    STEPMAKE_PROGS(TROFF, troff, $1)
+    AC_SUBST(TROFF)
+    STEPMAKE_PROGS(TBL, tbl, $1)
+    AC_SUBST(TBL)
+])
+
+
+AC_DEFUN(STEPMAKE_MSGFMT, [
+    STEPMAKE_PROGS(MSGFMT, msgfmt, $1)
+])
+
+
+# Check for program ($2), set full path result to ($1).
+# If missing, add entry to missing-list ($3, one of 'OPTIONAL', 'REQUIRED')
+AC_DEFUN(STEPMAKE_PATH_PROG, [
+    AC_CHECK_PROGS($1, $2, no)
+    STEPMAKE_OPTIONAL_REQUIRED($1, $2, $3)
+    if test $? -eq 0; then
+       AC_PATH_PROGS($1, $2)
+       if test -n "$4"; then
+           STEPMAKE_CHECK_VERSION($1, $3, $4)
+       fi
+    fi
+])
+
+
+# Check for program in set of names ($2), set result to ($1) .
+# If missing, add entry to missing-list ($3, one of 'OPTIONAL', 'REQUIRED')
+# If exists, and a minimal version ($4) is required
+AC_DEFUN(STEPMAKE_PROGS, [
+    AC_CHECK_PROGS($1, $2, no)
+    STEPMAKE_OPTIONAL_REQUIRED($1, $2, $3)
+    if test $? -eq 0 -a -n "$4"; then
+       STEPMAKE_CHECK_VERSION($1, $3, $4)
+    fi
+])
+
+
+AC_DEFUN(STEPMAKE_PERL, [
+    STEPMAKE_PATH_PROG(PERL, perl, $1)
+])
+
+
+AC_DEFUN(STEPMAKE_PYTHON, [
+    unset pv
+    AC_MSG_CHECKING([for python])
+    for python in $PYTHON python python2 python2.4 python2.3 python2.2 python2.1 python2.0; do
+       AC_MSG_RESULT([$python])
+       if ! $python -V > /dev/null 2>&1 ; then
+           #AC_MSG_WARN([cannot execute $python])
+           PYTHON='echo no python'
+       else
+           unset pv
+           STEPMAKE_CHECK_VERSION(python, pv, $2)
+           if test -z "$pv"; then
+               PYTHON=$python
+               break
+           fi
+       fi
+    done
+    if test -n "$pv"; then
+       STEPMAKE_ADD_ENTRY($1, $pv)
+    fi
+    # clear cached value since arg 2 might point us to a new binary
+    unset ac_cv_path_PYTHON
+
+    AC_PATH_PROG(PYTHON, $PYTHON)
+    AC_SUBST(PYTHON)
+])
+
+AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [
+    AC_ARG_WITH(python-include,
+       [AS_HELP_STRING([--with-python-include=DIR],
+                       [location of the python include dir])],[
+       if test "$withval" = "yes" -o "$withval" = "no"; then
+           AC_MSG_WARN(Usage: --with-python-include=includedir)
+       else
+           PYTHON_CFLAGS="-I${withval}"
+       fi
+    ])
+    
+    AC_ARG_WITH(python-lib,
+       [AS_HELP_STRING([--with-python-lib=NAME],
+                       [name of the python lib])],[
+       if test "$withval" = "yes" -o "$withval" = "no"; then
+           AC_MSG_WARN(Usage: --with-python-lib=name)
+       else
+           LDFLAGS="$LDFLAGS -l${withval}"
+       fi
+    ])
+    
+    AC_CHECK_PROGS(PYTHON_CONFIG, python-config, no)
+
+    if test -z "$PYTHON_CFLAGS" -a "$PYTHON_CONFIG" != "no"; then
+        # Clean out junk: http://bugs.python.org/issue3290
+       # Python headers may need some -f* flags, leave them in.
+       # We want the sed commands to look like 's/-[WDOm][[:alnum:][:punct:]][[:alnum:][:punct:]]*//g' and 's/-arch [^[:space:]]*//g', but automake eats brackets.
+        #PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'`
+        # The above sed BRE matches parts of legal options, stipping down part of that option, resulting in invalid gcc arguments. Gentoo Bug #415793
+        # For instance, '-floop-stip-mime' becomes '-floop-strip', and '-fvect-cost-model' becomes '-fvect-cost'.
+        # Tentative fix to require a non alphanumeric character before the initial hyphen of the BRE or the hyphen being the first character in the string.
+        PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/\(^\|[[^[:alnum:]]]\)-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'`
+       PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
+    fi
+    
+    if test -z "$PYTHON_CFLAGS" -a "$cross_compiling" = "no"; then
+       changequote(<<, >>)#dnl
+       # alternatively, for python >= 2.0
+       # 'import sys, distutils.sysconfig; sys.stdout.write (distutils.sysconfig.get_python_inc ())'
+       PYTHON_INCLUDE=`$PYTHON -c 'import sys; sys.stdout.write ("%s/include/python%s" % (sys.prefix, sys.version[:3]))'`
+       PYTHON_CFLAGS="-I$PYTHON_INCLUDE"
+       changequote([, ])#dnl
+    fi
+    
+    if test -z "$PYTHON_HEADER"; then
+       CPPFLAGS="$PYTHON_CFLAGS $CPPFLAGS"
+       AC_CHECK_HEADERS([Python.h],[PYTHON_HEADER=yes])
+    fi
+    
+    if test -z "$PYTHON_HEADER"; then
+       warn="Python.h (python-devel, python-dev or libpython-dev package)"
+       STEPMAKE_ADD_ENTRY($1, $warn)
+    fi
+])
+
+
+
+AC_DEFUN(STEPMAKE_STL_DATA_METHOD, [
+    AC_CACHE_CHECK([for stl.data () method],
+       [stepmake_cv_stl_data_method],
+       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <vector>
+using namespace std;
+vector <int> v;
+void *p = v.data ();
+]])],
+           [stepmake_cv_stl_data_method=yes],
+           [stepmake_cv_stl_data_method=no]))
+    if test $stepmake_cv_stl_data_method = yes; then
+       AC_DEFINE(HAVE_STL_DATA_METHOD, 1, [define if stl classes have data () method])
+    fi
+])
+
+
+AC_DEFUN(STEPMAKE_TEXMF_DIRS, [
+    # ugh
+    STEPMAKE_PROGS(KPSEWHICH, kpsewhich, OPTIONAL)
+])
+
+AC_DEFUN(STEPMAKE_TEXMF, [
+    STEPMAKE_PROGS(METAFONT, mf-nowin mf mfw mfont, $1)
+    STEPMAKE_PROGS(METAPOST, mpost, $1)
+
+    AC_MSG_CHECKING(for working metafont mode)
+    modelist='ljfour lj4 lj3 lj2 ljet laserjet'
+    for MFMODE in $modelist; do
+       $METAFONT -progname=mf "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1
+       if test -f mfput.tfm; then
+           break;
+       fi
+    done
+    AC_MSG_RESULT($MFMODE)
+
+    rm -f mfput.*
+
+    AC_SUBST(MFMODE)
+])
+
+
+AC_DEFUN(STEPMAKE_WARN, [
+    AC_MSG_WARN($1)
+    warn_b=yes
+])
+
+
+dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
+dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
+dnl also defines GSTUFF_PKG_ERRORS on error
+AC_DEFUN(PKG_CHECK_MODULES, [
+  succeeded=no
+
+  if test -z "$PKG_CONFIG"; then
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        AC_MSG_CHECKING(for $2)
+
+        if $PKG_CONFIG --exists "$2" ; then
+            AC_MSG_RESULT(yes)
+            succeeded=yes
+
+            AC_MSG_CHECKING($1_CFLAGS)
+            $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
+            AC_MSG_RESULT($$1_CFLAGS)
+
+            AC_MSG_CHECKING($1_LIBS)
+            $1_LIBS=`$PKG_CONFIG --libs "$2"`
+            AC_MSG_RESULT($$1_LIBS)
+        else
+            $1_CFLAGS=""
+            $1_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but 
+            ## do set a variable so people can do so.
+            $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+            ifelse([$4], ,echo $$1_PKG_ERRORS,)
+        fi
+
+        AC_SUBST($1_CFLAGS)
+        AC_SUBST($1_LIBS)
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     ifelse([$3], , :, [$3])
+  else
+     ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
+  fi
+])
+
+AC_DEFUN(STEPMAKE_FREETYPE2, [
+    PKG_CHECK_MODULES(FREETYPE2, $1 >= $3, have_freetype2=yes, true)
+    if test "$have_freetype2" = yes; then
+       AC_DEFINE(HAVE_FREETYPE2)
+        save_CPPFLAGS="$CPPFLAGS"
+        save_LIBS="$LIBS"
+       CPPFLAGS="$FREETYPE2_CFLAGS $CPPFLAGS"
+       LIBS="$FREETYPE2_LIBS $LIBS"
+       AC_SUBST(FREETYPE2_CFLAGS)
+       AC_SUBST(FREETYPE2_LIBS)
+       CPPFLAGS="$save_CPPFLAGS"
+       LIBS="$save_LIBS"
+    else
+       # UGR
+       #r="lib$1-dev or $1-devel"
+       r="libfreetype6-dev or freetype?-devel"
+       ver="`pkg-config --modversion $1`"
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
+    fi
+])
+
+AC_DEFUN(STEPMAKE_PANGO, [
+    PKG_CHECK_MODULES(PANGO, $1 >= $3, have_pango16=yes, true)
+    if test "$have_pango16" = yes ; then
+       AC_DEFINE(HAVE_PANGO16)
+       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
+        save_CPPFLAGS="$CPPFLAGS"
+        save_LIBS="$LIBS"
+       CPPFLAGS="$PANGO_CFLAGS $CPPFLAGS"
+       LIBS="$PANGO_LIBS $LIBS"
+       AC_CHECK_HEADERS([pango/pangofc-fontmap.h])
+       AC_CHECK_FUNCS([pango_fc_font_map_add_decoder_find_func])
+       AC_SUBST(PANGO_CFLAGS)
+       AC_SUBST(PANGO_LIBS)
+       CPPFLAGS="$save_CPPFLAGS"
+       LIBS="$save_LIBS"
+    else
+       # UGR
+       #r="lib$1-dev or $1-devel"
+       r="libpango1.0-dev or pango1.0-devel"
+       ver="`pkg-config --modversion $1`"
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
+    fi
+])
+
+AC_DEFUN(STEPMAKE_PANGO_FT2, [
+    PKG_CHECK_MODULES(PANGO_FT2, $1 >= $3, have_pangoft2=yes, true)
+    if test "$have_pangoft2" = yes ; then
+       AC_DEFINE(HAVE_PANGO16)
+       AC_DEFINE(HAVE_PANGO_FT2)
+       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
+        save_CPPFLAGS="$CPPFLAGS"
+        save_LIBS="$LIBS"
+       CPPFLAGS="$CPPFLAGS $PANGO_FT2_CFLAGS"
+       LIBS="$PANGO_FT2_LIBS $LIBS"
+       AC_CHECK_HEADERS([pango/pangoft2.h])
+       AC_CHECK_FUNCS([pango_ft2_font_map_create_context])
+       AC_SUBST(PANGO_FT2_CFLAGS)
+       AC_SUBST(PANGO_FT2_LIBS)
+       CPPFLAGS="$save_CPPFLAGS"
+       LIBS="$save_LIBS"
+    else
+       # UGR
+       #r="lib$1-dev or $1-devel"e
+       r="libpango1.0-dev or pango?-devel"
+       ver="`pkg-config --modversion $1`"
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
+    fi
+])
+
+AC_DEFUN(STEPMAKE_FONTCONFIG, [
+    PKG_CHECK_MODULES(FONTCONFIG, $1 >= $3, have_fontconfig=yes, true)
+    if test "$have_fontconfig" = yes ; then
+       AC_DEFINE(HAVE_FONTCONFIG)
+       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
+        save_CPPFLAGS="$CPPFLAGS"
+        save_LIBS="$LIBS"
+       CPPFLAGS="$FONTCONFIG_CFLAGS $CPPFLAGS"
+       LIBS="$FONTCONFIG_LIBS $LIBS"
+       AC_SUBST(FONTCONFIG_CFLAGS)
+       AC_SUBST(FONTCONFIG_LIBS)
+       CPPFLAGS="$save_CPPFLAGS"
+       LIBS="$save_LIBS"
+    else
+       r="lib$1-dev or $1-devel"
+       ver="`pkg-config --modversion $1`"
+       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
+    fi
+])
+
+AC_DEFUN(STEPMAKE_WINDOWS, [
+    AC_CYGWIN
+    AC_MINGW32
+
+    if test "$CYGWIN" = "yes"; then
+       LN_S='cp -r' # Cygwin symbolic links do not work for native apps.
+       program_suffix=.exe
+       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
+    elif test "$MINGW32" = "yes"; then
+       LN='cp -r'
+       LN_S='cp -r'
+       program_suffix=.exe
+       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
+       PATHSEP=';'
+    fi
+
+    AC_SUBST(LN)
+    AC_SUBST(LN_S)
+    AC_DEFINE_UNQUOTED(DIRSEP, ['${DIRSEP}'])
+    AC_DEFINE_UNQUOTED(PATHSEP, ['${PATHSEP}'])
+    AC_SUBST(DIRSEP)
+    AC_SUBST(PATHSEP)
+    AC_SUBST(program_suffix)
+
+    AC_MSG_CHECKING([for some flavor of Windows])
+    if test "$CYGWIN$MINGW32" = "nono"; then
+        PLATFORM_WINDOWS=no
+    else
+        PLATFORM_WINDOWS=yes
+    fi
+    AC_MSG_RESULT([$PLATFORM_WINDOWS])
+    AC_SUBST(PLATFORM_WINDOWS)
+    STEPMAKE_PROGS(WINDRES, $target-windres windres, x)
+    AC_SUBST(WINDRES)
+])
index 34c022e0825ff602da60fd86aa9ac3f0ba951ce5..9d21f79936ad373586637c034fd07334c77dd778 100755 (executable)
@@ -7,17 +7,6 @@ case $1 in
     --noconf*) NOCONFIGURE=true;;
 esac
 
-if [ ! -f aclocal.m4 -o stepmake/aclocal.m4 -nt aclocal.m4 ]; then
-    echo "stepmake/aclocal.m4 is newer.  Copying file." 
-    cp -f stepmake/aclocal.m4 aclocal.m4
-fi
-
-if [ ! -f autogen.sh -o stepmake/autogen.sh -nt autogen.sh ]; then
-    echo "stepmake/autogen.sh is newer.  Copying file." 
-    cp -f stepmake/autogen.sh autogen.sh
-    exec ./autogen.sh "$@"
-fi
-
 for i in $srcdir/configure.in #`find $srcdir -name configure.in -print`
 do 
   dir=`dirname $i`
index aa674379e3dcaa8679195c722f377c6b3ce84922..9837fc3e49f7ec52000e44fbd2c525ddc7c91031 100644 (file)
@@ -131,8 +131,8 @@ PATHSEP = @PATHSEP@
 PDFLATEX = @PDFLATEX@
 PERL = @PERL@
 PLATFORM_WINDOWS = @PLATFORM_WINDOWS@
-PYTHON = @PYTHON@
-TARGET_PYTHON = @PYTHON@
+PYTHON = @PYTHON@ -tt
+TARGET_PYTHON = @PYTHON@ -tt
 RANLIB = @RANLIB@
 ROOTSEP = @ROOTSEP@
 SHELL = @SHELL@
diff --git a/config/config.guess b/config/config.guess
new file mode 100755 (executable)
index 0000000..115f944
--- /dev/null
@@ -0,0 +1,1502 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   Free Software Foundation, Inc.
+
+timestamp='2010-04-03'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' HUP INT TERM
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+       for c in cc gcc c89 c99 ; do
+         if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+            CC_FOR_BUILD="$c"; break ;
+         fi ;
+       done ;
+       if test x"$CC_FOR_BUILD" = x ; then
+         CC_FOR_BUILD=no_compiler_found ;
+       fi
+       ;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+       PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+       # NetBSD (nbsd) targets should (where applicable) match one or
+       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+       # switched to ELF, *-*-netbsd* would select the old
+       # object file format.  This provides both forward
+       # compatibility and a consistent mechanism for selecting the
+       # object file format.
+       #
+       # Note: NetBSD doesn't particularly care about the vendor
+       # portion of the name.  We always set it to "unknown".
+       sysctl="sysctl -n hw.machine_arch"
+       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+       case "${UNAME_MACHINE_ARCH}" in
+           armeb) machine=armeb-unknown ;;
+           arm*) machine=arm-unknown ;;
+           sh3el) machine=shl-unknown ;;
+           sh3eb) machine=sh-unknown ;;
+           sh5el) machine=sh5le-unknown ;;
+           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+       esac
+       # The Operating System including object format, if it has switched
+       # to ELF recently, or will in the future.
+       case "${UNAME_MACHINE_ARCH}" in
+           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+               eval $set_cc_for_build
+               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+                       | grep -q __ELF__
+               then
+                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+                   # Return netbsd for either.  FIX?
+                   os=netbsd
+               else
+                   os=netbsdelf
+               fi
+               ;;
+           *)
+               os=netbsd
+               ;;
+       esac
+       # The OS release
+       # Debian GNU/NetBSD machines have a different userland, and
+       # thus, need a distinct triplet. However, they do not need
+       # kernel version information, so it can be replaced with a
+       # suitable tag, in the style of linux-gnu.
+       case "${UNAME_VERSION}" in
+           Debian*)
+               release='-gnu'
+               ;;
+           *)
+               release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+               ;;
+       esac
+       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+       # contains redundant information, the shorter form:
+       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+       echo "${machine}-${os}${release}"
+       exit ;;
+    *:OpenBSD:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+       exit ;;
+    *:ekkoBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+       exit ;;
+    *:SolidBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+       exit ;;
+    macppc:MirBSD:*:*)
+       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
+    *:MirBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
+    alpha:OSF1:*:*)
+       case $UNAME_RELEASE in
+       *4.0)
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+               ;;
+       *5.*)
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               ;;
+       esac
+       # According to Compaq, /usr/sbin/psrinfo has been available on
+       # OSF/1 and Tru64 systems produced since 1995.  I hope that
+       # covers most systems running today.  This code pipes the CPU
+       # types through head -n 1, so we only detect the type of CPU 0.
+       ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+       case "$ALPHA_CPU_TYPE" in
+           "EV4 (21064)")
+               UNAME_MACHINE="alpha" ;;
+           "EV4.5 (21064)")
+               UNAME_MACHINE="alpha" ;;
+           "LCA4 (21066/21068)")
+               UNAME_MACHINE="alpha" ;;
+           "EV5 (21164)")
+               UNAME_MACHINE="alphaev5" ;;
+           "EV5.6 (21164A)")
+               UNAME_MACHINE="alphaev56" ;;
+           "EV5.6 (21164PC)")
+               UNAME_MACHINE="alphapca56" ;;
+           "EV5.7 (21164PC)")
+               UNAME_MACHINE="alphapca57" ;;
+           "EV6 (21264)")
+               UNAME_MACHINE="alphaev6" ;;
+           "EV6.7 (21264A)")
+               UNAME_MACHINE="alphaev67" ;;
+           "EV6.8CB (21264C)")
+               UNAME_MACHINE="alphaev68" ;;
+           "EV6.8AL (21264B)")
+               UNAME_MACHINE="alphaev68" ;;
+           "EV6.8CX (21264D)")
+               UNAME_MACHINE="alphaev68" ;;
+           "EV6.9A (21264/EV69A)")
+               UNAME_MACHINE="alphaev69" ;;
+           "EV7 (21364)")
+               UNAME_MACHINE="alphaev7" ;;
+           "EV7.9 (21364A)")
+               UNAME_MACHINE="alphaev79" ;;
+       esac
+       # A Pn.n version is a patched version.
+       # A Vn.n version is a released version.
+       # A Tn.n version is a released field test version.
+       # A Xn.n version is an unreleased experimental baselevel.
+       # 1.2 uses "1.2" for uname -r.
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       exit ;;
+    Alpha\ *:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # Should we change UNAME_MACHINE based on the output of uname instead
+       # of the specific Alpha model?
+       echo alpha-pc-interix
+       exit ;;
+    21064:Windows_NT:50:3)
+       echo alpha-dec-winnt3.5
+       exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+       echo m68k-unknown-sysv4
+       exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-amigaos
+       exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-morphos
+       exit ;;
+    *:OS/390:*:*)
+       echo i370-ibm-openedition
+       exit ;;
+    *:z/VM:*:*)
+       echo s390-ibm-zvmoe
+       exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+       exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+       echo arm-acorn-riscix${UNAME_RELEASE}
+       exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+       echo arm-unknown-riscos
+       exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+       echo hppa1.1-hitachi-hiuxmpp
+       exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+       # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+       if test "`(/bin/universe) 2>/dev/null`" = att ; then
+               echo pyramid-pyramid-sysv3
+       else
+               echo pyramid-pyramid-bsd
+       fi
+       exit ;;
+    NILE*:*:*:dcosx)
+       echo pyramid-pyramid-svr4
+       exit ;;
+    DRS?6000:unix:4.0:6*)
+       echo sparc-icl-nx6
+       exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+       case `/usr/bin/uname -p` in
+           sparc) echo sparc-icl-nx7; exit ;;
+       esac ;;
+    s390x:SunOS:*:*)
+       echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4H:SunOS:5.*:*)
+       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+       echo i386-pc-auroraux${UNAME_RELEASE}
+       exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+       eval $set_cc_for_build
+       SUN_ARCH="i386"
+       # If there is a compiler, see if it is configured for 64-bit objects.
+       # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+       # This test works for both compilers.
+       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+           if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+               (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_64BIT_ARCH >/dev/null
+           then
+               SUN_ARCH="x86_64"
+           fi
+       fi
+       echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4*:SunOS:6*:*)
+       # According to config.sub, this is the proper way to canonicalize
+       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+       # it's likely to be more like Solaris than SunOS4.
+       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4*:SunOS:*:*)
+       case "`/usr/bin/arch -k`" in
+           Series*|S4*)
+               UNAME_RELEASE=`uname -v`
+               ;;
+       esac
+       # Japanese Language versions have a version number like `4.1.3-JL'.
+       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+       exit ;;
+    sun3*:SunOS:*:*)
+       echo m68k-sun-sunos${UNAME_RELEASE}
+       exit ;;
+    sun*:*:4.2BSD:*)
+       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+       case "`/bin/arch`" in
+           sun3)
+               echo m68k-sun-sunos${UNAME_RELEASE}
+               ;;
+           sun4)
+               echo sparc-sun-sunos${UNAME_RELEASE}
+               ;;
+       esac
+       exit ;;
+    aushp:SunOS:*:*)
+       echo sparc-auspex-sunos${UNAME_RELEASE}
+       exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+       echo m68k-apple-machten${UNAME_RELEASE}
+       exit ;;
+    powerpc:machten:*:*)
+       echo powerpc-apple-machten${UNAME_RELEASE}
+       exit ;;
+    RISC*:Mach:*:*)
+       echo mips-dec-mach_bsd4.3
+       exit ;;
+    RISC*:ULTRIX:*:*)
+       echo mips-dec-ultrix${UNAME_RELEASE}
+       exit ;;
+    VAX*:ULTRIX*:*:*)
+       echo vax-dec-ultrix${UNAME_RELEASE}
+       exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+       echo clipper-intergraph-clix${UNAME_RELEASE}
+       exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
+       #if defined (host_mips) && defined (MIPSEB)
+       #if defined (SYSTYPE_SYSV)
+         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_SVR4)
+         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+       #endif
+       #endif
+         exit (-1);
+       }
+EOF
+       $CC_FOR_BUILD -o $dummy $dummy.c &&
+         dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+         SYSTEM_NAME=`$dummy $dummyarg` &&
+           { echo "$SYSTEM_NAME"; exit; }
+       echo mips-mips-riscos${UNAME_RELEASE}
+       exit ;;
+    Motorola:PowerMAX_OS:*:*)
+       echo powerpc-motorola-powermax
+       exit ;;
+    Motorola:*:4.3:PL8-*)
+       echo powerpc-harris-powermax
+       exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+       echo powerpc-harris-powermax
+       exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+       echo powerpc-harris-powerunix
+       exit ;;
+    m88k:CX/UX:7*:*)
+       echo m88k-harris-cxux7
+       exit ;;
+    m88k:*:4*:R4*)
+       echo m88k-motorola-sysv4
+       exit ;;
+    m88k:*:3*:R3*)
+       echo m88k-motorola-sysv3
+       exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+       then
+           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           then
+               echo m88k-dg-dgux${UNAME_RELEASE}
+           else
+               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+           fi
+       else
+           echo i586-dg-dgux${UNAME_RELEASE}
+       fi
+       exit ;;
+    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
+       echo m88k-dolphin-sysv3
+       exit ;;
+    M88*:*:R3*:*)
+       # Delta 88k system running SVR3
+       echo m88k-motorola-sysv3
+       exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+       echo m88k-tektronix-sysv3
+       exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+       echo m68k-tektronix-bsd
+       exit ;;
+    *:IRIX*:*:*)
+       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+       echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+       echo i386-ibm-aix
+       exit ;;
+    ia64:AIX:*:*)
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       exit ;;
+    *:AIX:2:3)
+       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+               eval $set_cc_for_build
+               sed 's/^                //' << EOF >$dummy.c
+               #include <sys/systemcfg.h>
+
+               main()
+                       {
+                       if (!__power_pc())
+                               exit(1);
+                       puts("powerpc-ibm-aix3.2.5");
+                       exit(0);
+                       }
+EOF
+               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+               then
+                       echo "$SYSTEM_NAME"
+               else
+                       echo rs6000-ibm-aix3.2.5
+               fi
+       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+               echo rs6000-ibm-aix3.2.4
+       else
+               echo rs6000-ibm-aix3.2
+       fi
+       exit ;;
+    *:AIX:*:[456])
+       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+               IBM_ARCH=rs6000
+       else
+               IBM_ARCH=powerpc
+       fi
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+       exit ;;
+    *:AIX:*:*)
+       echo rs6000-ibm-aix
+       exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+       echo romp-ibm-bsd4.4
+       exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+       exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+       echo rs6000-bull-bosx
+       exit ;;
+    DPX/2?00:B.O.S.:*:*)
+       echo m68k-bull-sysv3
+       exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+       echo m68k-hp-bsd
+       exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+       echo m68k-hp-bsd4.4
+       exit ;;
+    9000/[34678]??:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       case "${UNAME_MACHINE}" in
+           9000/31? )            HP_ARCH=m68000 ;;
+           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/[678][0-9][0-9])
+               if [ -x /usr/bin/getconf ]; then
+                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+               fi
+               if [ "${HP_ARCH}" = "" ]; then
+                   eval $set_cc_for_build
+                   sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+               {
+               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+               case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+                   switch (bits)
+                       {
+                       case 64: puts ("hppa2.0w"); break;
+                       case 32: puts ("hppa2.0n"); break;
+                       default: puts ("hppa2.0"); break;
+                       } break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+                   puts ("hppa2.0"); break;
+              #endif
+               default: puts ("hppa1.0"); break;
+               }
+                  exit (0);
+              }
+EOF
+                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+                   test -z "$HP_ARCH" && HP_ARCH=hppa
+               fi ;;
+       esac
+       if [ ${HP_ARCH} = "hppa2.0w" ]
+       then
+           eval $set_cc_for_build
+
+           # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+           # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+           # generating 64-bit code.  GNU and HP use different nomenclature:
+           #
+           # $ CC_FOR_BUILD=cc ./config.guess
+           # => hppa2.0w-hp-hpux11.23
+           # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+           # => hppa64-hp-hpux11.23
+
+           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+               grep -q __LP64__
+           then
+               HP_ARCH="hppa2.0w"
+           else
+               HP_ARCH="hppa64"
+           fi
+       fi
+       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       exit ;;
+    ia64:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux${HPUX_REV}
+       exit ;;
+    3050*:HI-UX:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <unistd.h>
+       int
+       main ()
+       {
+         long cpu = sysconf (_SC_CPU_VERSION);
+         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+            results, however.  */
+         if (CPU_IS_PA_RISC (cpu))
+           {
+             switch (cpu)
+               {
+                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+                 default: puts ("hppa-hitachi-hiuxwe2"); break;
+               }
+           }
+         else if (CPU_IS_HP_MC68K (cpu))
+           puts ("m68k-hitachi-hiuxwe2");
+         else puts ("unknown-hitachi-hiuxwe2");
+         exit (0);
+       }
+EOF
+       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+               { echo "$SYSTEM_NAME"; exit; }
+       echo unknown-hitachi-hiuxwe2
+       exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+       echo hppa1.1-hp-bsd
+       exit ;;
+    9000/8??:4.3bsd:*:*)
+       echo hppa1.0-hp-bsd
+       exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+       echo hppa1.0-hp-mpeix
+       exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+       echo hppa1.1-hp-osf
+       exit ;;
+    hp8??:OSF1:*:*)
+       echo hppa1.0-hp-osf
+       exit ;;
+    i*86:OSF1:*:*)
+       if [ -x /usr/sbin/sysversion ] ; then
+           echo ${UNAME_MACHINE}-unknown-osf1mk
+       else
+           echo ${UNAME_MACHINE}-unknown-osf1
+       fi
+       exit ;;
+    parisc*:Lites*:*:*)
+       echo hppa1.1-hp-lites
+       exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+       echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+       echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+       echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+       echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*[A-Z]90:*:*:*)
+       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+             -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*TS:*:*:*)
+       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*T3E:*:*:*)
+       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*SV1:*:*:*)
+       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    *:UNICOS/mp:*:*)
+       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       exit ;;
+    sparc*:BSD/OS:*:*)
+       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       exit ;;
+    *:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       exit ;;
+    *:FreeBSD:*:*)
+       case ${UNAME_MACHINE} in
+           pc98)
+               echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           amd64)
+               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           *)
+               echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+       esac
+       exit ;;
+    i*:CYGWIN*:*)
+       echo ${UNAME_MACHINE}-pc-cygwin
+       exit ;;
+    *:MINGW*:*)
+       echo ${UNAME_MACHINE}-pc-mingw32
+       exit ;;
+    i*:windows32*:*)
+       # uname -m includes "-pc" on this system.
+       echo ${UNAME_MACHINE}-mingw32
+       exit ;;
+    i*:PW*:*)
+       echo ${UNAME_MACHINE}-pc-pw32
+       exit ;;
+    *:Interix*:*)
+       case ${UNAME_MACHINE} in
+           x86)
+               echo i586-pc-interix${UNAME_RELEASE}
+               exit ;;
+           authenticamd | genuineintel | EM64T)
+               echo x86_64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+           IA64)
+               echo ia64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+       esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+       echo i${UNAME_MACHINE}-pc-mks
+       exit ;;
+    8664:Windows_NT:*)
+       echo x86_64-pc-mks
+       exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+       # UNAME_MACHINE based on the output of uname instead of i386?
+       echo i586-pc-interix
+       exit ;;
+    i*:UWIN*:*)
+       echo ${UNAME_MACHINE}-pc-uwin
+       exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+       echo x86_64-unknown-cygwin
+       exit ;;
+    p*:CYGWIN*:*)
+       echo powerpcle-unknown-cygwin
+       exit ;;
+    prep*:SunOS:5.*:*)
+       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    *:GNU:*:*)
+       # the GNU system
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       exit ;;
+    *:GNU/*:*:*)
+       # other systems with GNU libc and userland
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+       exit ;;
+    i*86:Minix:*:*)
+       echo ${UNAME_MACHINE}-pc-minix
+       exit ;;
+    alpha:Linux:*:*)
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+         EV5)   UNAME_MACHINE=alphaev5 ;;
+         EV56)  UNAME_MACHINE=alphaev56 ;;
+         PCA56) UNAME_MACHINE=alphapca56 ;;
+         PCA57) UNAME_MACHINE=alphapca56 ;;
+         EV6)   UNAME_MACHINE=alphaev6 ;;
+         EV67)  UNAME_MACHINE=alphaev67 ;;
+         EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+       objdump --private-headers /bin/sh | grep -q ld.so.1
+       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       exit ;;
+    arm*:Linux:*:*)
+       eval $set_cc_for_build
+       if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+           | grep -q __ARM_EABI__
+       then
+           echo ${UNAME_MACHINE}-unknown-linux-gnu
+       else
+           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+       fi
+       exit ;;
+    avr32*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    cris:Linux:*:*)
+       echo cris-axis-linux-gnu
+       exit ;;
+    crisv32:Linux:*:*)
+       echo crisv32-axis-linux-gnu
+       exit ;;
+    frv:Linux:*:*)
+       echo frv-unknown-linux-gnu
+       exit ;;
+    i*86:Linux:*:*)
+       LIBC=gnu
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #ifdef __dietlibc__
+       LIBC=dietlibc
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+       echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+       exit ;;
+    ia64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    m32r*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #undef CPU
+       #undef ${UNAME_MACHINE}
+       #undef ${UNAME_MACHINE}el
+       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+       CPU=${UNAME_MACHINE}el
+       #else
+       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+       CPU=${UNAME_MACHINE}
+       #else
+       CPU=
+       #endif
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+       ;;
+    or32:Linux:*:*)
+       echo or32-unknown-linux-gnu
+       exit ;;
+    padre:Linux:*:*)
+       echo sparc-unknown-linux-gnu
+       exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+       echo hppa64-unknown-linux-gnu
+       exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+       # Look for CPU level
+       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+         PA7*) echo hppa1.1-unknown-linux-gnu ;;
+         PA8*) echo hppa2.0-unknown-linux-gnu ;;
+         *)    echo hppa-unknown-linux-gnu ;;
+       esac
+       exit ;;
+    ppc64:Linux:*:*)
+       echo powerpc64-unknown-linux-gnu
+       exit ;;
+    ppc:Linux:*:*)
+       echo powerpc-unknown-linux-gnu
+       exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+       echo ${UNAME_MACHINE}-ibm-linux
+       exit ;;
+    sh64*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    sh*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    vax:Linux:*:*)
+       echo ${UNAME_MACHINE}-dec-linux-gnu
+       exit ;;
+    x86_64:Linux:*:*)
+       echo x86_64-unknown-linux-gnu
+       exit ;;
+    xtensa*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    i*86:DYNIX/ptx:4*:*)
+       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+       # earlier versions are messed up and put the nodename in both
+       # sysname and nodename.
+       echo i386-sequent-sysv4
+       exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+       # I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+       exit ;;
+    i*86:OS/2:*:*)
+       # If we were able to find `uname', then EMX Unix compatibility
+       # is probably installed.
+       echo ${UNAME_MACHINE}-pc-os2-emx
+       exit ;;
+    i*86:XTS-300:*:STOP)
+       echo ${UNAME_MACHINE}-unknown-stop
+       exit ;;
+    i*86:atheos:*:*)
+       echo ${UNAME_MACHINE}-unknown-atheos
+       exit ;;
+    i*86:syllable:*:*)
+       echo ${UNAME_MACHINE}-pc-syllable
+       exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+       echo i386-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    i*86:*DOS:*:*)
+       echo ${UNAME_MACHINE}-pc-msdosdjgpp
+       exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+       else
+               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+       fi
+       exit ;;
+    i*86:*:5:[678]*)
+       # UnixWare 7.x, OpenUNIX and OpenServer 6.
+       case `/bin/uname -X | grep "^Machine"` in
+           *486*)           UNAME_MACHINE=i486 ;;
+           *Pentium)        UNAME_MACHINE=i586 ;;
+           *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+       esac
+       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       exit ;;
+    i*86:*:3.2:*)
+       if test -f /usr/options/cb.name; then
+               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+       elif /bin/uname -X 2>/dev/null >/dev/null ; then
+               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+               (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+               (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+                       && UNAME_MACHINE=i586
+               (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+       else
+               echo ${UNAME_MACHINE}-pc-sysv32
+       fi
+       exit ;;
+    pc:*:*:*)
+       # Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i586.
+       # Note: whatever this is, it MUST be the same as what config.sub
+       # prints for the "djgpp" host, or else GDB configury will decide that
+       # this is a cross-build.
+       echo i586-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+       echo i386-pc-mach3
+       exit ;;
+    paragon:*:*:*)
+       echo i860-intel-osf1
+       exit ;;
+    i860:*:4.*:*) # i860-SVR4
+       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+       else # Add other i860-SVR4 vendors below as they are discovered.
+         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+       fi
+       exit ;;
+    mini*:CTIX:SYS*5:*)
+       # "miniframe"
+       echo m68010-convergent-sysv
+       exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+       echo m68k-convergent-sysv
+       exit ;;
+    M680?0:D-NIX:5.3:*)
+       echo m68k-diab-dnix
+       exit ;;
+    M68*:*:R3V[5678]*:*)
+       test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+       OS_REL=''
+       test -r /etc/.relid \
+       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+         && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+         && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+       OS_REL='.3'
+       test -r /etc/.relid \
+           && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+           && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+           && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+       /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+           && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+       echo m68k-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+       echo m68k-atari-sysv4
+       exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+       echo sparc-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    rs6000:LynxOS:2.*:*)
+       echo rs6000-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+       echo mips-dde-sysv${UNAME_RELEASE}
+       exit ;;
+    RM*:ReliantUNIX-*:*:*)
+       echo mips-sni-sysv4
+       exit ;;
+    RM*:SINIX-*:*:*)
+       echo mips-sni-sysv4
+       exit ;;
+    *:SINIX-*:*:*)
+       if uname -p 2>/dev/null >/dev/null ; then
+               UNAME_MACHINE=`(uname -p) 2>/dev/null`
+               echo ${UNAME_MACHINE}-sni-sysv4
+       else
+               echo ns32k-sni-sysv
+       fi
+       exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+       # From Gerald Hewes <hewes@openmarket.com>.
+       # How about differentiating between stratus architectures? -djm
+       echo hppa1.1-stratus-sysv4
+       exit ;;
+    *:*:*:FTX*)
+       # From seanf@swdc.stratus.com.
+       echo i860-stratus-sysv4
+       exit ;;
+    i*86:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo ${UNAME_MACHINE}-stratus-vos
+       exit ;;
+    *:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo hppa1.1-stratus-vos
+       exit ;;
+    mc68*:A/UX:*:*)
+       echo m68k-apple-aux${UNAME_RELEASE}
+       exit ;;
+    news*:NEWS-OS:6*:*)
+       echo mips-sony-newsos6
+       exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+       if [ -d /usr/nec ]; then
+               echo mips-nec-sysv${UNAME_RELEASE}
+       else
+               echo mips-unknown-sysv${UNAME_RELEASE}
+       fi
+        exit ;;
+    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
+       echo powerpc-be-beos
+       exit ;;
+    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
+       echo powerpc-apple-beos
+       exit ;;
+    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
+       echo i586-pc-beos
+       exit ;;
+    BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
+       echo i586-pc-haiku
+       exit ;;
+    SX-4:SUPER-UX:*:*)
+       echo sx4-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-5:SUPER-UX:*:*)
+       echo sx5-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-6:SUPER-UX:*:*)
+       echo sx6-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-7:SUPER-UX:*:*)
+       echo sx7-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-8:SUPER-UX:*:*)
+       echo sx8-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-8R:SUPER-UX:*:*)
+       echo sx8r-nec-superux${UNAME_RELEASE}
+       exit ;;
+    Power*:Rhapsody:*:*)
+       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       exit ;;
+    *:Rhapsody:*:*)
+       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       exit ;;
+    *:Darwin:*:*)
+       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+       case $UNAME_PROCESSOR in
+           i386)
+               eval $set_cc_for_build
+               if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+                 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+                     (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+                     grep IS_64BIT_ARCH >/dev/null
+                 then
+                     UNAME_PROCESSOR="x86_64"
+                 fi
+               fi ;;
+           unknown) UNAME_PROCESSOR=powerpc ;;
+       esac
+       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+       exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+       UNAME_PROCESSOR=`uname -p`
+       if test "$UNAME_PROCESSOR" = "x86"; then
+               UNAME_PROCESSOR=i386
+               UNAME_MACHINE=pc
+       fi
+       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+       exit ;;
+    *:QNX:*:4*)
+       echo i386-pc-qnx
+       exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+       echo nse-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+       echo nsr-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    *:NonStop-UX:*:*)
+       echo mips-compaq-nonstopux
+       exit ;;
+    BS2000:POSIX*:*:*)
+       echo bs2000-siemens-sysv
+       exit ;;
+    DS/*:UNIX_System_V:*:*)
+       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+       exit ;;
+    *:Plan9:*:*)
+       # "uname -m" is not consistent, so use $cputype instead. 386
+       # is converted to i386 for consistency with other x86
+       # operating systems.
+       if test "$cputype" = "386"; then
+           UNAME_MACHINE=i386
+       else
+           UNAME_MACHINE="$cputype"
+       fi
+       echo ${UNAME_MACHINE}-unknown-plan9
+       exit ;;
+    *:TOPS-10:*:*)
+       echo pdp10-unknown-tops10
+       exit ;;
+    *:TENEX:*:*)
+       echo pdp10-unknown-tenex
+       exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+       echo pdp10-dec-tops20
+       exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+       echo pdp10-xkl-tops20
+       exit ;;
+    *:TOPS-20:*:*)
+       echo pdp10-unknown-tops20
+       exit ;;
+    *:ITS:*:*)
+       echo pdp10-unknown-its
+       exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+       exit ;;
+    *:DragonFly:*:*)
+       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       exit ;;
+    *:*VMS:*:*)
+       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       case "${UNAME_MACHINE}" in
+           A*) echo alpha-dec-vms ; exit ;;
+           I*) echo ia64-dec-vms ; exit ;;
+           V*) echo vax-dec-vms ; exit ;;
+       esac ;;
+    *:XENIX:*:SysV)
+       echo i386-pc-xenix
+       exit ;;
+    i*86:skyos:*:*)
+       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+       exit ;;
+    i*86:rdos:*:*)
+       echo ${UNAME_MACHINE}-pc-rdos
+       exit ;;
+    i*86:AROS:*:*)
+       echo ${UNAME_MACHINE}-pc-aros
+       exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+         ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+       printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+       printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+       { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+       echo c1-convex-bsd
+       exit ;;
+    c2*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+       exit ;;
+    c34*)
+       echo c34-convex-bsd
+       exit ;;
+    c38*)
+       echo c38-convex-bsd
+       exit ;;
+    c4*)
+       echo c4-convex-bsd
+       exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config/config.sub b/config/config.sub
new file mode 100755 (executable)
index 0000000..204218c
--- /dev/null
@@ -0,0 +1,1731 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   Free Software Foundation, Inc.
+
+timestamp='2010-05-21'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted GNU ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+       -sun*os*)
+               # Prevent following clause from handling this invalid input.
+               ;;
+       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+       -apple | -axis | -knuth | -cray | -microblaze)
+               os=
+               basic_machine=$1
+               ;;
+        -bluegene*)
+               os=-cnk
+               ;;
+       -sim | -cisco | -oki | -wec | -winbond)
+               os=
+               basic_machine=$1
+               ;;
+       -scout)
+               ;;
+       -wrs)
+               os=-vxworks
+               basic_machine=$1
+               ;;
+       -chorusos*)
+               os=-chorusos
+               basic_machine=$1
+               ;;
+       -chorusrdb)
+               os=-chorusrdb
+               basic_machine=$1
+               ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
+       -sco6)
+               os=-sco5v6
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco5)
+               os=-sco3.2v5
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco4)
+               os=-sco3.2v4
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2v[4-9]*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco*)
+               os=-sco3.2v2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -udk*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -isc)
+               os=-isc2.2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -clix*)
+               basic_machine=clipper-intergraph
+               ;;
+       -isc*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -lynx*)
+               os=-lynxos
+               ;;
+       -ptx*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+               ;;
+       -windowsnt*)
+               os=`echo $os | sed -e 's/windowsnt/winnt/'`
+               ;;
+       -psos*)
+               os=-psos
+               ;;
+       -mint | -mint[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+       1750a | 580 \
+       | a29k \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | am33_2.0 \
+       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+       | bfin \
+       | c4x | clipper \
+       | d10v | d30v | dlx | dsp16xx \
+       | fido | fr30 | frv \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | i370 | i860 | i960 | ia64 \
+       | ip2k | iq2000 \
+       | lm32 \
+       | m32c | m32r | m32rle | m68000 | m68k | m88k \
+       | maxq | mb | microblaze | mcore | mep | metag \
+       | mips | mipsbe | mipseb | mipsel | mipsle \
+       | mips16 \
+       | mips64 | mips64el \
+       | mips64octeon | mips64octeonel \
+       | mips64orion | mips64orionel \
+       | mips64r5900 | mips64r5900el \
+       | mips64vr | mips64vrel \
+       | mips64vr4100 | mips64vr4100el \
+       | mips64vr4300 | mips64vr4300el \
+       | mips64vr5000 | mips64vr5000el \
+       | mips64vr5900 | mips64vr5900el \
+       | mipsisa32 | mipsisa32el \
+       | mipsisa32r2 | mipsisa32r2el \
+       | mipsisa64 | mipsisa64el \
+       | mipsisa64r2 | mipsisa64r2el \
+       | mipsisa64sb1 | mipsisa64sb1el \
+       | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
+       | moxie \
+       | mt \
+       | msp430 \
+       | nios | nios2 \
+       | ns16k | ns32k \
+       | or32 \
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | pyramid \
+       | rx \
+       | score \
+       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+       | spu | strongarm \
+       | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+       | ubicom32 \
+       | v850 | v850e \
+       | we32k \
+       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+       | z8k | z80)
+               basic_machine=$basic_machine-unknown
+               ;;
+       c54x)
+               basic_machine=tic54x-unknown
+               ;;
+       c55x)
+               basic_machine=tic55x-unknown
+               ;;
+       c6x)
+               basic_machine=tic6x-unknown
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+               # Motorola 68HC11/12.
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+               ;;
+       ms1)
+               basic_machine=mt-unknown
+               ;;
+
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+         basic_machine=$basic_machine-pc
+         ;;
+       # Object if more than one company name word.
+       *-*-*)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+       # Recognize the basic CPU types with company name.
+       580-* \
+       | a29k-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+       | avr-* | avr32-* \
+       | bfin-* | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* \
+       | clipper-* | craynv-* | cydra-* \
+       | d10v-* | d30v-* | dlx-* \
+       | elxsi-* \
+       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | i*86-* | i860-* | i960-* | ia64-* \
+       | ip2k-* | iq2000-* \
+       | lm32-* \
+       | m32c-* | m32r-* | m32rle-* \
+       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+       | mips16-* \
+       | mips64-* | mips64el-* \
+       | mips64octeon-* | mips64octeonel-* \
+       | mips64orion-* | mips64orionel-* \
+       | mips64r5900-* | mips64r5900el-* \
+       | mips64vr-* | mips64vrel-* \
+       | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* \
+       | mips64vr5000-* | mips64vr5000el-* \
+       | mips64vr5900-* | mips64vr5900el-* \
+       | mipsisa32-* | mipsisa32el-* \
+       | mipsisa32r2-* | mipsisa32r2el-* \
+       | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64r2-* | mipsisa64r2el-* \
+       | mipsisa64sb1-* | mipsisa64sb1el-* \
+       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipstx39-* | mipstx39el-* \
+       | mmix-* \
+       | mt-* \
+       | msp430-* \
+       | nios-* | nios2-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | pyramid-* \
+       | romp-* | rs6000-* | rx-* \
+       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+       | sparclite-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+       | tahoe-* | thumb-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+       | tile-* | tilegx-* \
+       | tron-* \
+       | ubicom32-* \
+       | v850-* | v850e-* | vax-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | xstormy16-* | xtensa*-* \
+       | ymp-* \
+       | z8k-* | z80-*)
+               ;;
+       # Recognize the basic CPU types without company name, with glob match.
+       xtensa*)
+               basic_machine=$basic_machine-unknown
+               ;;
+       # Recognize the various machine names and aliases which stand
+       # for a CPU type and a company and sometimes even an OS.
+       386bsd)
+               basic_machine=i386-unknown
+               os=-bsd
+               ;;
+       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+               basic_machine=m68000-att
+               ;;
+       3b*)
+               basic_machine=we32k-att
+               ;;
+       a29khif)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       abacus)
+               basic_machine=abacus-unknown
+               ;;
+       adobe68k)
+               basic_machine=m68010-adobe
+               os=-scout
+               ;;
+       alliant | fx80)
+               basic_machine=fx80-alliant
+               ;;
+       altos | altos3068)
+               basic_machine=m68k-altos
+               ;;
+       am29k)
+               basic_machine=a29k-none
+               os=-bsd
+               ;;
+       amd64)
+               basic_machine=x86_64-pc
+               ;;
+       amd64-*)
+               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       amdahl)
+               basic_machine=580-amdahl
+               os=-sysv
+               ;;
+       amiga | amiga-*)
+               basic_machine=m68k-unknown
+               ;;
+       amigaos | amigados)
+               basic_machine=m68k-unknown
+               os=-amigaos
+               ;;
+       amigaunix | amix)
+               basic_machine=m68k-unknown
+               os=-sysv4
+               ;;
+       apollo68)
+               basic_machine=m68k-apollo
+               os=-sysv
+               ;;
+       apollo68bsd)
+               basic_machine=m68k-apollo
+               os=-bsd
+               ;;
+       aros)
+               basic_machine=i386-pc
+               os=-aros
+               ;;
+       aux)
+               basic_machine=m68k-apple
+               os=-aux
+               ;;
+       balance)
+               basic_machine=ns32k-sequent
+               os=-dynix
+               ;;
+       blackfin)
+               basic_machine=bfin-unknown
+               os=-linux
+               ;;
+       blackfin-*)
+               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       bluegene*)
+               basic_machine=powerpc-ibm
+               os=-cnk
+               ;;
+       c54x-*)
+               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c55x-*)
+               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c6x-*)
+               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c90)
+               basic_machine=c90-cray
+               os=-unicos
+               ;;
+        cegcc)
+               basic_machine=arm-unknown
+               os=-cegcc
+               ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=-bsd
+               ;;
+       convex-c2)
+               basic_machine=c2-convex
+               os=-bsd
+               ;;
+       convex-c32)
+               basic_machine=c32-convex
+               os=-bsd
+               ;;
+       convex-c34)
+               basic_machine=c34-convex
+               os=-bsd
+               ;;
+       convex-c38)
+               basic_machine=c38-convex
+               os=-bsd
+               ;;
+       cray | j90)
+               basic_machine=j90-cray
+               os=-unicos
+               ;;
+       craynv)
+               basic_machine=craynv-cray
+               os=-unicosmp
+               ;;
+       cr16)
+               basic_machine=cr16-unknown
+               os=-elf
+               ;;
+       crds | unos)
+               basic_machine=m68k-crds
+               ;;
+       crisv32 | crisv32-* | etraxfs*)
+               basic_machine=crisv32-axis
+               ;;
+       cris | cris-* | etrax*)
+               basic_machine=cris-axis
+               ;;
+       crx)
+               basic_machine=crx-unknown
+               os=-elf
+               ;;
+       da30 | da30-*)
+               basic_machine=m68k-da30
+               ;;
+       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+               basic_machine=mips-dec
+               ;;
+       decsystem10* | dec10*)
+               basic_machine=pdp10-dec
+               os=-tops10
+               ;;
+       decsystem20* | dec20*)
+               basic_machine=pdp10-dec
+               os=-tops20
+               ;;
+       delta | 3300 | motorola-3300 | motorola-delta \
+             | 3300-motorola | delta-motorola)
+               basic_machine=m68k-motorola
+               ;;
+       delta88)
+               basic_machine=m88k-motorola
+               os=-sysv3
+               ;;
+       dicos)
+               basic_machine=i686-pc
+               os=-dicos
+               ;;
+       djgpp)
+               basic_machine=i586-pc
+               os=-msdosdjgpp
+               ;;
+       dpx20 | dpx20-*)
+               basic_machine=rs6000-bull
+               os=-bosx
+               ;;
+       dpx2* | dpx2*-bull)
+               basic_machine=m68k-bull
+               os=-sysv3
+               ;;
+       ebmon29k)
+               basic_machine=a29k-amd
+               os=-ebmon
+               ;;
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=-bsd
+               ;;
+       encore | umax | mmax)
+               basic_machine=ns32k-encore
+               ;;
+       es1800 | OSE68k | ose68k | ose | OSE)
+               basic_machine=m68k-ericsson
+               os=-ose
+               ;;
+       fx2800)
+               basic_machine=i860-alliant
+               ;;
+       genix)
+               basic_machine=ns32k-ns
+               ;;
+       gmicro)
+               basic_machine=tron-gmicro
+               os=-sysv
+               ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
+               ;;
+       h3050r* | hiux*)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       h8300hms)
+               basic_machine=h8300-hitachi
+               os=-hms
+               ;;
+       h8300xray)
+               basic_machine=h8300-hitachi
+               os=-xray
+               ;;
+       h8500hms)
+               basic_machine=h8500-hitachi
+               os=-hms
+               ;;
+       harris)
+               basic_machine=m88k-harris
+               os=-sysv3
+               ;;
+       hp300-*)
+               basic_machine=m68k-hp
+               ;;
+       hp300bsd)
+               basic_machine=m68k-hp
+               os=-bsd
+               ;;
+       hp300hpux)
+               basic_machine=m68k-hp
+               os=-hpux
+               ;;
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k2[0-9][0-9] | hp9k31[0-9])
+               basic_machine=m68000-hp
+               ;;
+       hp9k3[2-9][0-9])
+               basic_machine=m68k-hp
+               ;;
+       hp9k6[0-9][0-9] | hp6[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k7[0-79][0-9] | hp7[0-79][0-9])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k78[0-9] | hp78[0-9])
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][13679] | hp8[0-9][13679])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][0-9] | hp8[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hppa-next)
+               os=-nextstep3
+               ;;
+       hppaosf)
+               basic_machine=hppa1.1-hp
+               os=-osf
+               ;;
+       hppro)
+               basic_machine=hppa1.1-hp
+               os=-proelf
+               ;;
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               ;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+       i*86v32)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv32
+               ;;
+       i*86v4*)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv4
+               ;;
+       i*86v)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv
+               ;;
+       i*86sol2)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-solaris2
+               ;;
+       i386mach)
+               basic_machine=i386-mach
+               os=-mach
+               ;;
+       i386-vsta | vsta)
+               basic_machine=i386-unknown
+               os=-vsta
+               ;;
+       iris | iris4d)
+               basic_machine=mips-sgi
+               case $os in
+                   -irix*)
+                       ;;
+                   *)
+                       os=-irix4
+                       ;;
+               esac
+               ;;
+       isi68 | isi)
+               basic_machine=m68k-isi
+               os=-sysv
+               ;;
+       m68knommu)
+               basic_machine=m68k-unknown
+               os=-linux
+               ;;
+       m68knommu-*)
+               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       m88k-omron*)
+               basic_machine=m88k-omron
+               ;;
+       magnum | m3230)
+               basic_machine=mips-mips
+               os=-sysv
+               ;;
+       merlin)
+               basic_machine=ns32k-utek
+               os=-sysv
+               ;;
+        microblaze)
+               basic_machine=microblaze-xilinx
+               ;;
+       mingw32)
+               basic_machine=i386-pc
+               os=-mingw32
+               ;;
+       mingw32ce)
+               basic_machine=arm-unknown
+               os=-mingw32ce
+               ;;
+       miniframe)
+               basic_machine=m68000-convergent
+               ;;
+       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+       mips3*-*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               ;;
+       mips3*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+               ;;
+       monitor)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       morphos)
+               basic_machine=powerpc-unknown
+               os=-morphos
+               ;;
+       msdos)
+               basic_machine=i386-pc
+               os=-msdos
+               ;;
+       ms1-*)
+               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+               ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
+       ncr3000)
+               basic_machine=i486-ncr
+               os=-sysv4
+               ;;
+       netbsd386)
+               basic_machine=i386-unknown
+               os=-netbsd
+               ;;
+       netwinder)
+               basic_machine=armv4l-rebel
+               os=-linux
+               ;;
+       news | news700 | news800 | news900)
+               basic_machine=m68k-sony
+               os=-newsos
+               ;;
+       news1000)
+               basic_machine=m68030-sony
+               os=-newsos
+               ;;
+       news-3600 | risc-news)
+               basic_machine=mips-sony
+               os=-newsos
+               ;;
+       necv70)
+               basic_machine=v70-nec
+               os=-sysv
+               ;;
+       next | m*-next )
+               basic_machine=m68k-next
+               case $os in
+                   -nextstep* )
+                       ;;
+                   -ns2*)
+                     os=-nextstep2
+                       ;;
+                   *)
+                     os=-nextstep3
+                       ;;
+               esac
+               ;;
+       nh3000)
+               basic_machine=m68k-harris
+               os=-cxux
+               ;;
+       nh[45]000)
+               basic_machine=m88k-harris
+               os=-cxux
+               ;;
+       nindy960)
+               basic_machine=i960-intel
+               os=-nindy
+               ;;
+       mon960)
+               basic_machine=i960-intel
+               os=-mon960
+               ;;
+       nonstopux)
+               basic_machine=mips-compaq
+               os=-nonstopux
+               ;;
+       np1)
+               basic_machine=np1-gould
+               ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+       op50n-* | op60c-*)
+               basic_machine=hppa1.1-oki
+               os=-proelf
+               ;;
+       openrisc | openrisc-*)
+               basic_machine=or32-unknown
+               ;;
+       os400)
+               basic_machine=powerpc-ibm
+               os=-os400
+               ;;
+       OSE68000 | ose68000)
+               basic_machine=m68000-ericsson
+               os=-ose
+               ;;
+       os68k)
+               basic_machine=m68k-none
+               os=-os68k
+               ;;
+       pa-hitachi)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       paragon)
+               basic_machine=i860-intel
+               os=-osf
+               ;;
+       parisc)
+               basic_machine=hppa-unknown
+               os=-linux
+               ;;
+       parisc-*)
+               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       pbd)
+               basic_machine=sparc-tti
+               ;;
+       pbb)
+               basic_machine=m68k-tti
+               ;;
+       pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+       pc98)
+               basic_machine=i386-pc
+               ;;
+       pc98-*)
+               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentium | p5 | k5 | k6 | nexgen | viac3)
+               basic_machine=i586-pc
+               ;;
+       pentiumpro | p6 | 6x86 | athlon | athlon_*)
+               basic_machine=i686-pc
+               ;;
+       pentiumii | pentium2 | pentiumiii | pentium3)
+               basic_machine=i686-pc
+               ;;
+       pentium4)
+               basic_machine=i786-pc
+               ;;
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumpro-* | p6-* | 6x86-* | athlon-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentium4-*)
+               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pn)
+               basic_machine=pn-gould
+               ;;
+       power)  basic_machine=power-ibm
+               ;;
+       ppc)    basic_machine=powerpc-unknown
+               ;;
+       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle | ppc-le | powerpc-little)
+               basic_machine=powerpcle-unknown
+               ;;
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64)  basic_machine=powerpc64-unknown
+               ;;
+       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+               basic_machine=powerpc64le-unknown
+               ;;
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ps2)
+               basic_machine=i386-ibm
+               ;;
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
+       rdos)
+               basic_machine=i386-pc
+               os=-rdos
+               ;;
+       rom68k)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       rm[46]00)
+               basic_machine=mips-siemens
+               ;;
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
+               ;;
+       s390 | s390-*)
+               basic_machine=s390-ibm
+               ;;
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
+               ;;
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       sb1)
+               basic_machine=mipsisa64sb1-unknown
+               ;;
+       sb1el)
+               basic_machine=mipsisa64sb1el-unknown
+               ;;
+       sde)
+               basic_machine=mipsisa32-sde
+               os=-elf
+               ;;
+       sei)
+               basic_machine=mips-sei
+               os=-seiux
+               ;;
+       sequent)
+               basic_machine=i386-sequent
+               ;;
+       sh)
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+       sh5el)
+               basic_machine=sh5le-unknown
+               ;;
+       sh64)
+               basic_machine=sh64-unknown
+               ;;
+       sparclite-wrs | simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+               ;;
+       sps7)
+               basic_machine=m68k-bull
+               os=-sysv2
+               ;;
+       spur)
+               basic_machine=spur-unknown
+               ;;
+       st2000)
+               basic_machine=m68k-tandem
+               ;;
+       stratus)
+               basic_machine=i860-stratus
+               os=-sysv4
+               ;;
+       sun2)
+               basic_machine=m68000-sun
+               ;;
+       sun2os3)
+               basic_machine=m68000-sun
+               os=-sunos3
+               ;;
+       sun2os4)
+               basic_machine=m68000-sun
+               os=-sunos4
+               ;;
+       sun3os3)
+               basic_machine=m68k-sun
+               os=-sunos3
+               ;;
+       sun3os4)
+               basic_machine=m68k-sun
+               os=-sunos4
+               ;;
+       sun4os3)
+               basic_machine=sparc-sun
+               os=-sunos3
+               ;;
+       sun4os4)
+               basic_machine=sparc-sun
+               os=-sunos4
+               ;;
+       sun4sol2)
+               basic_machine=sparc-sun
+               os=-solaris2
+               ;;
+       sun3 | sun3-*)
+               basic_machine=m68k-sun
+               ;;
+       sun4)
+               basic_machine=sparc-sun
+               ;;
+       sun386 | sun386i | roadrunner)
+               basic_machine=i386-sun
+               ;;
+       sv1)
+               basic_machine=sv1-cray
+               os=-unicos
+               ;;
+       symmetry)
+               basic_machine=i386-sequent
+               os=-dynix
+               ;;
+       t3e)
+               basic_machine=alphaev5-cray
+               os=-unicos
+               ;;
+       t90)
+               basic_machine=t90-cray
+               os=-unicos
+               ;;
+        # This must be matched before tile*.
+        tilegx*)
+               basic_machine=tilegx-unknown
+               os=-linux-gnu
+               ;;
+       tile*)
+               basic_machine=tile-unknown
+               os=-linux-gnu
+               ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
+       toad1)
+               basic_machine=pdp10-xkl
+               os=-tops20
+               ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+       tpf)
+               basic_machine=s390x-ibm
+               os=-tpf
+               ;;
+       udi29k)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       ultra3)
+               basic_machine=a29k-nyu
+               os=-sym1
+               ;;
+       v810 | necv810)
+               basic_machine=v810-nec
+               os=-none
+               ;;
+       vaxv)
+               basic_machine=vax-dec
+               os=-sysv
+               ;;
+       vms)
+               basic_machine=vax-dec
+               os=-vms
+               ;;
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
+               ;;
+       vxworks68)
+               basic_machine=m68k-wrs
+               os=-vxworks
+               ;;
+       vxworks29k)
+               basic_machine=a29k-wrs
+               os=-vxworks
+               ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=-none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=-proelf
+               ;;
+       xbox)
+               basic_machine=i686-pc
+               os=-mingw32
+               ;;
+       xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
+       ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+               ;;
+       z8k-*-coff)
+               basic_machine=z8k-unknown
+               os=-sim
+               ;;
+       z80-*-coff)
+               basic_machine=z80-unknown
+               os=-sim
+               ;;
+       none)
+               basic_machine=none-none
+               os=-none
+               ;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               basic_machine=hppa1.1-winbond
+               ;;
+       op50n)
+               basic_machine=hppa1.1-oki
+               ;;
+       op60c)
+               basic_machine=hppa1.1-oki
+               ;;
+       romp)
+               basic_machine=romp-ibm
+               ;;
+       mmix)
+               basic_machine=mmix-knuth
+               ;;
+       rs6000)
+               basic_machine=rs6000-ibm
+               ;;
+       vax)
+               basic_machine=vax-dec
+               ;;
+       pdp10)
+               # there are many clones, so DEC is not a safe bet
+               basic_machine=pdp10-unknown
+               ;;
+       pdp11)
+               basic_machine=pdp11-dec
+               ;;
+       we32k)
+               basic_machine=we32k-att
+               ;;
+       sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+               basic_machine=sh-unknown
+               ;;
+       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+               basic_machine=sparc-sun
+               ;;
+       cydra)
+               basic_machine=cydra-cydrome
+               ;;
+       orion)
+               basic_machine=orion-highlevel
+               ;;
+       orion105)
+               basic_machine=clipper-highlevel
+               ;;
+       mac | mpw | mac-mpw)
+               basic_machine=m68k-apple
+               ;;
+       pmac | pmac-mpw)
+               basic_machine=powerpc-apple
+               ;;
+       *-unknown)
+               # Make sure to match an already-canonicalized machine name.
+               ;;
+       *)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+       *-digital*)
+               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+               ;;
+       *-commodore*)
+               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+               ;;
+       *)
+               ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+       # -solaris* is a basic system type, with this one exception.
+        -auroraux)
+               os=-auroraux
+               ;;
+       -solaris1 | -solaris1.*)
+               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               ;;
+       -solaris)
+               os=-solaris2
+               ;;
+       -svr4*)
+               os=-sysv4
+               ;;
+       -unixware*)
+               os=-sysv4.2uw
+               ;;
+       -gnu/linux*)
+               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+               ;;
+       # First accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST END IN A *, to match a version number.
+       # -sysv* is not here because it comes later, after sysvr4.
+       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+             | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+             | -sym* | -kopensolaris* \
+             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+             | -aos* | -aros* \
+             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+             | -openbsd* | -solidbsd* \
+             | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+             | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+             | -chorusos* | -chorusrdb* | -cegcc* \
+             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -linux-gnu* | -linux-android* \
+             | -linux-newlib* | -linux-uclibc* \
+             | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
+       -qnx*)
+               case $basic_machine in
+                   x86-* | i*86-*)
+                       ;;
+                   *)
+                       os=-nto$os
+                       ;;
+               esac
+               ;;
+       -nto-qnx*)
+               ;;
+       -nto*)
+               os=`echo $os | sed -e 's|nto|nto-qnx|'`
+               ;;
+       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+               ;;
+       -mac*)
+               os=`echo $os | sed -e 's|mac|macos|'`
+               ;;
+       -linux-dietlibc)
+               os=-linux-dietlibc
+               ;;
+       -linux*)
+               os=`echo $os | sed -e 's|linux|linux-gnu|'`
+               ;;
+       -sunos5*)
+               os=`echo $os | sed -e 's|sunos5|solaris2|'`
+               ;;
+       -sunos6*)
+               os=`echo $os | sed -e 's|sunos6|solaris3|'`
+               ;;
+       -opened*)
+               os=-openedition
+               ;;
+        -os400*)
+               os=-os400
+               ;;
+       -wince*)
+               os=-wince
+               ;;
+       -osfrose*)
+               os=-osfrose
+               ;;
+       -osf*)
+               os=-osf
+               ;;
+       -utek*)
+               os=-bsd
+               ;;
+       -dynix*)
+               os=-bsd
+               ;;
+       -acis*)
+               os=-aos
+               ;;
+       -atheos*)
+               os=-atheos
+               ;;
+       -syllable*)
+               os=-syllable
+               ;;
+       -386bsd)
+               os=-bsd
+               ;;
+       -ctix* | -uts*)
+               os=-sysv
+               ;;
+       -nova*)
+               os=-rtmk-nova
+               ;;
+       -ns2 )
+               os=-nextstep2
+               ;;
+       -nsk*)
+               os=-nsk
+               ;;
+       # Preserve the version number of sinix5.
+       -sinix5.*)
+               os=`echo $os | sed -e 's|sinix|sysv|'`
+               ;;
+       -sinix*)
+               os=-sysv4
+               ;;
+        -tpf*)
+               os=-tpf
+               ;;
+       -triton*)
+               os=-sysv3
+               ;;
+       -oss*)
+               os=-sysv3
+               ;;
+       -svr4)
+               os=-sysv4
+               ;;
+       -svr3)
+               os=-sysv3
+               ;;
+       -sysvr4)
+               os=-sysv4
+               ;;
+       # This must come after -sysvr4.
+       -sysv*)
+               ;;
+       -ose*)
+               os=-ose
+               ;;
+       -es1800*)
+               os=-ose
+               ;;
+       -xenix)
+               os=-xenix
+               ;;
+       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+               os=-mint
+               ;;
+       -aros*)
+               os=-aros
+               ;;
+       -kaos*)
+               os=-kaos
+               ;;
+       -zvmoe)
+               os=-zvmoe
+               ;;
+       -dicos*)
+               os=-dicos
+               ;;
+        -nacl*)
+               ;;
+       -none)
+               ;;
+       *)
+               # Get rid of the `-' at the beginning of $os.
+               os=`echo $os | sed 's/[^-]*-//'`
+               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+        score-*)
+               os=-elf
+               ;;
+        spu-*)
+               os=-elf
+               ;;
+       *-acorn)
+               os=-riscix1.2
+               ;;
+       arm*-rebel)
+               os=-linux
+               ;;
+       arm*-semi)
+               os=-aout
+               ;;
+        c4x-* | tic4x-*)
+               os=-coff
+               ;;
+       tic54x-*)
+               os=-coff
+               ;;
+       tic55x-*)
+               os=-coff
+               ;;
+       tic6x-*)
+               os=-coff
+               ;;
+       # This must come before the *-dec entry.
+       pdp10-*)
+               os=-tops20
+               ;;
+       pdp11-*)
+               os=-none
+               ;;
+       *-dec | vax-*)
+               os=-ultrix4.2
+               ;;
+       m68*-apollo)
+               os=-domain
+               ;;
+       i386-sun)
+               os=-sunos4.0.2
+               ;;
+       m68000-sun)
+               os=-sunos3
+               # This also exists in the configure program, but was not the
+               # default.
+               # os=-sunos4
+               ;;
+       m68*-cisco)
+               os=-aout
+               ;;
+        mep-*)
+               os=-elf
+               ;;
+       mips*-cisco)
+               os=-elf
+               ;;
+       mips*-*)
+               os=-elf
+               ;;
+       or32-*)
+               os=-coff
+               ;;
+       *-tti)  # must be before sparc entry or we get the wrong os.
+               os=-sysv3
+               ;;
+       sparc-* | *-sun)
+               os=-sunos4.1.1
+               ;;
+       *-be)
+               os=-beos
+               ;;
+       *-haiku)
+               os=-haiku
+               ;;
+       *-ibm)
+               os=-aix
+               ;;
+       *-knuth)
+               os=-mmixware
+               ;;
+       *-wec)
+               os=-proelf
+               ;;
+       *-winbond)
+               os=-proelf
+               ;;
+       *-oki)
+               os=-proelf
+               ;;
+       *-hp)
+               os=-hpux
+               ;;
+       *-hitachi)
+               os=-hiux
+               ;;
+       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+               os=-sysv
+               ;;
+       *-cbm)
+               os=-amigaos
+               ;;
+       *-dg)
+               os=-dgux
+               ;;
+       *-dolphin)
+               os=-sysv3
+               ;;
+       m68k-ccur)
+               os=-rtu
+               ;;
+       m88k-omron*)
+               os=-luna
+               ;;
+       *-next )
+               os=-nextstep
+               ;;
+       *-sequent)
+               os=-ptx
+               ;;
+       *-crds)
+               os=-unos
+               ;;
+       *-ns)
+               os=-genix
+               ;;
+       i370-*)
+               os=-mvs
+               ;;
+       *-next)
+               os=-nextstep3
+               ;;
+       *-gould)
+               os=-sysv
+               ;;
+       *-highlevel)
+               os=-bsd
+               ;;
+       *-encore)
+               os=-bsd
+               ;;
+       *-sgi)
+               os=-irix
+               ;;
+       *-siemens)
+               os=-sysv4
+               ;;
+       *-masscomp)
+               os=-rtu
+               ;;
+       f30[01]-fujitsu | f700-fujitsu)
+               os=-uxpv
+               ;;
+       *-rom68k)
+               os=-coff
+               ;;
+       *-*bug)
+               os=-coff
+               ;;
+       *-apple)
+               os=-macos
+               ;;
+       *-atari*)
+               os=-mint
+               ;;
+       *)
+               os=-none
+               ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+       *-unknown)
+               case $os in
+                       -riscix*)
+                               vendor=acorn
+                               ;;
+                       -sunos*)
+                               vendor=sun
+                               ;;
+                       -cnk*|-aix*)
+                               vendor=ibm
+                               ;;
+                       -beos*)
+                               vendor=be
+                               ;;
+                       -hpux*)
+                               vendor=hp
+                               ;;
+                       -mpeix*)
+                               vendor=hp
+                               ;;
+                       -hiux*)
+                               vendor=hitachi
+                               ;;
+                       -unos*)
+                               vendor=crds
+                               ;;
+                       -dgux*)
+                               vendor=dg
+                               ;;
+                       -luna*)
+                               vendor=omron
+                               ;;
+                       -genix*)
+                               vendor=ns
+                               ;;
+                       -mvs* | -opened*)
+                               vendor=ibm
+                               ;;
+                       -os400*)
+                               vendor=ibm
+                               ;;
+                       -ptx*)
+                               vendor=sequent
+                               ;;
+                       -tpf*)
+                               vendor=ibm
+                               ;;
+                       -vxsim* | -vxworks* | -windiss*)
+                               vendor=wrs
+                               ;;
+                       -aux*)
+                               vendor=apple
+                               ;;
+                       -hms*)
+                               vendor=hitachi
+                               ;;
+                       -mpw* | -macos*)
+                               vendor=apple
+                               ;;
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                               vendor=atari
+                               ;;
+                       -vos*)
+                               vendor=stratus
+                               ;;
+               esac
+               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config/install-sh b/config/install-sh
new file mode 100755 (executable)
index 0000000..e69de29
index 74aaad63f0af9b55c9213a1b5109b76c6f0d6b57..954db04cadbe844acba4d4c0512a62faa03a989c 100644 (file)
@@ -7,12 +7,7 @@ AC_PREREQ(2.60)
 AC_INIT
 
 # Bootstrap StepMake configure
-# For user package:
-AC_CONFIG_AUX_DIR([stepmake/bin])
-
-# For stepmake package:
-# AC_CONFIG_AUX_DIR(bin)
-
+AC_CONFIG_AUX_DIR([config])
 
 STEPMAKE_INIT
 
@@ -86,12 +81,14 @@ else
     AC_MSG_RESULT(not found)
     echo "Can't find Century Schoolbook files. Install FontConfig's fc-list,"
     echo "or use --with-ncsb-dir"
+    STEPMAKE_ADD_ENTRY(REQUIRED,International New Century Schoolbook fonts)
   fi
 fi
 NCSB_SOURCE_FILES=""
 for f in $UNCHECKED_NCSB_SOURCE_FILES; do
   if test "`grep Cyrillic "$f"`" = ""; then
     STEPMAKE_WARN($f does not have Cyrillic characters.)
+    STEPMAKE_ADD_ENTRY(REQUIRED,International New Century Schoolbook fonts)
   else
     NCSB_SOURCE_FILES="$f $NCSB_SOURCE_FILES"
   fi
@@ -171,8 +168,6 @@ CPPFLAGS="$save_CPPFLAGS"
 
 STEPMAKE_PYTHON_DEVEL(REQUIRED)
 
-STEPMAKE_PATH_PROG(GHOSTSCRIPT, gs, OPTIONAL, 8.60)
-
 STEPMAKE_PATH_PROG(FONTFORGE, fontforge, REQUIRED, 20110222)
 
 STEPMAKE_PATH_PROG(T1ASM, t1asm, REQUIRED)
@@ -209,24 +204,51 @@ STEPMAKE_FREETYPE2(freetype2, REQUIRED, 2.1.10)
 
 STEPMAKE_WINDOWS
 
-## Optional tools for building documentation, website, extra fonts.
-
 # guile executable for some scripts
 STEPMAKE_GUILE(OPTIONAL)
 
 # perl for help2man.
 STEPMAKE_PERL(OPTIONAL)
 
+## Optional tools for building documentation, website, extra fonts.
+if test "$DOCUMENTATION" = "yes"; then
+  DOCUMENTATION_REQUIRED=REQUIRED
+else
+  DOCUMENTATION_REQUIRED=OPTIONAL
+fi
+
+STEPMAKE_PATH_PROG(GHOSTSCRIPT, gs, $DOCUMENTATION_REQUIRED, 8.60)
+
 STEPMAKE_PROGS(MAKEINFO, makeinfo, REQUIRED, 4.11)
-STEPMAKE_PROGS(TEXI2HTML, texi2html, OPTIONAL, 1.82)
-STEPMAKE_PROGS(DBLATEX, dblatex, OPTIONAL, 0.1.4)
-STEPMAKE_PROGS(PDFLATEX, pdflatex, OPTIONAL)
-STEPMAKE_PROGS(NETPBM, pngtopnm, OPTIONAL)
-STEPMAKE_PROGS(IMAGEMAGICK, convert, OPTIONAL)
+STEPMAKE_PROGS(TEXI2HTML, texi2html, $DOCUMENTATION_REQUIRED, 1.82)
+STEPMAKE_PROGS(DBLATEX, dblatex, $DOCUMENTATION_REQUIRED, 0.1.4)
+STEPMAKE_PROGS(BIBTEX, bibtex, $DOCUMENTATION_REQUIRED)
+STEPMAKE_PROGS(PDFLATEX, pdflatex, $DOCUMENTATION_REQUIRED)
+STEPMAKE_PROGS(PDFTEX, pdfetex pdftex etex, $DOCUMENTATION_REQUIRED)
+STEPMAKE_PROGS(TEXI2PDF, texi2pdf, $DOCUMENTATION_REQUIRED)
+STEPMAKE_PROGS(TEXINDEX, texindex, $DOCUMENTATION_REQUIRED)
+AC_MSG_CHECKING(for epsf.tex)
+TEX_EPSF=`kpsewhich tex epsf`
+if test "$TEX_EPSF" = ""; then
+    AC_MSG_RESULT(not found)
+    STEPMAKE_ADD_ENTRY($DOCUMENTATION_REQUIRED,epsf.tex)
+else
+    AC_MSG_RESULT($TEX_EPSF)
+fi
+AC_MSG_CHECKING(for Cyrillic characters support in TeX)
+TEX_FIKPARM=`kpsewhich -format=mf fikparm`
+if test "$TEX_FIKPARM" = ""; then
+    AC_MSG_RESULT(not found)
+    STEPMAKE_ADD_ENTRY($DOCUMENTATION_REQUIRED,
+['lh CTAN package (texlive-lang-cyrillic or texlive-texmf-fonts)'])
+else
+    AC_MSG_RESULT(yes)
+fi
+STEPMAKE_PROGS(NETPBM, pngtopnm, $DOCUMENTATION_REQUIRED)
+STEPMAKE_PROGS(IMAGEMAGICK, convert, $DOCUMENTATION_REQUIRED)
 # this name avoids a conflict with ZIP in stepmake/aclocal.m4
-STEPMAKE_PROGS(ZIPDOC, zip, OPTIONAL)
-STEPMAKE_PROGS(RSYNC, rsync, OPTIONAL)
-
+STEPMAKE_PROGS(ZIPDOC, zip, $DOCUMENTATION_REQUIRED)
+STEPMAKE_PROGS(RSYNC, rsync, $DOCUMENTATION_REQUIRED)
 
 AC_DEFINE_UNQUOTED(FLOWER_VERSION, "${FULL_FLOWER_VERSION}")
 
index 83fc5576fa694fb2763461ead4dc6e25f707f950..2b5b304cfa083f3c9be18498f5ee7915ac7e38cb 100644 (file)
@@ -2,11 +2,8 @@ depth = ..
 
 NAME = flower
 MODULE_NAME = flower
-SUBDIRS = include
 
-SCRIPTS =
 README_FILES = NEWS-1.0 NEWS-1.1.46 README TODO
-EXTRA_DIST_FILES= VERSION $(README_FILES) $(SCRIPTS)
 STEPMAKE_TEMPLATES=library c++ po test
 
 # test uses LILYPOND_DATADIR
diff --git a/flower/include/GNUmakefile b/flower/include/GNUmakefile
deleted file mode 100644 (file)
index 3ac9dd0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-# flower/lib/include/Makefile
-
-
-depth = ../..
-
-STEPMAKE_TEMPLATES=c++
-
-include $(depth)/make/stepmake.make
-
-
index 3e9c6d5294082689709f2d4dbca6675e02b514c0..b30dd9cd5b6d8f89ccb1e586a5ca3f3a8e595d1c 100644 (file)
@@ -23,7 +23,7 @@
 #include "std-vector.hh"
 #include "std-string.hh"
 
-std::string dir_name (std::string const file_name);
+std::string dir_name (std::string file_name);
 std::string get_working_directory ();
 
 class File_name
index 7c249afe893103760a3bdb68445d5fc70506823a..3ef0413772f1dd0c03fee0a7d8f0922310ae00f2 100644 (file)
    Add any compatibility definitions here for Guile V2.n
 */
 #endif // SCM_MAJOR_VERSION == 1
+#if defined (SCM_MAJOR_VERSION) && (SCM_MAJOR_VERSION > 1)
+#define GUILEV2 1
+#endif
+// TODO - remove GUILE1 definition when support for Guile 1 is dropped.
+#if defined (SCM_MAJOR_VERSION) && (SCM_MAJOR_VERSION < 2)
+#define GUILEV1 1
+#define GUILEV2 0
+#endif
 #endif /* GUILE_COMPATIBILITY_HH */
index b0acda65096bc8a75358c28d0a6c907a55ec9492..6ea7b43173b82d24585eb4cabf6aa2eed8c4b4e4 100644 (file)
 #include "std-vector.hh"
 #include "interval.hh"
 
-/*
-  A union of intervals in the real line.
-
-  Abysmal performance (quadratic) for large N, hopefully we don't have
-  that large N. In any case, this should probably be rewritten to use
-  a balanced tree.
-*/
-struct Interval_set
+class Interval_set
 {
-  vector<Interval> allowed_regions_;
-
+public:
   Interval_set ();
-  void set_full ();
-  void remove_interval (Interval rm);
+
+  static Interval_set interval_union (vector<Interval>);
+
+  vector<Interval> const &intervals () const { return intervals_; }
+  vector<Interval>::const_iterator upper_bound (Real x) const;
+  Real nearest_point (Real x, Direction dir = CENTER) const;
+  Interval_set complement () const;
+
+private:
+  vector<Interval> intervals_;
 };
 
 #endif /* INTERVAL_SET_HH */
index aa54fa66168363eec4fe87484103c1001297f2d6..148d1a88015709ada81ae69babb4affc223e760c 100644 (file)
@@ -21,6 +21,7 @@
 #include <memory>
 #include <sstream>
 #include <stdexcept>
+#include <unistd.h>
 
 #define YAFFUT_STRINGIZE(x) YAFFUT_STRINGIZE_(x)
 #define YAFFUT_STRINGIZE_(x) #x
@@ -277,7 +278,7 @@ struct Test: public ITest, public virtual Suite
   static Registrator<Suite, Case> s_Registrator;
   Test (): Suite ()
   {
-    Registrator<Suite, Case>r = &s_Registrator;
+    Registrator<Suite, Case> *r = &s_Registrator;
     (void)r;
   }
   template <typename E, typename T>
@@ -301,7 +302,7 @@ struct Test<Case, void>: public ITest
   static Registrator<Case, void> s_Registrator;
   Test ()
   {
-    Registrator<Case, void>r = &s_Registrator;
+    Registrator<Case, void> *r = &s_Registrator;
     (void)r;
   }
   template <typename E, typename T>
index 84bde76a9cfe2a00d9cba2879d2f74f5362249e9..f1aaea59fcc67fbc74c0fbd92e3b326c14abd898 100644 (file)
 /*
   A union of intervals in the real line.
 
-  Abysmal performance (quadratic) for large N, hopefully we don't have
-  that large N. In any case, this should probably be rewritten to use
-  a balanced tree.
+  This class gives good performance for finding the union of
+  a collection of intervals (n log n) and for testing if a point
+  belongs to the union (log n).  It does not give an efficient way to
+  update the set (ie. by adding more intervals); to do this
+  efficiently would require a self-balancing tree, and it would not
+  be currently useful in lilypond anyway.
 */
 
 Interval_set::Interval_set ()
 {
-  set_full ();
 }
 
-void
-Interval_set::set_full ()
+Interval_set
+Interval_set::interval_union (vector<Interval> ivs)
 {
-  allowed_regions_.clear ();
-  Interval s;
-  s.set_full ();
-  allowed_regions_.push_back (s);
+  vector_sort (ivs, Interval::left_less);
+
+  Interval_set ret;
+
+  if (ivs.empty ())
+    return ret;
+
+  ret.intervals_.push_back (ivs.front ());
+
+  // Go over the intervals from left to right.  If the current interval
+  // overlaps with the last one, merge them.  Otherwise, append the
+  // current interval to the list.
+  for (vsize i = 1; i < ivs.size (); ++i)
+    {
+      Interval iv = ivs[i];
+      Interval &last = ret.intervals_.back ();
+
+      if (last[RIGHT] >= iv[LEFT])
+        // overlapping intervals: merge them
+        last[RIGHT] = max (last[RIGHT], iv[RIGHT]);
+      else if (!iv.is_empty ())
+        ret.intervals_.push_back (iv);
+    }
+
+  return ret;
+}
+
+// Returns an iterator pointing to the first interval whose left
+// endpoint is at least x.  That interval may or may not contain x.
+vector<Interval>::const_iterator
+Interval_set::upper_bound (Real x) const
+{
+  Interval xx (x, x);
+  return std::upper_bound (intervals_.begin (), intervals_.end (), xx, Interval::left_less);
 }
 
-void
-Interval_set::remove_interval (Interval rm)
+Real
+Interval_set::nearest_point (Real x, Direction d) const
 {
-  for (vsize i = 0; i < allowed_regions_.size ();)
+  Real left = -infinity_f; // The closest point to the left of x.
+  Real right = infinity_f; // The closest point to the right of x.
+
+  vector<Interval>::const_iterator i = upper_bound (x);
+  if (i != intervals_.end ())
+    right = (*i)[LEFT];
+
+  if (i != intervals_.begin ())
     {
-      Interval s = rm;
-
-      s.intersect (allowed_regions_[i]);
-
-      if (!s.is_empty ())
-        {
-          Interval before = allowed_regions_[i];
-          Interval after = allowed_regions_[i];
-
-          before[RIGHT] = s[LEFT];
-          after[LEFT] = s[RIGHT];
-
-          if (!before.is_empty () && before.length () > 0.0)
-            {
-              allowed_regions_.insert (allowed_regions_.begin () + (long)i, before);
-              i++;
-            }
-          allowed_regions_.erase (allowed_regions_.begin () + (long)i);
-          if (!after.is_empty () && after.length () > 0.0)
-            {
-              allowed_regions_.insert (allowed_regions_.begin () + (long)i, after);
-              i++;
-            }
-        }
-      else
-        i++;
+      Interval left_iv = *(i - 1);
+      // left_iv[LEFT] is guaranteed to be less than x. So if
+      // left_iv[RIGHT] >= x then left_iv contains x, which must then
+      // be the nearest point to x.
+      if (left_iv[RIGHT] >= x)
+        return x;
+
+      left = left_iv[RIGHT];
+    }
+
+  if (d == RIGHT)
+    return right;
+  if (d == LEFT)
+    return left;
+  else
+    return (right - x) < (x - left) ? right : left;
+}
+
+Interval_set
+Interval_set::complement () const
+{
+  Interval_set ret;
+
+  if (intervals_.empty ())
+    {
+      ret.intervals_.push_back (Interval (-infinity_f, infinity_f));
+      return ret;
     }
+
+  if (intervals_[0][LEFT] > -infinity_f)
+    ret.intervals_.push_back (Interval (-infinity_f, intervals_[0][LEFT]));
+
+  for (vsize i = 1; i < intervals_.size (); ++i)
+    ret.intervals_.push_back (Interval (intervals_[i - 1][RIGHT], intervals_[i][LEFT]));
+
+  if (intervals_.back ()[RIGHT] < infinity_f)
+    ret.intervals_.push_back (Interval (intervals_.back ()[RIGHT], infinity_f));
+
+  return ret;
 }
diff --git a/flower/test-interval-set.cc b/flower/test-interval-set.cc
new file mode 100644 (file)
index 0000000..5b4d1f6
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 2012 Joe Neeman <joeneeman@gmail.com>
+
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "interval-set.hh"
+
+#include "yaffut.hh"
+
+using namespace std;
+
+FUNC (interval_set_union)
+{
+  vector<Interval> ivs;
+
+  // Overlapping intervals.
+  ivs.push_back (Interval (-1, 1));
+  ivs.push_back (Interval (0, 3));
+  ivs.push_back (Interval (1, 2));
+  Interval_set result = Interval_set::interval_union (ivs);
+  EQUAL (result.intervals ().size (), 1);
+  // Compare intervals using to_string, since yaffut doesn't know how to compare intervals.
+  EQUAL (result.intervals ()[0].to_string (), Interval (-1, 3).to_string ());
+
+  // Non-overlapping intervals.
+  ivs.push_back (Interval (-5, -4));
+  result = Interval_set::interval_union (ivs);
+  EQUAL (result.intervals ().size (), 2);
+  EQUAL (result.intervals ()[0].to_string (), Interval (-5, -4).to_string ());
+  EQUAL (result.intervals ()[1].to_string (), Interval (-1, 3).to_string ());
+
+  // Infinite intervals.
+  ivs.push_back (Interval (-infinity_f, -4));
+  result = Interval_set::interval_union (ivs);
+  EQUAL (result.intervals ().size (), 2);
+  EQUAL (result.intervals ()[0].to_string (), Interval (-infinity_f, -4).to_string ());
+  EQUAL (result.intervals ()[1].to_string (), Interval (-1, 3).to_string ());
+
+  // Empty intervals.
+  ivs.push_back (Interval (infinity_f, -infinity_f));
+  result = Interval_set::interval_union (ivs);
+  EQUAL (result.intervals ().size (), 2);
+}
+
+FUNC (interval_set_nearest_point)
+{
+  vector<Interval> ivs;
+
+  ivs.push_back (Interval (-3, -1));
+  ivs.push_back (Interval (1, 3));
+  Interval_set set = Interval_set::interval_union (ivs);
+
+  // If the point is in the set, direction does not matter.
+  EQUAL (set.nearest_point (-2, UP), -2);
+  EQUAL (set.nearest_point (-2, DOWN), -2);
+  EQUAL (set.nearest_point (-2, CENTER), -2);
+
+  // If the point is not in the set, direction does matter.
+  EQUAL (set.nearest_point (-0.5, UP), 1);
+  EQUAL (set.nearest_point (-0.5, DOWN), -1);
+  EQUAL (set.nearest_point (-0.5, CENTER), -1);
+  EQUAL (set.nearest_point (0.5, CENTER), 1);
+
+  // The return value can be +- infinity.
+  EQUAL (set.nearest_point (5, UP), infinity_f);
+  EQUAL (set.nearest_point (5, DOWN), 3);
+  EQUAL (set.nearest_point (-5, DOWN), -infinity_f);
+  EQUAL (set.nearest_point (-5, UP), -3);
+}
+
+FUNC (interval_set_complement)
+{
+  vector<Interval> ivs;
+
+  ivs.push_back (Interval (-3, -1));
+  ivs.push_back (Interval (1, 3));
+  Interval_set set = Interval_set::interval_union (ivs).complement ();
+  EQUAL (set.intervals ().size (), 3);
+  EQUAL (set.intervals ()[0].to_string (), Interval (-infinity_f, -3).to_string ());
+  EQUAL (set.intervals ()[1].to_string (), Interval (-1, 1).to_string ());
+  EQUAL (set.intervals ()[2].to_string (), Interval (3, infinity_f).to_string ());
+
+  // Half-infinite sets are handled correctly.
+  ivs.push_back (Interval (-infinity_f, -2));
+  set = Interval_set::interval_union (ivs).complement ();
+  EQUAL (set.intervals ().size (), 2);
+  EQUAL (set.intervals ()[0].to_string (), Interval (-1, 1).to_string ());
+  EQUAL (set.intervals ()[1].to_string (), Interval (3, infinity_f).to_string ());
+
+  // Full and empty sets are handled correctly.
+  set = Interval_set ().complement ();
+  EQUAL (set.intervals ().size (), 1);
+  EQUAL (set.intervals ()[0].to_string (), Interval (-infinity_f, infinity_f).to_string ());
+  set = set.complement ();
+  EQUAL (set.intervals ().size (), 0);
+}
index 153ae207b1d53d9fb7330c782fdc7e041b1a003b..b24254705833f70a95753bd4affae15f2399ead8 100644 (file)
@@ -6,23 +6,23 @@ are collected here.
 "
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \relative c'' {
       \time 3/4
       % FIXME: standard vs default, alteration-FOO vs FOO-alteration
-      \override Staff.Accidental #'glyph-name-alist = #standard-alteration-glyph-name-alist
+      \override Staff.Accidental.glyph-name-alist = #standard-alteration-glyph-name-alist
       cis^\markup { \typewriter default } c ces  
 
-      \override Staff.Accidental #'glyph-name-alist = #alteration-hufnagel-glyph-name-alist
+      \override Staff.Accidental.glyph-name-alist = #alteration-hufnagel-glyph-name-alist
       cis^\markup { \typewriter hufnagel } c ces  
 
-      \override Staff.Accidental #'glyph-name-alist = #alteration-medicaea-glyph-name-alist
+      \override Staff.Accidental.glyph-name-alist = #alteration-medicaea-glyph-name-alist
       cis^\markup { \typewriter medicaea } c ces  
 
-      \override Staff.Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
+      \override Staff.Accidental.glyph-name-alist = #alteration-vaticana-glyph-name-alist
       cis^\markup { \typewriter vaticana } c ces  
 
-      \override Staff.Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
+      \override Staff.Accidental.glyph-name-alist = #alteration-mensural-glyph-name-alist
       cis^\markup { \typewriter mensural } c ces  
 }
index babfea87038d970b95789b7401deeddfec1aedae..70f4e8fa0a93f1982beea1abb119231afd64ce79 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
 texidoc = "Cautionary accidentals may be indicated using either
@@ -13,10 +13,10 @@ parentheses (default) or smaller accidentals.
 {
     c''4
     cis''?4
-    \once \override Staff.AccidentalCautionary #'parenthesized = ##f
-    \once \override Staff.AccidentalCautionary #'font-size = #-2
+    \once \override Staff.AccidentalCautionary.parenthesized = ##f
+    \once \override Staff.AccidentalCautionary.font-size = #-2
     cis''?4
-    \once \override Staff.AccidentalCautionary #'parenthesized = ##t
+    \once \override Staff.AccidentalCautionary.parenthesized = ##t
     cis''?4
 }
 
index f34d2392fa72bbf2a4103126c10da0a6c53f79c6..eb05abcddbdf1c7d653465b0b4d11bde98e6f403 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
 texidoc = "Several automatic accidental rules
@@ -30,13 +30,13 @@ Both scores should show the same accidentals.
 
 \score {
   \relative c'' {
-    \accidentalStyle "dodecaphonic"
+    \accidentalStyle dodecaphonic
     gis4 a g gisis
-    \accidentalStyle "neo-modern"
+    \accidentalStyle neo-modern
     gis8 a gis gis g' gis gis,, a'
-    \accidentalStyle "neo-modern-cautionary"
+    \accidentalStyle neo-modern-cautionary
     eis fis eis eis g2
-    \accidentalStyle "teaching"
+    \accidentalStyle teaching
     \key e \major
     e8 eis fis fis gis2
   }
diff --git a/input/regression/accidental-fingering-collision.ly b/input/regression/accidental-fingering-collision.ly
new file mode 100644 (file)
index 0000000..ac7a07e
--- /dev/null
@@ -0,0 +1,13 @@
+\version "2.17.0"
+
+\header {
+  texidoc = "Horizontal @code{Fingering} grobs should not collide with
+accidentals.
+"
+}
+
+\relative c' {
+  \time 2/4
+  \set fingeringOrientations = #'(left)
+  <a-3 cis-4> <a-3 cis!-4> |
+}
\ No newline at end of file
index 170c4b32a252798ea74ef760d6161a064fac219b..a09f5bf7d600bcfda5c8c30d081f4b8c35170d25 100644 (file)
@@ -6,7 +6,7 @@ accidental."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout
 {
@@ -14,7 +14,7 @@ accidental."
 }
     
 \new PianoStaff \relative <<
-    \accidentalStyle "piano"
+    \accidentalStyle piano
     \new Staff { ges'4 ges4 }
     \new Staff { r8 gis r8 gis }
     >>
index 0b40e548a1d9ecac8c553638503d9526cd9e4c0b..5cf5c665f8f765f991ad0de62e9ab35f96cc52e2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Accidental padding works for all accidentals, including
@@ -6,7 +6,7 @@ those modifying the same pitch."
 }
 
 \relative c' {
-  \override Staff.AccidentalPlacement #'padding = #2
+  \override Staff.AccidentalPlacement.padding = #2
   <ces cis>1
   <ces des>1
 }
index 3beb51a0fd6f2f924941d7b15c5a7ef76186ae2d..3cef967242ea0190a7bd265e8779a4b9d19bce44 100644 (file)
@@ -7,7 +7,7 @@ denoting Musica Ficta."
  
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##t
 }
@@ -16,7 +16,7 @@ denoting Musica Ficta."
   \time 2/4 
   \set suggestAccidentals = ##t 
   cis^> gis'-|
-  \override AccidentalSuggestion #'parenthesized = ##t
+  \override AccidentalSuggestion.parenthesized = ##t
   cis,_"paren" gis'
 
 }
index c81aed3390a8c1ef4ae9ef162da26aec424c0b2f..f69a7a85756d283eb59f973584dcfa00ff0af944 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The second and third notes should not get accidentals,
@@ -20,7 +20,7 @@ mus =         \relative c' {
   fis8  gis8 ~
   \break
   gis1
-  \override Accidental #'hide-tied-accidental-after-break = ##t
+  \override Accidental.hide-tied-accidental-after-break = ##t
   f1~
   f2~f4 % ~ f8
   fis8  gis8 ~
index bd06e7fc66f477d404a56b0ba262bab375a1788a..61cebc562525aceb5b24818af1bfecc60262aeea 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \layout { ragged-right = ##t }
 
 \header{
@@ -28,7 +28,7 @@ voiceb =  \transpose c c' {
     \voicea
   }
   \context Staff << 
-    \accidentalStyle "modern-voice-cautionary"
+    \accidentalStyle modern-voice-cautionary
     \new Voice \voicea
     \new Voice \voiceb
   >>
index cbd9fa309877f59cfd814d829712ef4f2e1efa1d..907e3eae360628fd1c9aed4bf6c8abf7aa865280 100644 (file)
@@ -3,7 +3,7 @@
 anywhere in the vertical alignment. "
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t
@@ -23,7 +23,7 @@ anywhere in the vertical alignment. "
       \new Staff {
         \set Staff.alignAboveContext = #"3"
         \times 4/6 {
-          \override TextScript #'padding = #3
+          \override TextScript.padding = #3
           c4^"this" d_"staff" e^"above" d_"last" e^"staff" f
         }
       }
index 3613c57ca2c1a0f3ddf9397eab1b7e4d32702335..1314f2941a20910b5ab62fc8d2083869342ec191 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \book {
   \score {
       \new Staff { c c c c }
       \new Staff { 
        \overrideProperty
-       #"Score.NonMusicalPaperColumn"
-       #'line-break-system-details
+       Score.NonMusicalPaperColumn.line-break-system-details
        #'((alignment-distances . (#f 20)))
        c1 \break
        \overrideProperty
-       #"Score.NonMusicalPaperColumn"
-       #'line-break-system-details
+       Score.NonMusicalPaperColumn.line-break-system-details
        #'((alignment-distances . (5 15)))
        c1 \break
        \overrideProperty
-       #"Score.NonMusicalPaperColumn"
-       #'line-break-system-details
+       Score.NonMusicalPaperColumn.line-break-system-details
        #'((alignment-distances . (15 5)))
        c1 c
       }
index 43dc32dc5d21411aed40843c0eba0adc075fbac9..14652297e6e24399d00a6a8e538bf2a80f730de2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The command @code{\\alterBroken} may be used to override the
@@ -13,31 +13,33 @@ its usage with a variety of data types."
 #(ly:expect-warning (_ "not a spanner name"))
 
 \relative c'' {
-  \alterBroken Slur #'positions #'((3 . 3) (5 . 5))
-  \alterBroken Slur #'color #'((0 0 1) (1 0 0))
-  \alterBroken Slur #'dash-definition #'( ((0 1 0.4 0.75))
-                                          ((0 0.5 0.4 0.75) (0.5 1 1 1)) )
-  d4( d' b g
+  d4-\alterBroken #'positions #'((3 . 3) (5 . 5))
+    -\alterBroken #'color #'((0 0 1) (1 0 0))
+    -\alterBroken #'dash-definition #'( ((0 1 0.4 0.75))
+                                        ((0 0.5 0.4 0.75) (0.5 1 1 1)) )
+    -(
+  d' b g
   \break
   d d' b g)
-  \alterBroken "Staff.OttavaBracket" #'padding #'(1 3)
+  \alterBroken #'padding #'(1 3) Staff.OttavaBracket
   % Spaces in spanner's name are disregarded.
-  \alterBroken "Staff . OttavaBracket" #'style #'(line dashed-line)
+  \alterBroken #'style #'(line dashed-line) Staff.OttavaBracket
   \ottava #1
   % It is possible to use procedures as arguments.
-  \alterBroken Hairpin #'stencil #`(
-    ,ly:hairpin::print
-    ,(lambda (grob)
-      (ly:stencil-rotate (ly:hairpin::print grob) -5 0 0)))
-  c\< d e
+  c-\alterBroken Hairpin.stencil #`(
+      ,ly:hairpin::print
+      ,(lambda (grob)
+        (ly:stencil-rotate (ly:hairpin::print grob) -5 0 0)))
+    \<
+  d e
   % Since `NoteHead' is not the name of a spanner, the following has no
   % effect on layout.  A warning (suppressed here) is issued.
-  \alterBroken NoteHead #'color #`(,red ,blue)
-  \alterBroken Tie #'color #`(() ,blue)
-  \alterBroken Tie #'control-points #'(
+  \alterBroken #'color #`(,red ,blue) NoteHead
+  \once\alterBroken #'color #`(() ,blue) Tie
+  \once\alterBroken #'control-points #'(
      ((1 . 3) (2 . 4) (3 . 4) (4 . 3))
      ((3 . 3) (4 . 4) (5 . 4) (6 . 3))
-    )
+    ) Tie
   f~
   \break
   f c a f\!
index adc38287ee4381152c606aca7716317bd31a7ee0..106b956eb93059e4c623b65f554bc3b5d2a6fe50 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The gaps between an @code{AmbitusLine} and its
@@ -14,7 +14,7 @@ note heads are set by the @code{gap} property."
 
 \new Staff {
   \time 2/4
-  \override AmbitusLine #'gap = #1
+  \override AmbitusLine.gap = #1
   c'4 g''
 }
 
index 5368458a8a1e71640db38d4149f8d169b27dc93f..96ebc548540d1a577611473d773ad817efe893bb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Arpeggios do not overshoot the highest note head.
@@ -8,7 +8,7 @@ The first chord in this example simulates overshoot using
 
 \relative c' {
   % simulate overshoot for comparison
-  \once \override Arpeggio #'positions = #'(-3 . 1)
+  \once \override Arpeggio.positions = #'(-3 . 1)
   <c e g b>1\arpeggio
   <c e g b>1\arpeggio
   <f a c>2\arpeggio <g b d f>\arpeggio
index dc6ae63480112ec55f49c40d09b7856a691df300..8b3076328b1420a32e2b9040782223718c3ab950 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header{
   texidoc="
 Arpeggios are supported, both cross-staff and broken single staff.
@@ -14,7 +14,7 @@ Arpeggios are supported, both cross-staff and broken single staff.
     <fis,  d a>\arpeggio
     \arpeggioArrowUp
     <fis d a >\arpeggio            
-    %%\override PianoStaff.SpanArpeggio  #'connect = ##t
+    %%\override PianoStaff.SpanArpeggio.connect = ##t
     \set PianoStaff.connectArpeggios = ##t
     <fis d a>\arpeggio
   }
index 8daa66e33035ea8cd6663a0ffeeeb459a598f95e..34fa328dda650a2c45d891bee0426ed5312a9c37 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.5"
 
 \header{
 texidoc="No auto beams will be put over (manual) repeat bars."
@@ -8,5 +8,5 @@ texidoc="No auto beams will be put over (manual) repeat bars."
 
 {
   \time 3/4
-  a'4 b' c''8 \bar ":|:" d''8
+  a'4 b' c''8 \bar ":..:" d''8
 }
index 89a2e7c4bfc4b6de712a965a3894c62be6555927..e6b36894d338be2bee5310b9ad58b9c2eae423fa 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Tuplet-spanner should not put (visible) brackets on
@@ -9,7 +9,7 @@ beams even if they're auto generated."
 
 \relative c' {
   \set tupletSpannerDuration = #(ly:make-moment 1 4)
-  \override TupletBracket  #'bracket-visibility = #'if-no-beam
+  \override TupletBracket.bracket-visibility = #'if-no-beam
   \times 2/3 {
     f8[ f f ] f8[ f f ] f f f f f f 
   }
index aa83c7ff8f39840361b042d943d76448f673ca98..5191c5331277cdab13822e11d1f3e64268097b93 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Exercise all output functions"
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper { ragged-right = ##t }
 
        \ottava #0
        <f,, \5>4
 
-       \override TextScript #'color = #red
+       \override TextScript.color = #red
        g4^"red"
       }
 
     \new Staff \relative c'' {
       \makeClusters { <g a>8 <e a> <g a>4 }
 
-      \override Glissando #'style = #'zigzag
+      \override Glissando.style = #'zigzag
       \slurDashed
       f2( \glissando f')
       \easyHeadsOn
index 5c5af19cedb3be043633c13cd23c8a6f319c5534..426bbf4b180e21be52f415b9e271d3d101341038 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 forcedLastBreak =  { \break }
 
@@ -16,7 +16,7 @@ forcedLastBreak =  { \break }
 
 
 #(define (assert-system-count-override count)
-  #{ \override NoteHead #'after-line-breaking
+  #{ \override NoteHead.after-line-breaking
        = #(lambda (smob) (assert-system-count smob count))
   #})
 
@@ -51,7 +51,7 @@ half way in measure 13 has been forgotten.
 
 
 sarabandeA =  \context Voice  \relative c {
-  \override Staff.NoteCollision  #'merge-differently-dotted = ##t
+  \override Staff.NoteCollision.merge-differently-dotted = ##t
 
 
   << { d8. e16 e4.\trill d16 e } \\
@@ -156,11 +156,11 @@ smallerPaper = \layout {
   \context {
     \Staff
     fontSize = #-1
-    \override StaffSymbol  #'staff-space = #0.8
+    \override StaffSymbol.staff-space = #0.8
   }
   \context {
     \Score
-    \override SpacingSpanner #'spacing-increment = #0.96
+    \override SpacingSpanner.spacing-increment = #0.96
   }
 
   indent = 5.6 \mm
index 3ba915b3cad39f1665fe10aaca695dd5bae43644..47ea9fca954e41283281d0059fb0a998f3a94d01 100644 (file)
@@ -5,7 +5,7 @@
 with lines and explanatory text added."
   
 }
-\version "2.16.0"
+\version "2.17.6"
 
 \layout{ ragged-right = ##t }
 
@@ -21,7 +21,7 @@ with lines and explanatory text added."
   \layout {
     \context {
       \Score
-      \override PaperColumn #'keep-inside-line = ##f
+      \override PaperColumn.keep-inside-line = ##f
     }
   }
 }
index a39a8b7976239fe2fa02d7b4903a476c96ff4528..0b4fefc86c459c0bec5bee3317decc7ce8708d63 100644 (file)
@@ -6,19 +6,19 @@
 }
 
 
-\version "2.16.0"
+\version "2.17.6"
 
 ledgerUp =
 {
   s2
   \stopStaff
-  \override Staff.StaffSymbol #'line-positions = #'(-4 -2 0 2 4 6)
+  \override Staff.StaffSymbol.line-positions = #'(-4 -2 0 2 4 6)
   \startStaff
   s2
   \noBreak
   s2
   \stopStaff
-  \revert Staff.StaffSymbol #'line-positions
+  \revert Staff.StaffSymbol.line-positions
   \startStaff
   s2
 }
@@ -27,11 +27,11 @@ ledgerDown =
 {
   s2
   \stopStaff
-  \override Staff.StaffSymbol #'line-positions = #'(-6 -4 -2 0 2 4)
+  \override Staff.StaffSymbol.line-positions = #'(-6 -4 -2 0 2 4)
   \startStaff
   s1
   \stopStaff
-  \revert Staff.StaffSymbol #'line-positions
+  \revert Staff.StaffSymbol.line-positions
   \startStaff
   s2
 }
@@ -40,7 +40,7 @@ ledgerDown =
 <<
   \new Staff \with
   {
-    \override BarLine #'bar-extent = #'(-1 . 1.5)
+    \override BarLine.bar-extent = #'(-1 . 1.5)
   }
   {
     \ledgerUp \ledgerDown
@@ -56,7 +56,7 @@ ledgerDown =
 
   \new Staff \with
   {
-    \override BarLine #'bar-extent = #'(0 . 0)
+    \override BarLine.bar-extent = #'(0 . 0)
   }
   {
     s1*4
@@ -72,7 +72,7 @@ ledgerDown =
 
   \new Staff \with
   {
-    \override BarLine #'bar-extent = #'(-2 . 0)
+    \override BarLine.bar-extent = #'(-2 . 0)
   }
   {
     s1*4
diff --git a/input/regression/bar-line-define-bar-glyph.ly b/input/regression/bar-line-define-bar-glyph.ly
new file mode 100644 (file)
index 0000000..7b5ce64
--- /dev/null
@@ -0,0 +1,28 @@
+\version "2.17.5"
+
+\header { texidoc = "New bar line glyphs can be defined in Scheme."
+        }
+
+\paper { ragged-right = ##t }
+
+
+#(define (make-coda-sign-bar-line grob extent)
+   (let ((stencil (ly:font-get-glyph (ly:grob-default-font grob)
+                                     "scripts.coda")))
+        stencil))
+
+#(add-bar-glyph-print-procedure "0" make-coda-sign-bar-line)
+
+\defineBarLine "0" #'("0" "" "")
+
+
+\relative \new StaffGroup <<
+  \new Staff {
+    c4 c \bar "0" c c \bar "0" \break
+    c1
+  }
+  \new Staff {
+    c4 c c c
+    c1
+  }
+>>
diff --git a/input/regression/bar-line-define-bar-line.ly b/input/regression/bar-line-define-bar-line.ly
new file mode 100644 (file)
index 0000000..66a5777
--- /dev/null
@@ -0,0 +1,21 @@
+\version "2.17.5"
+
+\header { texidoc = "New bar line styles can be defined by @code{\defineBarLine}."
+        }
+
+\paper { ragged-right = ##t }
+
+\defineBarLine "[|;" #'("|" "[|;" " |")
+\defineBarLine ";|]" #'(";|]" "" " |")
+
+\relative \new StaffGroup <<
+  \new Staff {
+    c4 c \bar "[|;" c c \bar ";|]" \break
+    c4 c \bar ";|]" c c \bar "[|;" \break
+    c1 }
+  \new Staff {
+    c4 c c c
+    c4 c c c
+    c1
+  }
+>>
index 17d5a7dc0e47119565a52fe2efe27102d876fcd5..7b17c0f58b7c418e645c93eb007f0f5160e714c1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.5"
 
 \header { texidoc = "Segno bar lines can be used to mark
                      the begin and the end of a segno part."
@@ -8,10 +8,10 @@
 
 \relative \new StaffGroup <<
   \new Staff {
-    c4 \bar "S" c \bar "|S" c \bar "S|" c \bar ":|S" \break
-    c4 c \bar ":|S|:" c c \bar ":|S.|:" \break
-    c4 c c2 \bar ".S|:" \break
-    c1 \bar ":|S." \break
+    c4 \bar "S" c \bar "S-|" c \bar "S-S" c \bar ":|.S" \break
+    c4 c \bar ":|.S.|:" c c \bar ":|.S.|:-S" \break
+    c4 c c2 \bar "S.|:" \break
+    c1 \bar ":|.S-S" \break
     c1 \bar "S" \break
     c1 }
   \new Staff {
index 359ccb4dd25076030bcce0824608c5048af781df..1ae85f4e262528cbc344392a965f73e0e8369631 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.5"
 
 \header { texidoc = "Various types of bar lines can be drawn.
 
@@ -17,9 +17,9 @@ space, centered on the top-most barline.
 
 \relative \new StaffGroup <<
   \new Staff = "1" {
-    c2 \bar "dashed" c
+    c2 \bar "!" c
     s1
-    c2 \bar ":" c
+    c2 \bar ";" c
     s1
     c2 \bar "." c
     s1
index 8672a924f83532565bc5a2b77465e842cd81c437..fe9a194d0f3ec7746970044d8dc09157aab7b9b6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Bar numbers can automatically reset at volta repeats.
@@ -10,7 +10,7 @@ musicWithBarNumberCheck =
   (integer?)
 #{
   \relative c' {
-    \override Score.BarNumber #'break-visibility = #'#(#t #t #t)
+    \override Score.BarNumber.break-visibility = #'#(#t #t #t)
     \repeat volta 28 {
      c1 |
      c |
index 719c3f7acba4113ef9e055d0a5f4a234d4ac450e..ca1d1ff2c9188e7d7f0d263c09432c323a8bdf10 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -17,10 +17,10 @@ be increased.
 }
 
 \relative c'' {
-  \override Score.BarNumber #'break-visibility = #all-visible
+  \override Score.BarNumber.break-visibility = #all-visible
   \partial 4 c4 
   c1 c c
   \set Score.currentBarNumber = #99999
-  \override Score.BarNumber  #'padding = #3
+  \override Score.BarNumber.padding = #3
   c1 c
 }
index 8e06a82089e0d371119c2f70100772efa958388e..6f13e58a9e5be2d69367308597f84946a434ab9f 100644 (file)
@@ -3,7 +3,7 @@
   beamlets on the same height."
 
 }
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   raggedright = ##t
@@ -11,6 +11,6 @@
 
 \relative c' {
   \time 1/4
-  \override Beam #'breakable = ##t
+  \override Beam.breakable = ##t
   r16 r16. c32[ c16 \break c8. ] r16
 }
index 7684ece58aa8a6d1d84dee918d8119b1517741f0..cb5a0b644a705c6b2689031b4fb964c6453c8124 100644 (file)
@@ -5,11 +5,11 @@
   
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \new Staff \with {
    \remove "Bar_engraver"
-   \override Beam #'breakable = ##t
+   \override Beam.breakable = ##t
 } {
    \time 1/8
    c'32 [
index c56fb8d6021a221febfb1f0a209740d7db937b43..0edbf53cd74b6d5dfbe54efe33a9535dd8de3332 100644 (file)
@@ -4,10 +4,10 @@
 "
 
 }
-\version "2.16.0"
+\version "2.17.6"
 \layout { ragged-right= ##t }
 
 \relative c''  {
-  \override Score.Beam #'breakable = ##t
+  \override Score.Beam.breakable = ##t
   \time 3/16 c16-[ d e \break f-] 
 }
index 92b0f0096777c4376acb19bab988fda15227b832..22262a85610413e603bc67108f4f81f7cf4e3e43 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="Some classic examples of broken beams, all taken from
@@ -11,7 +11,7 @@ Scriabin Op. 11, No. 1.
 }
 
 music = \relative c'' {
-  \override Beam #'breakable = ##t
+  \override Beam.breakable = ##t
   r2. f8[ c \break
   e c f,] r8 r4 a'8[ e \break
   g d g,] r8 r4 f'8[ a, \break
@@ -25,19 +25,19 @@ music = \relative c'' {
   f' b d ] r8 r2 |
 }
 
-\markup { "\override Beam #'positions = #beam::place-broken-parts-individually (default)" }
+\markup { "\override Beam.positions = #beam::place-broken-parts-individually (default)" }
 { \music }
 
-\markup { "\override Beam #'positions = #beam::align-with-broken-parts" }
+\markup { "\override Beam.positions = #beam::align-with-broken-parts" }
 \markup { \justify { Returns y-positions at the ends of the beam such that beams align-across-breaks. } }
 {
-  \override Beam #'positions = #beam::align-with-broken-parts
+  \override Beam.positions = #beam::align-with-broken-parts
   \music
 }
 
-\markup { "\override Beam #'positions = #beam::slope-like-broken-parts" }
+\markup { "\override Beam.positions = #beam::slope-like-broken-parts" }
 \markup { \justify { Approximates broken beam positioning in turn-of-the-century Editions Peters scores. } }
 {
-  \override Beam #'positions = #beam::slope-like-broken-parts
+  \override Beam.positions = #beam::slope-like-broken-parts
   \music
 }
index 4c6c8a03023efdd4b4117af26d3bcc1db8f6939a..561ca74d793d6c322ea27c438874518c21d4e301 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The functions passed to the @code{positions} property should
@@ -10,18 +10,18 @@ cases.
 \paper { ragged-right = ##t }
 {
   r2.
-  \override Beam #'breakable = ##t
+  \override Beam.breakable = ##t
   r8[ g' \break a' r]
 }
 {
   r2.
-  \override Beam #'positions = #beam::align-with-broken-parts
-  \override Beam #'breakable = ##t
+  \override Beam.positions = #beam::align-with-broken-parts
+  \override Beam.breakable = ##t
   r8[ g' \break a' r]
 }
 {
   r2.
-  \override Beam #'positions = #beam::slope-like-broken-parts
-  \override Beam #'breakable = ##t
+  \override Beam.positions = #beam::slope-like-broken-parts
+  \override Beam.breakable = ##t
   r8[ g' \break a' r]
 }
\ No newline at end of file
index efad10820a44f97371c98b908ddbd9a7b0ea5874..2e09fa6342b46d210ad66ff0ac932ebea333d762 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header{
 
   texidoc="Simple beams on middle staffline are allowed to be
 }
 
 \relative c'{
-  %%\override Staff.Stem  #'beamed-lengths = #'(3.50)
+  %%\override Staff.Stem.beamed-lengths = #'(3.50)
   %%  c8[ d]
   %%  d[ c]
   %% r2
-  %% \override Staff.Stem  #'beamed-lengths = #'(3.26)
+  %% \override Staff.Stem.beamed-lengths = #'(3.26)
 
   a8[^"small slope" b]
   b[ a]
index b4e717c8f724a7a90f4733969d19344465abbb53..95dd35c78b3a1621afac1351b23dac4e131d3f98 100644 (file)
@@ -7,7 +7,7 @@
 %  debug-beam-scoring = ##t
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \new Staff
 {
@@ -36,7 +36,7 @@
       s4. <g g'>4.
     } \\
     {
-%      \override Beam #'inspect-quants = #'(-4 . -3)
+%      \override Beam.inspect-quants = #'(-4 . -3)
       a8[ d e f g]
     }
     >>
index 68378389dd3f8d78425fcbb8c6d493ce618d30f5..aec8fa6d00f241f62a98bae6e07ffedd56d8837e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Beams can be allowed to collide with grobs by overriding
 the collision-interfaces property."
@@ -6,7 +6,7 @@ the collision-interfaces property."
 
 \relative c' {
   c8 [ des' ]
-  \once \override Beam #'collision-interfaces = #'(beam-interface
+  \once \override Beam.collision-interfaces = #'(beam-interface
                                                    clef-interface
                                                    ;inline-accidental-interface
                                                    key-signature-interface
@@ -14,7 +14,7 @@ the collision-interfaces property."
                                                    time-signature-interface)
   c,8 [ des'! ]
   c, [ \key des \major d ]
-  \once \override Beam #'collision-interfaces = #'(beam-interface
+  \once \override Beam.collision-interfaces = #'(beam-interface
                                                    clef-interface
                                                    inline-accidental-interface
                                                    ;key-signature-interface
@@ -22,7 +22,7 @@ the collision-interfaces property."
                                                    time-signature-interface)
   c [ \key c \major d ]
   g [ \grace { a [ d ] } g, ]
-  \once \override Beam #'collision-interfaces = #'(;beam-interface
+  \once \override Beam.collision-interfaces = #'(;beam-interface
                                                    clef-interface
                                                    inline-accidental-interface
                                                    key-signature-interface
index 9d01fbe79cd6b1cbe425123fa42e5bc689eabcda..89514aa5baec1bfe535ca2e94d917d5a769ccdb6 100644 (file)
@@ -1,12 +1,12 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Beam collisions are resistant to scaled down staves."
 }
 
 \new Staff \with {
   fontSize = #-3
-  \override StaffSymbol #'staff-space = #(magstep -3)
-  \override StaffSymbol #'thickness = #(magstep -3) }
+  \override StaffSymbol.staff-space = #(magstep -3)
+  \override StaffSymbol.thickness = #(magstep -3) }
 <<
   \relative c'' { e16[ f] }
   \\
index cf675dfc05499d8be4087c810da5c4617cb17dc7..a6bf7d878054737774c0ae965454aeb984957162 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Beam collision can be tweaked to only apply to the grobs
 within the beam's original voice."
@@ -8,7 +8,7 @@ within the beam's original voice."
   \time 5/4
   << { c8[ s c ] } \\ { s8 c' s8 } >>
   c,[ des' ]
-  \override Staff . Beam #'collision-voice-only = ##t
+  \override Staff.Beam.collision-voice-only = ##t
   << { c,8[ s c ] } \\ { s8 c' s8 } >>
   c,[ des'! ]
 }
index f02962d9013f3bd9f6643e6c850d766f57a61be3..59643345f23f49df7189275f1d1b7f7b9cf59fa4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 texidoc = "Concave beaming works for chords as well as monophonic
 music.
@@ -37,10 +37,10 @@ nonHorizontalBeams = {
 
 #(define (<> x y) (not (= x y)))
 mustBeHorizontal = {
-  \override Staff.Beam #'positions = #(check-slope-callbacks =)
+  \override Staff.Beam.positions = #(check-slope-callbacks =)
 }
 mustNotBeHorizontal = {
-  \override Staff.Beam #'positions = #(check-slope-callbacks <>)
+  \override Staff.Beam.positions = #(check-slope-callbacks <>)
 }
 
 \new Voice {
index 6643e38cef9c314ef979e19539f27999a6479b75..29edf9e7f36097467a02440e29a571999145eba0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header{
 
   texidoc = "Fully concave beams should be horizontal. Informally spoken,
@@ -58,7 +58,7 @@ rossBeams = \relative c'' {
 
 #(define (<> x y) (not (= x  y)))
 \new Voice {
-  \override Beam #'positions = #(check-slope-callbacks =)
+  \override Beam.positions = #(check-slope-callbacks =)
   \rossBeams
   
 }
index ecf69921f4b3039856ced36675abdd32eece74eb..3008617671f681aa82a68c9dc05c6bbe3eef3b69 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Beamed stems have standard lengths if possible.  Quantization
@@ -6,6 +6,6 @@ is switched off in this example."
 }
 
 \relative c' {
-  \override Beam #'skip-quanting = ##t
+  \override Beam.skip-quanting = ##t
   f4  f8[ f]  f16[ f]  f32[ f]  f64[ f]  f128[ f]
 }
index 2fa96cb4798c050a3e718dc809a4790d7e5b2a05..6d0e6d4ed1805af5307cbd4d55a30a6221f21be6 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header{
 texidoc="
 Beams should behave reasonably well, even under extreme circumstances.
@@ -35,6 +35,6 @@ extreme = \relative c'' {
 {
                                % If we want to test extreme beams,
                                % we should not have them auto-kneed
-  \override Beam  #'auto-knee-gap = ##f
+  \override Beam.auto-knee-gap = ##f
   \extreme
 }
index b561ff0e5a1d52194ab654b71f42cb9c46c24c7c..b85e205c3aef3017aa329160d0061d1eeabf72db 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header  {
   texidoc = "Feathered beams should have the same progress of their feathering
 at the end of a line break as they do at the beginning of the next line."
@@ -14,124 +14,124 @@ at the end of a line break as they do at the beginning of the next line."
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #RIGHT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #RIGHT
     a32[ b c d e f g a ]
-    \once \override Voice . Beam #'grow-direction = #LEFT
+    \once \override Voice.Beam.grow-direction = #LEFT
     a[ g f e d c b a]  \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #RIGHT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #RIGHT
     a32[ b c d \bar "" \break e f g a b c d e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #RIGHT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #RIGHT
     a32[ b c d e f g a \bar "" \break b c d e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #RIGHT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #RIGHT
     a32[ b c d e f g a b c d \bar "" \break e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #LEFT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #LEFT
     a32[ b c d \bar "" \break e f g a b c d e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #LEFT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #LEFT
     a32[ b c d e f g a \bar "" \break b c d e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #LEFT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #LEFT
     a32[ b c d e f g a b c d \bar "" \break e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Stem #'direction = #DOWN
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #RIGHT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Stem.direction = #DOWN
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #RIGHT
     a32[ b c d \bar "" \break e f g a b c d e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Stem #'direction = #DOWN
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #RIGHT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Stem.direction = #DOWN
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #RIGHT
     a32[ b c d e f g a \bar "" \break b c d e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Stem #'direction = #DOWN
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #RIGHT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Stem.direction = #DOWN
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #RIGHT
     a32[ b c d e f g a b c d \bar "" \break e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Stem #'direction = #DOWN
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #LEFT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Stem.direction = #DOWN
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #LEFT
     a32[ b c d \bar "" \break e f g a b c d e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Stem #'direction = #DOWN
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #LEFT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Stem.direction = #DOWN
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #LEFT
     a32[ b c d e f g a \bar "" \break b c d e f g a ] \bar "|"
 } >>
 
 \new Staff <<
   \relative c' {
     \cadenzaOn
-    \override Staff . TimeSignature #'stencil = ##f
-    \override Voice . Stem #'direction = #DOWN
-    \override Voice . Beam #'breakable = ##t
-    \once \override Voice . Beam #'grow-direction = #LEFT
+    \override Staff.TimeSignature.stencil = ##f
+    \override Voice.Stem.direction = #DOWN
+    \override Voice.Beam.breakable = ##t
+    \once \override Voice.Beam.grow-direction = #LEFT
     a32[ b c d e f g a b c d \bar "" \break e f g a ] \bar "|"
 } >>
index 6d0234713230e7692fe13147ae18ec13e7c6a6b0..082d718fa3520e5e6e6ef5dfbe181b48950c4363 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
   texidoc="In feathered beams, stems in knees reach up to the feathered part correctly.
@@ -9,24 +9,24 @@
 \layout { ragged-right = ##t}
 
 \relative c' {
-  \override Beam #'grow-direction = #-1
-%  \override Beam #'transparent = ##t
-  \override Stem #'direction = #UP
+  \override Beam.grow-direction = #-1
+%  \override Beam.transparent = ##t
+  \override Stem.direction = #UP
   c32[
-  \override Stem #'direction = #DOWN
+  \override Stem.direction = #DOWN
 
   c''32 c32
-  \override Stem #'direction = #UP
+  \override Stem.direction = #UP
   c,,32]
 
-  \override Beam #'grow-direction = #1
-%  \override Beam #'transparent = ##t
-  \override Stem #'direction = #DOWN
+  \override Beam.grow-direction = #1
+%  \override Beam.transparent = ##t
+  \override Stem.direction = #DOWN
   c''32[
-  \override Stem #'direction = #UP
+  \override Stem.direction = #UP
 
   c,,32 c32
-  \override Stem #'direction = #DOWN
+  \override Stem.direction = #DOWN
   c''32]
 
 }
index b9afa451249756d6ae6ac09c6571189fd310e4a6..b21658c46b0c69f0c63827550af32f8cd7bfbedf 100644 (file)
@@ -6,7 +6,7 @@
   
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t
@@ -19,7 +19,7 @@
 %
 
 \featherDurations #(ly:make-moment 3 4) \relative c'' {
-  \override Beam #'grow-direction = #LEFT
+  \override Beam.grow-direction = #LEFT
   c16[
     c c c
     c c c c ] 
index 7bb865f849354000a29dbf38e8d132ed7c8d5f7b..d0f44becdcc1aaed29e214a5fc3c33b532d7a18c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
     texidoc = "In French style beaming, the stems do not go between beams."
@@ -8,7 +8,7 @@
 
 \relative c'
 {
-    \override Stem  #'french-beaming = ##t
+    \override Stem.french-beaming = ##t
     c16[ c c c]
     c8[ c16 e16 f16 g16 g8]
 }
index 303379b32670ece7365421c1517911627a5a4655..31bfcb9e543a5087df02ed589fd2e3697ccea616 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
   texidoc=" Funky kneed beams with beamlets also work. The beamlets
@@ -11,20 +11,20 @@ should be pointing to the note head.
 \layout { ragged-right = ##t}
 
 \relative c' {
-  \once \override Stem #'direction = #UP
+  \once \override Stem.direction = #UP
   c16
-  \once \override Stem #'direction = #DOWN
+  \once \override Stem.direction = #DOWN
 
   c''8 c,,16
-  \once \override Stem #'direction = #UP
+  \once \override Stem.direction = #UP
   c16
-  \once \override Stem #'direction = #DOWN
+  \once \override Stem.direction = #DOWN
 
   c''8 c16
-  \once \override Stem #'direction = #DOWN
+  \once \override Stem.direction = #DOWN
   
   c16 c,,8
-  \once \override Stem #'direction = #UP
+  \once \override Stem.direction = #UP
 
   c16          
 }
index 3d26b75d47c03e96f6893d4ba81a34c37b78d2ff..cf47dc9c50601f09d589c5d28c338a3b9dce06f4 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header {
   
   texidoc = "In complex configurations of knee beaming, according to
@@ -13,7 +13,7 @@ beam. This is in disagreement with the current algorithm."
 
 \relative c'
 {
-  \override Beam  #'auto-knee-gap = #7
+  \override Beam.auto-knee-gap = #7
   \set subdivideBeams = ##t         
   \time 8/8
   c,16[  g'''16  
index 15898c58d050ac3c1c89f0e9e0aa71b529f5022e..8ec0c42117dcee6d08260a71c7adbd67f1483857 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 
 \header {
        %%  \once.
        %%
 
-       \once \override Stem 
-       #'beaming = #(cons (list   1 2) (list 0 2 4))
+       \once \override Stem.beaming = #(cons (list   1 2) (list 0 2 4))
        c
-       \once \override Stem 
-       #'beaming = #(cons (list 0 2 4) (list 0 1 4))
+       \once \override Stem.beaming = #(cons (list 0 2 4) (list 0 1 4))
        c c c]
 }
 
index 4250947d158a58d9363791fe5c7417d60072f326..c238057e5a246f5f3fd9e771a25f056aaaf393f1 100644 (file)
@@ -3,7 +3,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##t
 }
@@ -16,7 +16,7 @@
     c]
 
   % only works for the right edge, sorry. 
-  \override Beam #'break-overshoot = #'(-0.5 . 0.5) 
+  \override Beam.break-overshoot = #'(-0.5 . 0.5) 
   \set stemLeftBeamCount = #2
   c8[
     c16
index b0522548d5ee3513bc4a6bfb078de3dd7dc6ee00..9e8b045a12b2f1242bb80099dfad148fa092f1a6 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header{
 
   texidoc=" Beams on ledgered notes should always reach the middle staff
@@ -18,9 +18,9 @@ note beams.  Override with @code{no-stem-extend}.  "
   f8[ f]   f64[ f] 
   \grace { 
     f8[ e8] 
-    \override Stem  #'no-stem-extend = ##f
+    \override Stem.no-stem-extend = ##f
     f8[ e8] 
-    \revert Stem #'no-stem-extend
+    \revert Stem.no-stem-extend
   }
   f8[ f]
   
index b1e959cb2bb80e4ec437a6abe3ed05e97144d6e0..40cfd61fa499464c5c94e8c1c1519f1e61326987 100644 (file)
@@ -8,7 +8,7 @@
 %% FIXME: This file should actually NOT produce any warnings!
 #(ly:set-option 'warning-as-error #f)
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout  {
   ragged-right = ##t
@@ -53,7 +53,7 @@ primes = \relative c' {
   \filler
 
 %{
-  \once \override Beam #'inspect-quants = #'(2.2 . 2.2)
+  \once \override Beam.inspect-quants = #'(2.2 . 2.2)
   \assertBeamQuant
   a8[ a]
   \filler
index eeadbfd798205e64ced0f5d4825a0524027e67d9..0593907d1b248185419b128722324710c4b6372f 100644 (file)
@@ -6,7 +6,7 @@ as invisible stems."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   ragged-right = ##t
@@ -15,7 +15,7 @@ as invisible stems."
 
 \relative c' {
   \times 2/3 {r8[ c' g']}
-  \override Stem #'stemlet-length = #0.5
+  \override Stem.stemlet-length = #0.5
   \times 2/3 {r8[ c, g']}
 }
 
index f90b743df3f91c8dd4c3bc745b3bb1b4713a3b24..4d8398ac6da165656e84187eceea9cd15854e16e 100644 (file)
@@ -6,9 +6,9 @@
 \layout {
   ragged-right = ##t
   }
-\version "2.16.0"
+\version "2.17.6"
 
 \relative c'' {
-  \override Stem #'max-beam-connect = #1
+  \override Stem.max-beam-connect = #1
   c16[ c16]
 }
index b8c0dc57eba4f4f008dcf8b5bd56b64fef0c3e98..a5c7a8175881af330a77912b935628344d5a7f85 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -13,7 +13,7 @@
 }
 
 \relative c'' {
-  \override Score.SpacingSpanner #'shortest-duration-space = #3.0
+  \override Score.SpacingSpanner.shortest-duration-space = #3.0
   c4-\bendAfter #+5
   c4-\bendAfter #+4
   c4-\bendAfter #+3
index 5074966e5f0fb6e524c64762e5defc0efb432ae4..5cf9f3ccd932d02a31626a3088089ac1c190cbc5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The default callback for break-align-anchor in clefs and time/@/key
@@ -7,14 +7,14 @@ the anchor to the extent of the break-aligned grob."
 }
 
 {
-  \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+  \override Score.RehearsalMark.break-align-symbols = #'(key-signature)
   c1
   \key cis \major
-  \once \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
+  \once \override Staff.KeySignature.break-align-anchor-alignment = #LEFT
   \mark \default
   cis1
   \key ces \major
-  \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT
+  \once \override Staff.KeySignature.break-align-anchor-alignment = #RIGHT
   \mark \default
   ces1
 }
index 54554b20c28adbbc8e06c37bdafb6277001e0c55..cb02069ac5fef90d7e6b72cb42c35a547914a74c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The break-align-anchor property of a break-aligned grob gives
@@ -6,13 +6,13 @@ the horizontal offset at which other grobs should attach."
 }
 
 {
-  \override Score.RehearsalMark #'break-align-symbols = #'(staff-bar)
+  \override Score.RehearsalMark.break-align-symbols = #'(staff-bar)
   c'1
-  \once \override Staff.BarLine #'break-align-anchor = #-5
+  \once \override Staff.BarLine.break-align-anchor = #-5
   \mark \default
   \noBreak
   c'1
-  \once \override Staff.BarLine #'break-align-anchor = #5
+  \once \override Staff.BarLine.break-align-anchor = #5
   \mark \default
   \noBreak
   c'1
index 5178c65c6de436c80d8ddd26fe3ad47ca887d235..55698bf2816966c6e1e65167ab4e0295a7cb3b7d 100644 (file)
@@ -36,3 +36,63 @@ finalis, the latter three looking similar to bar glyphs.
     \finalis
   }
 }
+
+mus = \relative f' {
+  \clef tenor
+  c g c
+  c \virgula g c
+  c \caesura g c
+  c \divisioMinima g c
+  c \divisioMaior g c
+  c \divisioMaxima g c
+  \finalis
+}
+
+\new Staff \with {
+  \remove Bar_engraver
+} {
+  \context Voice \with {
+    \remove Stem_engraver
+  } {
+    \mus
+} }
+
+\new Staff \with {
+  \override StaffSymbol #'line-positions = #'(-2 0 2 4)
+  \remove Bar_engraver
+} {
+  \context Voice \with {
+    \remove Stem_engraver
+  } {
+    \mus
+} }
+
+\new Staff \with {
+  \override StaffSymbol #'line-count = #6
+  \remove Bar_engraver
+} {
+  \context Voice \with {
+    \remove Stem_engraver
+  } {
+    \mus
+} }
+
+\new Staff \with {
+  \override StaffSymbol #'line-count = #2
+  \remove Bar_engraver
+} {
+  \context Voice \with {
+    \remove Stem_engraver
+  } {
+    \mus
+} }
+
+\new Staff \with {
+  \override StaffSymbol #'line-positions = #'(-4 -2 2 5)
+  \remove Bar_engraver
+} {
+  \context Voice \with {
+    \remove Stem_engraver
+  } {
+    \mus
+} }
index 90022d685370b114e953e9b7ae0e7c25a3f9dc26..ecf0f65244f20f216e86ccc600b142ff4408a9de 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Breathing signs are positioned correctly on custom staves
@@ -6,8 +6,8 @@ which use @code{line-positions}."
 }
 
 \relative c' {
-  \override Staff.StaffSymbol #'line-positions = #'(-7 -5 -3 -1)
+  \override Staff.StaffSymbol.line-positions = #'(-7 -5 -3 -1)
   b2 \breathe b
-  \override BreathingSign #'direction = #DOWN
+  \override BreathingSign.direction = #DOWN
   \breathe
 }
index 765aa9d7ec63102952e78f77743ba0aa2772c439..f9e37878598fdf168876402d2e16737f5efdd777 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header{
   texidoc="
 Breathing signs are available in different tastes: commas (default),
@@ -11,7 +11,7 @@ ticks, vees and `railroad tracks' (caesura)."
   \new Staff {
     \relative c'' {
       %% by default, \breathe uses the rcomma, just as if saying:
-      %% \override BreathingSign #'text =
+      %% \override BreathingSign.text =
       %%   #(make-musicglyph-markup "scripts.rcomma")
       %%
       c4 c \breathe c c |
@@ -19,23 +19,23 @@ ticks, vees and `railroad tracks' (caesura)."
       %% rvarcomma and lvarcomma are variations of the default rcomma
       %% and lcomma
       %%
-      \override Staff.BreathingSign #'text =
+      \override Staff.BreathingSign.text =
         #(make-musicglyph-markup "scripts.rvarcomma")
       c4 c \breathe c c |
 
       %% wedge
       %%
-      \override BreathingSign #'text =
+      \override BreathingSign.text =
         #(make-musicglyph-markup "scripts.upbow")
       c4 c \breathe c c |
 
       %% caesurae
       %%
-      \override BreathingSign #'text =
+      \override BreathingSign.text =
         #(make-musicglyph-markup "scripts.caesura.curved")
       c4 c \breathe c c |
 
-      \override BreathingSign #'text =
+      \override BreathingSign.text =
         #(make-musicglyph-markup "scripts.caesura.straight")
       c4 c \breathe c c |
     }
index 257445615db087a75cb91645c6b9cf8f3e36cba0..f55588e5245edec061c86a4733bc5374ea108e0b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header  {
   texidoc = "LilyPond knows that breves and longas are wider than whole notes
   gis'1
   gis'\breve*1/2
   gis'\longa*1/4
-  \override NoteHead #'style = #'altdefault 
+  \override NoteHead.style = #'altdefault 
   gis'\breve*1/2
 }
 
 \score {
     \new Staff {
       \repeat unfold 8 { a'\breve*1/16 }
-      \override NoteHead #'style = #'altdefault 
+      \override NoteHead.style = #'altdefault 
       \repeat unfold 8 { a'\breve*1/16 }
     }
     \layout {
         \context {
             \Score
-            \override SpacingSpanner
-            #'common-shortest-duration = #(ly:make-moment 1 1 )
+            \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 1 )
         }
     }
 }
diff --git a/input/regression/chord-name-override-text.ly b/input/regression/chord-name-override-text.ly
new file mode 100644 (file)
index 0000000..2877cc8
--- /dev/null
@@ -0,0 +1,13 @@
+\version "2.17.6"
+
+\header {
+  texidoc = "Users can override the @code{text} property of
+@code{ChordName}.
+"
+}
+
+\new ChordNames \chordmode {
+  a b c:7
+  \once \override ChordName.text = #"foo"
+  d
+}
\ No newline at end of file
diff --git a/input/regression/chord-tremolo-accidental.ly b/input/regression/chord-tremolo-accidental.ly
new file mode 100644 (file)
index 0000000..f5a89cb
--- /dev/null
@@ -0,0 +1,18 @@
+\version "2.17.2"
+
+\header {
+  texidoc = "Chord tremolos adapt to the presence of accidentals.
+"
+}
+
+{
+  \repeat tremolo 16 { c''32 d'' }
+  \repeat tremolo 16 { c''32 <dis''> }
+  \repeat tremolo 16 { c''32 <dis'' fis''> }
+  \repeat tremolo 8 { c''32 d'' }
+  \repeat tremolo 8 { c''32 <dis''> }
+  \repeat tremolo 8 { c''32 <dis'' fis''> }
+  \repeat tremolo 4 { c''32 d'' }
+  \repeat tremolo 4 { c''32 <dis''> }
+  \repeat tremolo 16 { b''32 <cis'''> }
+}
\ No newline at end of file
index 9e30bbd0d8e4d1fdc14f7a1ba0a4dbb9ee00f7ec..ccfeb1e5be351b55eaf60f156b3ab78c61467060 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header{
   texidoc="@code{staffLineLayoutFunction} is used to change the position of the notes.
 This sets @code{staffLineLayoutFunction} to @code{ly:pitch-semitones} to
@@ -21,7 +21,7 @@ scales = \relative c' {
   clefPosition = #(+ -6 7)
 }
 {
-  \override Staff.StaffSymbol #'line-count = #5
+  \override Staff.StaffSymbol.line-count = #5
   \time 4/4
   <<
     \scales
index 20b9622fa8fcf9fa3050266ada8b3a2b686ae8d1..c4cfe409928e470a7d00ff5f19655eeb14158869 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -13,13 +13,13 @@ These settings also need to apply to clefs on new lines."
 
 
 \relative c' {
-  \override Staff.OctavateEight #'break-visibility = #all-invisible
+  \override Staff.OctavateEight.break-visibility = #all-invisible
 
   \clef "treble_8"
   c2 c |
   c c | \break
   c \clef "tenor" c |
-  \revert Staff.OctavateEight #'break-visibility
+  \revert Staff.OctavateEight.break-visibility
   \clef "treble_8"
   c2 c |
   c c | \break
diff --git a/input/regression/clef-optional-octavation.ly b/input/regression/clef-optional-octavation.ly
new file mode 100644 (file)
index 0000000..93d60db
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.17.7"
+
+\header {
+
+  texidoc="Octavate symbols may be parenthesized or bracketed by using
+parentheses or brackets in the command string."
+
+}
+\score {
+  \new Staff {
+    \clef "G^(8)" g''1 |
+    \clef "bass_[15]" c,,1 |
+    \clef "C^(8)" c''1
+  }
+}
index b51fcfdd8ce8390783f932e89d884e0f0242c029..fa08917267df21349e49fc9bce9bc736cc2fc7ca 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header{
 
@@ -24,7 +24,7 @@ full size."
   \clef "varbaritone"c'1^"varbaritone" \bar "||"
   \clef "bass"c'1^"bass" \bar "||"
   \clef "subbass"c'1^"subbass" \bar "||"
-  \override Staff.Clef  #'full-size-change = ##t 
+  \override Staff.Clef.full-size-change = ##t 
   \clef "treble" c'1^"full-size-change = #t" \bar "|."
 }
 
index db3ad23783699487504311973b2d043991ad827d..273d0a4d6d8d11c60805844b8f97e8aef58ab06a 100644 (file)
@@ -1,6 +1,6 @@
 
 
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Clusters behave well across line breaks."
 }
@@ -16,16 +16,16 @@ fragment = \relative c' {
 <<
   \time 2/4 
   \new Staff {
-    \override ClusterSpanner #'style = #'ramp
+    \override ClusterSpanner.style = #'ramp
     \makeClusters \fragment
     r4
-    \override ClusterSpanner #'style = #'leftsided-stairs
+    \override ClusterSpanner.style = #'leftsided-stairs
     \makeClusters \fragment
     r4
-    \override ClusterSpanner #'style = #'rightsided-stairs
+    \override ClusterSpanner.style = #'rightsided-stairs
     \makeClusters \fragment
     r4
-    \override ClusterSpanner #'style = #'centered-stairs
+    \override ClusterSpanner.style = #'centered-stairs
     \makeClusters \fragment
     }
   
index 801e404063e3bdbadc0c5c64901f6196f33fba3b..38f8d4144c1446c5cfd3464bf73b81fa175489ce 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
     texidoc = "If dotted note heads must remain on the left side,
@@ -10,12 +10,12 @@ collision resolution moves the dots to the right."
 
 \relative c {
   \clef bass
-  \override Staff.NoteCollision #'prefer-dotted-right = ##t
+  \override Staff.NoteCollision.prefer-dotted-right = ##t
   << <b g' >4 ^"prefer-dotted-right = #t" \\ { c8. d16 } >>
   << <b g' >4 \\ { d8. d16 } >>
   << <b g' >4 \\ { f'8. d16 } >>
   << <c a' >4 \\ { g'8. d16 } >>
-  \override Staff.NoteCollision #'prefer-dotted-right = ##f
+  \override Staff.NoteCollision.prefer-dotted-right = ##f
   << <b g' >4 ^"prefer-dotted-right = #f" \\ { c8. d16 } >>
   << <b g' >4 \\ { d8. d16 } >>
   << <b g' >4 \\ { f'8. d16 } >>
index 229b12ca99ecca18cd2233a6dce56ec68a3d8ad5..b9db8bbcfdf6182d7bea575ee3c5a92276a25b93 100644 (file)
@@ -6,13 +6,13 @@
 
   }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper{ ragged-right=##t }
 
 \new Staff \relative c' <<
   { fis4.
-    \override Staff.NoteCollision #'prefer-dotted-right = ##f
+    \override Staff.NoteCollision.prefer-dotted-right = ##f
     fis4. }
   \\
   { \autoBeamOff e8 e e e e e e }
index da7b9b8577984fdc3767f894a3807d82c19ab1f3..685090b78adf710f8a465d7ac17aac2edac83e1e 100644 (file)
@@ -2,7 +2,7 @@
 
   texidoc = "Collision resolution may be forced manually with @code{force-hshift}. "
 }
-\version "2.16.0"
+\version "2.17.6"
 
 \paper  {
   ragged-right = ##t
@@ -10,7 +10,7 @@
 
 \relative c' {
   << {  f
-       \override NoteColumn #'force-hshift = #0.1
+       \override NoteColumn.force-hshift = #0.1
        f } \\
      {  e  e }
    >> 
index 6ecddba53e356f419c1f87f50c34b3775046a39e..9da7bed233e40b6623e29906e2fe38b15305624c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
     
     texidoc = "If @code{NoteCollision} has
@@ -13,7 +13,7 @@ should not disappear when merging similar note heads."
 \context Staff \relative c'' <<
   {
     g8[ g8]
-    \override Staff.NoteCollision  #'merge-differently-dotted = ##t
+    \override Staff.NoteCollision.merge-differently-dotted = ##t
     g8[ g8]
     g4. r8 g8. g16
     g8 g4 r8 g4
index b9300b2e065d090e45094f751692a31d3caa3811..7876e6a7fde80cd5d278c7167921ff575908613a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc =
 
@@ -14,7 +14,7 @@ if the black note heads are from 8th or shorter notes.
 
 \context Staff  \relative c'' <<
   {
-    \override Staff.NoteCollision  #'merge-differently-headed = ##t
+    \override Staff.NoteCollision.merge-differently-headed = ##t
     c2 c8 c4.
     c2
   }\\
index d34f227a88e9586971b87e43d6bf2b9c58607e51..3813a092654577607d61ac60e312a9c7fda90a42 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
  texidoc = "Mixed collisions with whole and longer notes
@@ -7,7 +7,7 @@
 
 \layout{ragged-right=##t}
 \relative c'' {
-  \override Score.NoteHead #'style = #'altdefault
+  \override Score.NoteHead.style = #'altdefault
   <<
     { c1 c2*2 c1 c4*4 c1 c\breve*1/2 c\breve*1/2 b\breve*1/2 }
     \\
index 37ad6ee8b68b102d9dcb0c12c821886d99d11d43..8f2c608e147361fbb83356e029a8b17927cc698b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header{
   texidoc = "Each grob can have a color assigned to it.
@@ -9,18 +9,18 @@ Use the @code{\\override} and @code{\\revert} expressions to set the
 \paper { ragged-right = ##t }
 
 \relative c' {
-  \override Accidental #'color = #darkgreen
-  \override Beam #'color = #cyan
-  \override NoteHead #'color = #darkyellow
+  \override Accidental.color = #darkgreen
+  \override Beam.color = #cyan
+  \override NoteHead.color = #darkyellow
   c4
-  \override NoteHead #'color = #red
+  \override NoteHead.color = #red
   f
-  \override NoteHead #'color = #darkmagenta
+  \override NoteHead.color = #darkmagenta
   g
-  \override NoteHead #'color = #darkblue
+  \override NoteHead.color = #darkblue
   b
-  \override NoteHead #'color = #green
-  \override Stem #'color = #blue
-  \override Flag #'color = #magenta
+  \override NoteHead.color = #green
+  \override Stem.color = #blue
+  \override Flag.color = #magenta
   e8 es d dis e4 r
 }
index 0fb7730f4de32e81138975202e15f895427a5e30..cbf266480929f1c0ec507c03bcb30e2abc337107 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
     texidoc = "Create compound time signatures. The argument is a Scheme list
@@ -16,6 +16,7 @@ as @code{\\compoundMeter #'((3 2 8))} or shorter
 
 
 \relative c' {
+  \override Staff.TimeSignature.break-visibility = #'#(#f #t #t)
   \compoundMeter #'(1 2 3 4 8)
   \repeat unfold 10 c8 \repeat unfold 20 c16 \break
 
index 81241dc9821e18a5fcadde7411035ddaa83a460f..5f3bb9901bf98772c9f0f818d38e28365d0b24e3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header  {
 texidoc = "Context modifications can be stored into a variable as a
@@ -9,7 +9,7 @@ texidoc = "Context modifications can be stored into a variable as a
 ctxmod = \with {
   \remove "Time_signature_engraver"
   \consists "Ambitus_engraver"
-  \override StaffSymbol #'line-count = 4
+  \override StaffSymbol.line-count = 4
 }
 
 music = \relative c'' { \key fis \minor c1 d e }
@@ -20,7 +20,7 @@ music = \relative c'' { \key fis \minor c1 d e }
   \layout {
     \context { \Staff
       \ctxmod
-      \override NoteHead #'style = #'petrucci
+      \override NoteHead.style = #'petrucci
     }
   }
 }
@@ -31,8 +31,8 @@ music = \relative c'' { \key fis \minor c1 d e }
   >>
   \layout {
     \context { \Staff
-      \override StaffSymbol #'line-count = 3
-      \override NoteHead #'style = #'petrucci
+      \override StaffSymbol.line-count = 3
+      \override NoteHead.style = #'petrucci
     }
     % Should override the above definitions, but not reset others
     \context { \Staff
index abc8baec711ac3be3e46a8871d129428ca52e3a0..3857cd1593c0d9614ec6063ee07cb93d8c06aef4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header  {
 texidoc = "Context modifications can be stored into a variable as a
@@ -9,37 +9,64 @@ texidoc = "Context modifications can be stored into a variable as a
 ctxmod = \with {
   \remove "Time_signature_engraver"
   \consists "Ambitus_engraver"
-  \override StaffSymbol #'line-count = 4
+  \override StaffSymbol.line-count = 4
 }
 
+\layout {
+  \context {
+    \Score
+    \remove "Mark_engraver"
+    \remove "Staff_collecting_engraver"
+  }
+  \context {
+    \Staff
+    \consists "Mark_engraver"
+    \consists "Staff_collecting_engraver"
+  }
+}
+
+
 music = \relative c'' { \key fis \minor c1 d e }
 
 \score { <<
+  \override Score.RehearsalMark.self-alignment-X = #LEFT
+  \override Score.RehearsalMark.font-size = #-2
   % No modifications:
-  \new Staff { \music }
-  % Some context modifications manually written in a \with block
+  \new Staff { \mark \markup { No modifications } \music }
   \new Staff \with {
     \remove "Time_signature_engraver"
     \consists "Ambitus_engraver"
-    \override StaffSymbol #'line-count = 4
-  } { \music }
+    \override StaffSymbol.line-count = 4
+  } {
+    \mark
+    \markup { "Remove time sig, add ambitus, set staff to 4 lines" }
+    \music }
+  % Some context modifications manually written in a \with block
+  \new Staff \with \ctxmod {
+    \mark \markup { "The same mods using a variable" } \music
+  }
   % The same mods as direct value of \with
-  \new Staff \with \ctxmod { \music }
-  % Mods as part of a \with block
-  \new Staff \with { \ctxmod } { \music }
+  \new Staff \with { \ctxmod } {
+    \mark \markup { "The same mods using a variable and \with" }
+    \music
+  }
   % Mods before a context mod in a with block are working:
   \new Staff \with {
     \remove "Clef_engraver"
     \ctxmod
-  } { \music }
+  } {
+    \mark
+    \markup { "Remove clef and use variable to add other changes as above" }
+    \music
+  }
   % Mods before and after a context mod in a with block are working:
   \new Staff \with {
     \remove "Clef_engraver"
     \ctxmod
     \remove "Key_engraver"
-  } { \music }
+  } { \mark \markup { "Also remove clef and key engravers" } \music }
   % Mods can be inserted instead of a \with block (i.e. \with is not required)
-  \new Staff \ctxmod { \music }
-  \new Staff { \music }
+  \new Staff \ctxmod { \mark \markup { "The same mods as staff 2" } \music }
+  \new Staff { \mark \markup { "Back to default" } \music }
 >>
 }
index d514fc18739fe06e67492108cc943ff14b3e226b..0969fbcb62a13ed0b4bd126462c037df3d025b22 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 instrument = \relative c' {
   \repeat unfold 40 { c8 }
@@ -9,8 +9,8 @@ Solo = \relative c' {
   c2 c |
   
   % Change the break-align-orders of the score so that cue-clef comes after bar-line
-  \override Score.BarLine #'space-alist #'cue-clef = #'(minimum-space . 1.0)
-  \override Score.BreakAlignment #'break-align-orders  =
+  \override Score.BarLine.space-alist.cue-clef = #'(minimum-space . 1.0)
+  \override Score.BreakAlignment.break-align-orders  =
     ##(( ;; end-of-line:
          left-edge cue-end-clef ambitus breathing-sign clef staff-bar
          key-cancellation key-signature time-signature cue-clef custos)
@@ -25,8 +25,8 @@ Solo = \relative c' {
   c2 c2 |
   
   % Revert back to default
-  \revert Score.BarLine #'(space-alist cue-clef)
-  \revert Score.BreakAlignment #'break-align-orders
+  \revert Score.BarLine.space-alist.cue-clef
+  \revert Score.BreakAlignment.break-align-orders
   \cueDuringWithClef #"instrQuote" #UP #"bass" { R1 }
   c2 c2 |
 }
diff --git a/input/regression/cue-clef-optional-octavation.ly b/input/regression/cue-clef-optional-octavation.ly
new file mode 100644 (file)
index 0000000..cdc6206
--- /dev/null
@@ -0,0 +1,27 @@
+\version "2.17.7"
+
+\header {
+  texidoc = "Optional octavation for clefs for cue notes is
+supported by using parentheses or brackets around the octavation number."
+}
+
+vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 }
+\addQuote vIQuote { \vI }
+
+Solo = \relative c' {
+  \clef "treble_8" c1 |
+  \cueDuringWithClef #"vIQuote" #UP #"bass^(15)" { R1 } |
+  c1 | \break
+  c c
+  \clef "bass^8" c1 |
+  \cueDuringWithClef #"vIQuote" #UP #"G_[8]" { R1 R1 } |
+  c
+  \cueDuringWithClef #"vIQuote" #UP #"treble_(8)" { R1 \break R } |
+  c
+}
+
+\score {
+  <<
+    \new Staff \new Voice \Solo
+  >>
+}
index 1ffaddae8d85e063fc99e4ae3b0b55c59d7a2b8b..b129343a6e044bf29f1ac296a0cf44103604b855 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
     texidoc = "Custodes may be engraved in various styles."
 }
 
 
 {
-  \override Staff.Custos  #'neutral-position = #4
+  \override Staff.Custos.neutral-position = #4
 
-  \override Staff.Custos  #'style = #'hufnagel
+  \override Staff.Custos.style = #'hufnagel
   c'1^"hufnagel"
   \break < d' a' f''>1
 
-  \override Staff.Custos  #'style = #'medicaea
+  \override Staff.Custos.style = #'medicaea
   c'1^"medicaea"
   \break < d' a' f''>1
 
-  \override Staff.Custos  #'style = #'vaticana
+  \override Staff.Custos.style = #'vaticana
   c'1^"vaticana"
   \break < d' a' f''>1
 
-  \override Staff.Custos  #'style = #'mensural
+  \override Staff.Custos.style = #'mensural
   c'1^"mensural"
   \break < d' a' f''>1
 }
index 64075f0fde4271a6848aa9e0b65adbb5e0b2b4b8..2ecae684e4bd1a6acfeb2cae157e06ab404de52c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 #(use-modules (srfi srfi-13)
               (ice-9 format))
 
@@ -211,13 +211,13 @@ stderr of this run."
 \test ##[ \unset Score . skipBars #]           % PropertyUnset
 \test ##[ \unset autoBeaming #]
 %% Layout properties
-\test ##[ \override Staff . Stem #'thickness = #4.0 #]         % OverrideProperty
-\test ##[ \once \override Beam #'beam-thickness = #0.6 #]
-\test ##[ \revert Staff . Stem #'thickness #]          % RevertProperty
-\test ##[ \revert Beam #'beam-thickness #]
+\test ##[ \override Staff.Stem.thickness = #4.0 #]             % OverrideProperty
+\test ##[ \once \override Beam.beam-thickness = #0.6 #]
+\test ##[ \revert Staff.Stem.thickness #]              % RevertProperty
+\test ##[ \revert Beam.beam-thickness #]
 \test "NOT A BUG" ##[ \oneVoice #]     % resetting a bunch of properties
-\test ##[ \override StaffGrouper #'(staff-staff-spacing basic-distance) = #7 #]    % nested properties
-\test ##[ \revert StaffGrouper #'(staff-staff-spacing basic-distance) #]    % nested properties
+\test ##[ \override StaffGrouper.staff-staff-spacing.basic-distance = #7 #]    % nested properties
+\test ##[ \revert StaffGrouper.staff-staff-spacing.basic-distance #]    % nested properties
 
 %% \applyOutput
 \test ##[ \applyOutput #'Foo #(lambda (arg) (list)) #]
@@ -241,11 +241,11 @@ stderr of this run."
 \test ##[ \ottava #1 #]    % OttavaMusic
 
 %% \tweak
-\test ##[ < \tweak #'duration-log #2 c > #]
-\test ##[ < c \tweak #'transparent ##t e > #]
-\test ##[ < \tweak #'color #'(1.0 0.0 0.0) \tweak #'duration-log #2 c > #]
-\test ##[ c-\tweak #'font-size #3 -> #]
-\test ##[ < \tweak Accidental #'color #'(1.0 0.0 0.0) cis eis g > #]
+\test ##[ < \tweak duration-log #2 c > #]
+\test ##[ < c \tweak transparent ##t e > #]
+\test ##[ < \tweak color #'(1.0 0.0 0.0) \tweak duration-log #2 c > #]
+\test ##[ c-\tweak font-size #3 -> #]
+\test ##[ < \tweak Accidental.color #'(1.0 0.0 0.0) cis eis g > #]
 
 %% end test.
 
index 3b4d7af790c3dbadd7c8b4a16ec04415e056bef0..7d2d1ab29352835792c469b5c1790b1a3a0a8029 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The @code{dot-count} property
@@ -8,8 +8,8 @@ for @code{Dots} can be modified by the user."
 
 \relative c'' {
   c4.. a16
-  \override Dots #'dot-count = #4
+  \override Dots.dot-count = #4
   g4.. e16
-  \override Dots #'dot-count = #0
+  \override Dots.dot-count = #0
   c4. r8 r2
 }
index 08cc5f835de71f83dab6ae26d0147c7ab267c0a1..9ce981dc5912a4fca128df4c9052de31a4cebdc8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.5"
 
 \header {
   texidoc = "Three types of double repeat bar line are supported."
@@ -7,7 +7,7 @@
   \new Staff \relative c' {
     c1
     \mark "\":|:\""
-    \bar ":|:"
+    \bar ":..:"
     c1
     \mark "\":|.|:\""
     \bar ":|.|:"
index 706fe0214a31083b469a16d1ae2875911d58c788..b0479b1ddf2a1b3464cbbfc3c4554d04ab7e5916 100644 (file)
@@ -7,7 +7,7 @@
 }
 
 
-\version "2.16.0"
+\version "2.17.6"
 
 drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh \repeat "unfold" 5 {hhc8 hho hhc8 hh16 hh} hhc4 r4 r2 }
 drl = \drummode {\repeat "unfold" 3 {bd4 sn8 bd bd4 << bd ss >> } bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
@@ -18,8 +18,8 @@ timb = \drummode { \repeat "unfold" 2 {timh4 ssh timl8 ssh r timh r4 ssh8 timl r
     <<
       \new DrumStaff \with {
        drumStyleTable = #timbales-style
-       \override StaffSymbol #'line-count = #2
-       \override BarLine #'bar-extent = #'(-1 . 1)
+       \override StaffSymbol.line-count = #2
+       \override BarLine.bar-extent = #'(-1 . 1)
       } <<
        \set Staff.instrumentName = "timbales"
        \timb
index c6165db8567c5fa9dbfdff9042a05f780b41bcb3..69128631f656a33ad542fd95606c1f97813efc01 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Setting the style of a @code{DynamicTextSpanner} to @code{'none}
@@ -7,7 +7,7 @@ to hide the line altogether should also work over line breaks.
 }
 
 \relative c'' {
-  \override DynamicTextSpanner #'style = #'none
+  \override DynamicTextSpanner.style = #'none
   c2\cresc g,2
   \break
   g2 c'2\f
index 4211b4f891e871453860db09ac268f130dd72585..fd38e75b99d0046a3e44f35c3e4ceb510f40c280 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "If the line for a @code{DynamicTextSpanner} is hidden, the
@@ -10,7 +10,7 @@ dynamics to be unlinked."
   g4\p\cresc g g g
   g,1\f
 
-  \override DynamicTextSpanner #'style = #'none
+  \override DynamicTextSpanner.style = #'none
   g'4\p\cresc g g g
   g,1\f  
 }
diff --git a/input/regression/dynamics-avoid-cross-staff-stem-2.ly b/input/regression/dynamics-avoid-cross-staff-stem-2.ly
new file mode 100644 (file)
index 0000000..e549646
--- /dev/null
@@ -0,0 +1,23 @@
+\version "2.17.2"
+
+\header {
+  texidoc = "Dynamics do not horizontally shift when attached to
+an axis-group extremal cross staff grob that's extremal side
+(UP or DOWN) is the same as its direction.
+"
+}
+
+\new PianoStaff <<
+  \new Staff = "up" {
+    s1 |
+  }
+  \new Staff = "down" {
+    \clef bass
+    \stemDown
+    % keep staff alive
+    <c,, c,>8 [ <c,, c,>8_\f
+    \change Staff = "up"
+    g' g' ]
+    r2 |
+  }
+>>
index e21ee623e231c05d6267d5f889ef02008fa2cbad..083585c31da06566e1a726eec1e5217dd70c9a8a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Text spanners work in the @code{Dynamics} context."
@@ -9,7 +9,7 @@
     c1 | c
   }
   \new Dynamics {
-    \override TextSpanner #'(bound-details left text) = #"rit."
+    \override TextSpanner.bound-details.left.text = #"rit."
     s1\startTextSpan
     s1\stopTextSpan
   }
index 0a8b0120e1d1944536392651767c95be28b7fed6..1e3c4c6c3c2c25d2ff0b0120b92fd8837e083833 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "The space between an absolute dynamic and a dynamic text
 span can be changed using @code{'right-padding}.
@@ -7,6 +7,6 @@ span can be changed using @code{'right-padding}.
 
 \relative c' {
   \dimTextDim
-  \once \override DynamicText #'right-padding = #0
+  \once \override DynamicText.right-padding = #0
   c4\fff\> c c c\!
 }
index c810ba9c22c1a04ed73f1dd15ea4c818c45764f1..d8095a8d0af4faed4eaa6efe67cbcafca2ab1cf9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
     texidoc = " Easy-notation (or Ez-notation) prints names in note heads.
@@ -11,6 +11,6 @@ You also get ledger lines, of course."
   f2 e
   f4 e
   
-  \override NoteHead #'note-names = #'#("U" "V" "W" "X" "Y" "Z" "z")
+  \override NoteHead.note-names = #'#("U" "V" "W" "X" "Y" "Z" "z")
   c2 d4 e
 }
index 5de09630a0d37a33eef39d00def5fe9cc4ebfa61..0e71ae8bdc0449f9312c97d216205661360881ad 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "An episema can be typeset over a single neume or a
@@ -9,7 +9,7 @@ melisma.  Its position is quantized between staff lines."
 \include "gregorian.ly"
 
 \new VaticanaVoice {
-  \revert Score.SpacingSpanner #'packed-spacing
+  \revert Score.SpacingSpanner.packed-spacing
   a\episemInitium\episemFinis
   \[ a\episemInitium \pes b \flexa a\episemFinis \]
   \[ a\episemInitium \pes b \flexa a b\episemFinis \flexa a \]
index b7af7fb715e66b44a948625c4aafcee0dca6726e..aa3d171c6baddb0519ff8e25872adece032b6543 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Music events can be extracted from a score with event
@@ -18,18 +18,18 @@ st =
   (parser location text)
   (string?)
 #{
-  \override TextSpanner #'(bound-details left text) = $text
+  \override TextSpanner.bound-details.left.text = $text
 #})
 
 
 vlnone = \new Staff {
   \set Staff.instrumentName = "violin-1"
   \set Staff.midiInstrument = "violin"
-  \override TextSpanner #'style = #'line
-  \override TextSpanner #'(bound-details right padding) = #-1
-  \override TextSpanner #'(bound-details left stencil-align-dir-y) =
+  \override TextSpanner.style = #'line
+  \override TextSpanner.bound-details.right.padding = #-1
+  \override TextSpanner.bound-details.left.stencil-align-dir-y =
     #CENTER
-  \override TextSpanner #'(bound-details right text) =
+  \override TextSpanner.bound-details.right.text =
     \markup { \draw-line #'(0 . -1) }
 \relative c' {
   \key d \major
index fc5a718b99f41d0ae234968f7268dbd34e80940f..73dce5c74467f91c11f9dfaf4fda8a950aff1dc6 100644 (file)
@@ -25,10 +25,9 @@ bassfigures = \figuremode {
 #(define (adjust-slash-stencil-default num forward stencil mag)
     stencil)
 
-unsetExceptions = #(define-music-function (parser location) ()
+unsetExceptions = #(define-void-function (parser location) ()
 ;  (set! horizontal-slash-interval horizontal-slash-interval-default)
 ;  (set! adjust-slash-stencil adjust-slash-stencil-default)
-  (make-music 'Music 'void #t)
 )
 
 <<
index 5d445a1b521d986855e44bdca55aaa8936e048be..a5a9cde1fc39ade9b43578bf61d6aa00e0422c37 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -35,7 +35,7 @@ You can also enter markup strings. The vertical alignment may also be tuned.
     <3 6\\ >
     <"V7" ["bla" 6] \markup{ \musicglyph #"rests.2"} >
 
-    \once \override BassFigureAlignment #'stacking-dir = #UP
+    \once \override BassFigureAlignment.stacking-dir = #UP
     <3 [5 7]>
     
   }
index ba89ec62336f06c65f99c45121f88ef818115775..488245c2e6e85a37de94aa3eca457f59a05af5ae 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
   texidoc = "It is possible to associate
@@ -23,7 +23,7 @@ if @code{'add-stem-support} is set.
   \set fingeringOrientations = #'(down left up)
   < c-1  e-2 g-3 b-5 > 4
 
-  \once \override Fingering  #'staff-padding = #'()
+  \once \override Fingering.staff-padding = #'()
   < c-1  e-2 g-3 b-5 > 4
 
   \set fingeringOrientations = #'(up right)
@@ -32,7 +32,7 @@ if @code{'add-stem-support} is set.
   \set fingeringOrientations = #'(right)
   < c-1  e-2 g-3 b-5 > 8
 
-  \override Fingering #'add-stem-support = ##t
+  \override Fingering.add-stem-support = ##t
   \set fingeringOrientations = #'(up right)
   < c-1  e-2 g-3 b-5 > 4.
 
diff --git a/input/regression/fingering-column.ly b/input/regression/fingering-column.ly
new file mode 100644 (file)
index 0000000..ccf0aaf
--- /dev/null
@@ -0,0 +1,16 @@
+\version "2.17.6"
+
+\header {
+  texidoc = "Horizontal @code{Fingering} grobs that collide do not intersect.
+Non-intersecting @code{Fingering} grobs are left alone.
+"
+}
+
+\relative c'' {
+   \set fingeringOrientations = #'(left)
+   \override Fingering.staff-padding = #'()
+   \override Fingering.add-stem-support = ##f
+   <d-0 c-3 f,-0>4 <d-0 f,-3 e-0>
+   <d^0 c^3 f,-0> <d^0 f,-0> <c^3 f,-0>
+   <d-0 c-0 b-0 a-0 g-0 f-0>
+}
index 61760733de3723b00b70bb262cdb1811dcdc3a6e..26b91610c6dc1905b7a3176d055c1e39b521d5d7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Fingerings work correctly with cross-staff beams."
@@ -19,7 +19,7 @@ music = \relative c {
       \stemUp \music }
     \new Staff="down" \new Voice { 
       \clef bass  \stemDown 
-      \override Fingering #'direction = #down 
+      \override Fingering.direction = #down 
       \transpose c c, \music }
   >>
 }
index 4b27eb8ca057c51130d25f5ddbd5744ef1181e49..3e815ea322182482132186910d271bb5a26fb20e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 #(set-global-staff-size 17)
 
 \header {
@@ -22,54 +22,54 @@ testnotes = { \autoBeamOff
 % Old settings: style set to default, 'mensural, 'no-flag; using the
 % default C++ function ly:stem::calc-stem
 {
-  \override Score.RehearsalMark #'self-alignment-X = #LEFT
+  \override Score.RehearsalMark.self-alignment-X = #LEFT
   \time 2/4
 
   \mark "Default flags (C++)"
   \testnotes
 
   \mark "Symbol: 'mensural (C++)"
-  \override Flag #'style = #'mensural
+  \override Flag.style = #'mensural
   \testnotes
 
   \mark "Symbol: 'no-flag (C++)"
-  \override Flag #'style = #'no-flag
+  \override Flag.style = #'no-flag
   \testnotes
 }
 
 % The same, but using the Scheme implementation of default-flag
 {
-  \override Score.RehearsalMark #'self-alignment-X = #LEFT
+  \override Score.RehearsalMark.self-alignment-X = #LEFT
   \time 2/4
 
-  \override Flag #'stencil = #default-flag
-  \revert Flag #'style
+  \override Flag.stencil = #default-flag
+  \revert Flag.style
   \mark "Default flags (Scheme)"
   \testnotes
 
   \mark "Symbol: 'mensural (Scheme)"
-  \override Flag #'style = #'mensural
+  \override Flag.style = #'mensural
   \testnotes
 
   \mark "Symbol: 'no-flag (Scheme)"
-  \override Flag #'style = #'no-flag
+  \override Flag.style = #'no-flag
   \testnotes
 }
 
 % New scheme functions: normal-flag, mensural-flag, no-flag
 {
-  \override Score.RehearsalMark #'self-alignment-X = #LEFT
+  \override Score.RehearsalMark.self-alignment-X = #LEFT
   \time 2/4
 
   \mark "Function: normal-flag"
-  \override Flag #'stencil = #normal-flag
+  \override Flag.stencil = #normal-flag
   \testnotes
 
   \mark "Function: mensural-flag"
-  \override Flag #'stencil = #mensural-flag
+  \override Flag.stencil = #mensural-flag
   \testnotes
 
   \mark "Function: no-flag"
-  \override Flag #'stencil = #no-flag
+  \override Flag.stencil = #no-flag
   \testnotes
 }
index 23f2d563e5de11197e70ce0969c4cce13b403aa0..d18c1bef2dfc3d8244d2f52ed1542d55b48087ff 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The 'stencil property of the Flag grob can be set to a custom
@@ -35,14 +35,14 @@ testnotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64 c''8 d''1
     (ly:stencil-translate rotated-flag (cons (- (/ stem-width 2))  0))))
 
 {
-  \override Score.RehearsalMark #'self-alignment-X = #LEFT
+  \override Score.RehearsalMark.self-alignment-X = #LEFT
   \time 2/4
   \mark "Function: weight-flag (custom)"
-  \override Flag #'stencil = #weight-flag
+  \override Flag.stencil = #weight-flag
   \testnotes
 
   \mark "Function: inverted-flag (custom)"
-  \override Flag #'stencil = #inverted-flag
+  \override Flag.stencil = #inverted-flag
   \testnotes
 
 }
index 8fc0d1245e3790ea31e4105fd03158330dd73cfb..7bda48a5e0571a609e3c9b06c4b3072de7fc1c67 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 texidoc = "Flags can be drawn straight in the style used by
@@ -10,15 +10,15 @@ Stockhausen and Boulez.
 stemLength = #(define-music-function (parser location length) (number?)
   "Set the length of the next stem explicitly."
   #{
-    \once \override Stem #'length-fraction = #length
+    \once \override Stem.length-fraction = #length
   #}
 )
 
 {
     \autoBeamOff
     \time 3/8
-    \override Flag #'stencil = #modern-straight-flag
-    \override Stem #'length-fraction = #'1.5
+    \override Flag.stencil = #modern-straight-flag
+    \override Stem.length-fraction = #'1.5
     r8
     \acciaccatura {
          \stemDown
index 877d4ca4064b77dc7e85284103211d60eaf79c37..80eb28c7f63de3586aa10e22dc0da8eb295ffd18 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Straight flag styles."
@@ -10,14 +10,14 @@ testnotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64
    c''8 d''16 c''32 d''64 \acciaccatura {\stemDown c''8 \stemNeutral} d''64  }
 
 {
-  \override Score.RehearsalMark #'self-alignment-X = #LEFT
+  \override Score.RehearsalMark.self-alignment-X = #LEFT
   \time 2/4
   \mark "modern straight"
-  \override Flag #'stencil = #modern-straight-flag
+  \override Flag.stencil = #modern-straight-flag
   \testnotes
 
   \mark "old straight (large angles)"
-  \override Flag #'stencil = #old-straight-flag
+  \override Flag.stencil = #old-straight-flag
   \testnotes
 %
 %   \mark "custom slant"
@@ -25,6 +25,6 @@ testnotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64
 % %                flag thickness and spacing
 % %                up-flag angle and length
 % %               down-flag angle and length
-%   \override Flag #'stencil = #(straight-flag 0.35 0.8 -5 0.5 60 2.0)
+%   \override Flag.stencil = #(straight-flag 0.35 0.8 -5 0.5 60 2.0)
 %   \testnotes
 }
index 61166e865a13b163883d2676cb95dc194eb9a617..dac42fe513bc01688e31a488e8a6e3d54495f1c1 100644 (file)
@@ -5,7 +5,7 @@ This may happen with incorrect font versions.
 "
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##T
@@ -19,7 +19,7 @@ This may happen with incorrect font versions.
   \layout {
     \context {
       \Score
-      \override PaperColumn #'keep-inside-line = ##f
+      \override PaperColumn.keep-inside-line = ##f
     }
   }
 }
index 84a0a4fcea20764d921731368f54170c21b5b264..228bcaa0723e16e23813de6b853e3a7ae7b08294 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   % change for other default global staff size.
@@ -55,7 +55,7 @@
   \layout {
     \context {
       \Score
-      \override PaperColumn #'keep-inside-line = ##f
+      \override PaperColumn.keep-inside-line = ##f
     }
   }
 
index 523fc6f66d035ff1253c920ab36047e4fddae324..d0e9a472c51c0e08f0a31c64015a38395773d383 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -13,11 +13,11 @@ without size specification."
 
 
 {
-  \override Score.PaperColumn #'keep-inside-line = ##f
-  \override Staff.TimeSignature  #'font-name = #"Times New Roman"
+  \override Score.PaperColumn.keep-inside-line = ##f
+  \override Staff.TimeSignature.font-name = #"Times New Roman"
   \time 3/4
   \set Score.skipBars = ##t
-  \override Staff.MultiMeasureRestText #'font-name = #"LuxiMono"
+  \override Staff.MultiMeasureRestText.font-name = #"LuxiMono"
   R1*21^"Rest in LuxiMono"
 
   c'1_\markup {
index 0d8c91b0c050904007bbce393bfc662c34ee0fe9..58799d03dc61dbdfcce692fabb6342806c13d02e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "This is an example of automatic footnote numbering
 where the number is reset on each page.  It uses the symbol-footnotes
@@ -24,7 +24,7 @@ have been reached.
 \markup { h i }
 
 \relative c' {
-\footnote #'(1 . -1) #'NoteHead \markup { j } \default
+\footnote #'(1 . -1) \markup { j } NoteHead
 a b c d }
 
 \pageBreak
index 0206dc1e343b74755dcac363c49cf986728e9c1f..61c156b3ffd5676708b6945b7ecced62e58017fb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "This regtest makes sure that footnote numbers are laid out
 in the correct vertical order.
@@ -30,59 +30,59 @@ in the correct vertical order.
     <<
       \new Staff \relative c' {
         d4 e
-        \once \override FootnoteItem #'numbering-assertion-function =
+        \once \override FootnoteItem.numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 0))
         < f \footnote #'(1 . -1) \markup { n } a c >
-        \once \override FootnoteSpanner #'numbering-assertion-function =
+        \once \override FootnoteSpanner.numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 2 4)
         a8-\footnote #'(1 . 1) \markup { p } \<
        -\footnote #'(1 . 1) \markup { o } [ b c d ] a4 b c\f |
         d a b c |\break
         d,4 e
-        \once \override FootnoteItem #'numbering-assertion-function =
+        \once \override FootnoteItem.numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 6))
         < f \footnote #'(1 . -1) \markup { n } a c >
-        \once \override FootnoteSpanner #'numbering-assertion-function =
+        \once \override FootnoteSpanner.numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 8 10)
         a8-\footnote #'(1 . 1) \markup { p } \<
        -\footnote #'(1 . 1) \markup { o } [ b c d ] a4 b c |
         d a b c\f |\pageBreak
         d,4 e
-        \once \override FootnoteItem #'numbering-assertion-function =
+        \once \override FootnoteItem.numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 12))
         < f  \footnote #'(1 . -1) \markup { n } a c >
-        \once \override FootnoteSpanner #'numbering-assertion-function =
+        \once \override FootnoteSpanner.numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 14 16)
         a8-\footnote #'(1 . 1) \markup { p } \<
-       -\footnote #'(1 . 1) #'Beam \markup { o } [ b c d ] a4 b c |
+       -\single\footnote #'(1 . 1) \markup { o } Beam [ b c d ] a4 b c |
         d a b c\! |\break
       }
       \new Staff \relative c' {
         d4 e
-        \once \override FootnoteItem #'numbering-assertion-function =
+        \once \override FootnoteItem.numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 1))
         < f \footnote #'(1 . -1) \markup { n } a c >
-        \once \override FootnoteSpanner #'numbering-assertion-function =
+        \once \override FootnoteSpanner.numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 3 5)
-        a8-\footnote #'(1 . 1) #'Hairpin \markup { p } \<
+        a8-\single\footnote #'(1 . 1) \markup { p } Hairpin \<
        -\footnote #'(1 . 1) \markup { o } [ b c d ] a4 b c\f |
         d a b c |\break
         d,4 e
-        \once \override FootnoteItem #'numbering-assertion-function =
+        \once \override FootnoteItem.numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 7))
         < f \footnote #'(1 . -1) \markup { n } a c >
-        \once \override FootnoteSpanner #'numbering-assertion-function =
+        \once \override FootnoteSpanner.numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 9 11)
         a8-\footnote #'(1 . 1) \markup { p } \<
        -\footnote #'(1 . 1) \markup { o } [ b c d ] a4 b c |
         d a b c\f |\pageBreak
         d,4 e
-        \once \override FootnoteItem #'numbering-assertion-function =
+        \once \override FootnoteItem.numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 13))
         < f \footnote #'(1 . -1) \markup { n } a c >
-        \once \override FootnoteSpanner #'numbering-assertion-function =
+        \once \override FootnoteSpanner.numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 15 17)
-        a8-\footnote #'(1 . 1) #'Hairpin \markup { p } \<
+        a8-\single\footnote #'(1 . 1) \markup { p } Hairpin \<
        -\footnote #'(1 . 1) \markup { o } [ b c d ] a4 b c |
         d a b c\! |\break
       }
index 333bcbdfa616d71ae5e1c678769b8f0faac059b4..9520780fce00ac550d38beb8053d3e2dc2078a2f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "This is an example of automatic footnote numbering
 where the number is not reset on each page.  It uses the default
@@ -38,9 +38,9 @@ footnotes.
 \markup { h i }
 
 \relative c' {
-  \once \override FootnoteItem #'numbering-assertion-function =
+  \once \override FootnoteItem.numbering-assertion-function =
     #(lambda (grob) (make-footnote-numbering-assertion-function 3))
-  \footnote #'(1 . -1) #'NoteHead \markup { j } \default
+  \footnote #'(1 . -1) \markup { j } NoteHead
   a b c d
 }
 
@@ -52,10 +52,10 @@ footnotes.
 
 \relative c' {
   d4 e
-  \once \override FootnoteItem #'numbering-assertion-function =
+  \once \override FootnoteItem.numbering-assertion-function =
     #(lambda (grob) (make-footnote-numbering-assertion-function 5))
   < f \footnote #'(1 . -1) \markup { n } a c >
-  \once \override FootnoteSpanner #'numbering-assertion-function =
+  \once \override FootnoteSpanner.numbering-assertion-function =
     #(simultaneous-footnote-numbering-assertion-function 6 7)
   a8-\footnote #'(1 . 1) \markup { p } \<
   -\footnote #'(1 . 1) \markup { o } [ b c d ] a4 b c |
index e6a3698c7184d24f531022ac5e28452f36b3d151..4e0821ab633e26df69f16a1753c66aa3d6128c3a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "With grobs that have break visibility, footnotes will
 automatically take the break visibility of the grob being footnoted.
@@ -14,12 +14,12 @@ This behavior can be overridden.
 {
   \relative c' {
     c1
-    \footnote "foo" #'(0 . 2) #'TimeSignature "bar" \default
+    \footnote "foo" #'(0 . 2) "bar" Staff.TimeSignature
     \time 3/4
     \break \pageBreak
     c2.
-    \once \override Score . FootnoteItem #'break-visibility = ##(#f #f #t)
-    \footnote "foo" #'(0 . 2) #'TimeSignature "bar" \default
+    \once \override Score.FootnoteItem.break-visibility = ##(#f #f #t)
+    \footnote "foo" #'(0 . 2) "bar" Staff.TimeSignature
     \time 4/4
     \break \pageBreak
     c1 \bar "|."
index 64b34e308a0d10becefc86fdd20659cb33833f9f..9798709ef9573e5725a6de68011cf17514182ad9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Footnotes are annotated at the correct place, and the
 annotation goes to the correct page."
@@ -13,10 +13,10 @@ annotation goes to the correct page."
 \book {
 
 \relative c'' {
-b4-\footnote
+b4-\single\footnote
               \markup { \tiny "1." }
-              #'(0.5 . 0.5) #'Hairpin
-              \markup { 1. \justify { Goes to the first broken spanner. } }
+              #'(0.5 . 0.5)
+              \markup { 1. \justify { Goes to the first broken spanner. } } Hairpin
    \<
 c d a
 b c d a
@@ -37,11 +37,11 @@ b c d a
 b c d a
 b c d a\!
 
-\once \override FootnoteSpanner #'spanner-placement = #RIGHT
-b4-\footnote
+\once \override FootnoteSpanner.spanner-placement = #RIGHT
+b4-\single\footnote
               \markup { \tiny "2." }
-              #'(0.5 . 0.5) #'Hairpin
-              \markup { 2. \justify { Goes to the last broken spanner. } }
+              #'(0.5 . 0.5)
+              \markup { 2. \justify { Goes to the last broken spanner. } } Hairpin
    \<
 c d a
 b c d a
index 2c8803d42639820ca1b10746d46fa7c6a9a4a764..89e3be9d1762a3bccc44532584c39b6472eb2052 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -20,11 +20,9 @@ of the topmost fret or string.
   \new FretBoards {
     \chordmode{
     c1 |
-    \override FretBoard #'fret-diagram-details
-       #'orientation = #'landscape
+    \override FretBoard.fret-diagram-details.orientation = #'landscape
     c1 |
-    \override FretBoard #'fret-diagram-details
-       #'orientation = #'opposing-landscape
+    \override FretBoard.fret-diagram-details.orientation = #'opposing-landscape
     c1
     }
   }
index b8f887469c886165eaab0af9df43737c4df0b4b7..e5b272fd6e70cc530640e5fb561681fbea59a9f4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -33,8 +33,7 @@ string, and its thickness can be changed.
      %% C major for guitar, with capo on third fret
        % thinner capo
         % verbose style
-    \override TextScript #'fret-diagram-details 
-        #'capo-thickness = #0.2
+    \override TextScript.fret-diagram-details.capo-thickness = #0.2
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (capo 3)
index 569878084a8d00226137173f35c3d67bd6b36120..1189c0b82c982f5c3f8fde771ccc106d5668e0b2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -32,8 +32,7 @@ size, and coloring.
                                      (barre 5 1 3))}
 
      %% C major for guitar, verbose style
-    \override TextScript #'fret-diagram-details 
-        #'dot-radius = #0.3
+    \override TextScript.fret-diagram-details.dot-radius = #0.3
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -44,9 +43,8 @@ size, and coloring.
                                      (barre 5 1 3))}
 
      %% C major for guitar, verbose style
-    \revert TextScript #'(fret-diagram-details dot-radius)
-    \once \override TextScript #'fret-diagram-details 
-        #'dot-color = #'white
+    \revert TextScript.fret-diagram-details.dot-radius
+    \once \override TextScript.fret-diagram-details.dot-color = #'white
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -57,8 +55,7 @@ size, and coloring.
                                      (barre 5 1 3))}
 
      %% C major for guitar,  verbose style
-    \once \override TextScript #'fret-diagram-details 
-        #'dot-position = #0.5
+    \once \override TextScript.fret-diagram-details.dot-position = #0.5
     c'1 ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
index 7827f048c3c783a590b6bbe4776a89a2c61f11c1..786d34110c6aa999ccffc21fd5b1fbe52ff3a24b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -25,8 +25,7 @@ and fingering label font size can be adjusted.
   \new Voice {
     \textLengthOn
      %% C major for guitar,  verbose style
-    \override TextScript #'fret-diagram-details
-      #'finger-code = #'below-string
+    \override TextScript.fret-diagram-details.finger-code = #'below-string
     c'1 ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -37,8 +36,7 @@ and fingering label font size can be adjusted.
                                      (barre 5 1 3))}
 
      %% C major for guitar,  verbose style
-    \override TextScript #'fret-diagram-details 
-        #'string-label-font-mag = #0.4
+    \override TextScript.fret-diagram-details.string-label-font-mag = #0.4
     c'1 ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -49,8 +47,7 @@ and fingering label font size can be adjusted.
                                      (barre 5 1 3))}
 
      %% C major for guitar, verbose style
-    \override TextScript #'fret-diagram-details
-      #'finger-code = #'in-dot
+    \override TextScript.fret-diagram-details.finger-code = #'in-dot
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -61,8 +58,7 @@ and fingering label font size can be adjusted.
                                      (barre 5 1 3))}
 
      %% C major for guitar, verbose style
-    \once \override TextScript #'fret-diagram-details 
-        #'dot-color = #'white
+    \once \override TextScript.fret-diagram-details.dot-color = #'white
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -73,8 +69,7 @@ and fingering label font size can be adjusted.
                                      (barre 5 1 3))}
 
      %% C major for guitar,  verbose style
-    \once \override TextScript #'fret-diagram-details 
-        #'dot-label-font-mag = #0.75
+    \once \override TextScript.fret-diagram-details.dot-label-font-mag = #0.75
     c'1 ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -84,8 +79,7 @@ and fingering label font size can be adjusted.
                                      (place-fret 1 3 1)
                                      (barre 5 1 3))}
     %% dot color inversion, white on black
-    \once \override TextScript #'fret-diagram-details 
-        #'dot-color = #'black
+    \once \override TextScript.fret-diagram-details.dot-color = #'black
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1 inverted)
@@ -95,8 +89,7 @@ and fingering label font size can be adjusted.
                                      (place-fret 1 3 1)
                                      (barre 5 1 3))}
     %% dot color inversion, black on white
-    \once \override TextScript #'fret-diagram-details 
-        #'dot-color = #'white
+    \once \override TextScript.fret-diagram-details.dot-color = #'white
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1 inverted)
index 9f8a8b0732f12824e8621d997118a54d659596fe..6ae0e392b15353af9a9aa235502bd8430d11e33c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -32,10 +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)
@@ -46,13 +44,10 @@ size, and number type.
                                      (barre 5 1 3))}
 
      %% 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 
-    \once \override TextScript #'fret-diagram-details 
-        #'fret-label-vertical-offset = #0.25
+    \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 
+    \once \override TextScript.fret-diagram-details.fret-label-vertical-offset = #0.25
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -63,11 +58,9 @@ size, and number type.
                                      (barre 5 1 3))}
 
      %% 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-custom-format = #"~d°"
+    \revert TextScript.fret-diagram-details.label-dir
+    \once \override TextScript.fret-diagram-details.number-type = #'custom
+    \once \override TextScript.fret-diagram-details.fret-label-custom-format = #"~d°"
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
index 95f4f5f4eba63b1f67a5e6ce7f881aa9a1561c26..db52341ec704020d933ea748d4f030d8ed87dc0f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -19,18 +19,15 @@ Fret diagrams can be presented in landscape mode.
 
   \new Voice {
     \textLengthOn
-    \override TextScript #'fret-diagram-details
-       #'orientation = #'landscape
+    \override TextScript.fret-diagram-details.orientation = #'landscape
 
      %% C major for guitar, regular style
     c'1 ^\markup {
             \fret-diagram #"6-x;5-3-3;4-2-2;3-o;2-1;1-o;"}
 
      %% C major for guitar with barre on fret 3, regular style
-    \once \override TextScript #'fret-diagram-details 
-        #'label-dir = #LEFT
-    \once \override TextScript #'fret-diagram-details 
-        #'barre-type = #'straight
+    \once \override TextScript.fret-diagram-details.label-dir = #LEFT
+    \once \override TextScript.fret-diagram-details.barre-type = #'straight
     c' ^\markup {
             \fret-diagram 
                #"f:1;s:1.2;6-x;c:5-1-3;5-3-1;4-5-2;3-5-3;2-5-4;1-3-1;"}
index 60c87372534f657cd03ff68ab35ec9f792fc9959..29d617e5c22b600c344a1468e45af8b77a3ff0ce 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -19,18 +19,15 @@ Fret diagrams can be presented in landscape mode.
 
   \new Voice {
     \textLengthOn
-    \override TextScript #'fret-diagram-details
-       #'orientation = #'opposing-landscape
+    \override TextScript.fret-diagram-details.orientation = #'opposing-landscape
 
      %% C major for guitar, regular style
     c'1 ^\markup {
             \fret-diagram #"6-x;5-3-3;4-2-2;3-o;2-1;1-o;"}
 
      %% C major for guitar with barre on fret 3, regular style
-    \once \override TextScript #'fret-diagram-details 
-        #'label-dir = #LEFT
-    \once \override TextScript #'fret-diagram-details 
-        #'barre-type = #'straight
+    \once \override TextScript.fret-diagram-details.label-dir = #LEFT
+    \once \override TextScript.fret-diagram-details.barre-type = #'straight
     c' ^\markup {
             \fret-diagram 
                #"f:1;s:1.2;6-x;c:5-1-3;5-3-1;4-5-2;3-5-3;2-5-4;1-3-1;"}
index aff93e9f4b2e19b2bf2f396f42907010991bca9e..d3ea85fd3db868941c9eb3eb89a6a924dcecfa81 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -29,7 +29,7 @@ string thickness.
                                      (barre 5 1 3))}
 
      %% C major for guitar,  verbose style
-    \once \override TextScript #'thickness = #1.5 
+    \once \override TextScript.thickness = #1.5 
     c'1 ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
@@ -40,8 +40,7 @@ string thickness.
                                      (barre 5 1 3))}
 
      %% C major for guitar, verbose style
-    \once \override TextScript #'fret-diagram-details
-      #'string-thickness-factor = #0.3
+    \once \override TextScript.fret-diagram-details.string-thickness-factor = #0.3
     c' ^\markup {
             \fret-diagram-verbose #'((mute 6)
                                      (place-fret 5 3 1)
index bfb0aa6125bfbeba410ceb9468741616bfd5dc35..b54f5cf254de065768d7208143b996216fdc42fd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -25,20 +25,15 @@ can be changed.
             \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"}
 
      %% D major for guitar, terse style
-    \once \override TextScript #'fret-diagram-details
-        #'top-fret-thickness = #5
-    \once \override TextScript #'fret-diagram-details
-        #'xo-font-magnification = #0.3
+    \once \override TextScript.fret-diagram-details.top-fret-thickness = #5
+    \once \override TextScript.fret-diagram-details.xo-font-magnification = #0.3
     d'1 ^\markup {
             \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"}
 
      %% D major for guitar, terse style
-    \override TextScript #'fret-diagram-details
-        #'mute-string = #"M"
-    \override TextScript #'fret-diagram-details
-        #'open-string = #"*"
-    \override TextScript #'fret-diagram-details
-        #'xo-padding = #0.5
+    \override TextScript.fret-diagram-details.mute-string = #"M"
+    \override TextScript.fret-diagram-details.open-string = #"*"
+    \override TextScript.fret-diagram-details.xo-padding = #0.5
     d'1 ^\markup {
             \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"}
 
index f766c18d33fc1f3b3da10c49a0406afc53d0fd32..ce150f885dbd1e6b79c27239ad9822020da10331 100644 (file)
@@ -2,14 +2,14 @@
   texidoc = "When broken, glissandi can span multiple lines."
 
 }
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##t
 }
 
 \relative c'' {
-  \override Glissando #'breakable = ##t
-  \override Glissando #'after-line-breaking = ##t
+  \override Glissando.breakable = ##t
+  \override Glissando.after-line-breaking = ##t
   d1\glissando
   \break s1
   \break s1
index d1f46c5ea51f3d7d295c65f729f374ef4dc766c4..29659bac612682dda5a1b94e68ac88d87c546fdd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Broken glissandi anticipate the pitch on the next line."
@@ -6,8 +6,8 @@
 
 \score {
  \relative c' {
-   \override Glissando #'after-line-breaking = ##t
-   \override Glissando #'breakable = ##t
+   \override Glissando.after-line-breaking = ##t
+   \override Glissando.breakable = ##t
    c1\glissando
    \break
    c'1
@@ -23,8 +23,8 @@
 
 \score {
  \relative c' {
-   \override Glissando #'after-line-breaking = ##t
-   \override Glissando #'breakable = ##t
+   \override Glissando.after-line-breaking = ##t
+   \override Glissando.breakable = ##t
    c1\glissando
    \break
    c'1
index c397a7fc3c92ba413f36d1287c92c0fc16d428e5..baf5993d99021856113d5b2de773e17eebdd141c 100644 (file)
@@ -2,12 +2,12 @@
   texidoc = "If broken, Glissandi anticipate on the pitch of the next line."
   
 }
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##T }
 
 \relative c'' {
-  \override Glissando #'breakable = ##t 
+  \override Glissando.breakable = ##t 
   d1 \glissando |
   \break
   c,1
index 8eb0b1cd86cf14c6fd6bece9a49c9a6645760d21..f3d53a79021935acc2be365336404547fda5e354 100644 (file)
@@ -1,11 +1,11 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Individual glissandi within a chord can be tweaked."
 }
 
 \relative c' {
-  \once \override Voice . Glissando #'style =
+  \once \override Voice.Glissando.style =
     #(lambda (grob)
        (if (eq? 1 (ly:grob-property grob 'glissando-index)) 'zigzag 'default))
   <d f a>1 \glissando s1 <f a c>
index be8ce1515b5e1dca1abeaf10472bf8111748b6d5..94dd576dccc5aaa8dcdecc1f5a3b457fb917c15a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "@code{NoteColumn} grobs can be skipped over by glissandi.
@@ -7,6 +7,6 @@
 
 \relative c' {
   a2 \glissando
-  \once \override NoteColumn #'glissando-skip = ##t
+  \once \override NoteColumn.glissando-skip = ##t
   f''4 d,
 }
index 057b8d3c4eb0e01552716606844ca5b3bbb54482..bdb5124483b4100baafbde788795ec5b1498c139 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header{
 
@@ -18,7 +18,7 @@ The engraver does no time-keeping, so it involves some trickery to get
 }
 
 \new Staff \relative c''{
-  \override Glissando #'breakable = ##t
+  \override Glissando.breakable = ##t
   
   %% gliss non gliss and 
   c4 \glissando d e \glissando f \glissando \break
@@ -26,7 +26,7 @@ The engraver does no time-keeping, so it involves some trickery to get
   c \glissando d, \glissando e'
   << { e8 \glissando g8 } \\
      { \repeat unfold 4 d16 } >>
-  \override Glissando  #'style = #'zigzag
+  \override Glissando.style = #'zigzag
   c4 \glissando c,, \glissando c' \glissando d
 }
 
index 45eb1b4c44b499f4ce9b204e3cc88d123ccbb8f5..49b488b6d9d64afe5d6b8062bbd399d377e232dc 100644 (file)
@@ -3,7 +3,7 @@
 normal notes, if possible. They should never be longer, even if that
 would lead to beam quanting problems."
 }
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
     ragged-right = ##t
@@ -15,7 +15,7 @@ would lead to beam quanting problems."
     << {  c16[ b] } \\ >>
     
     \grace { c16[ b] } d4
-%    \override Beam #'inspect-quants =#'(2.8 . 2.5)
+%    \override Beam.inspect-quants =#'(2.8 . 2.5)
 %    \grace { c16[ b] } d4
 
            }
index c45799d0eb316d6116afaaee232c50dc80d8d429..62f576b57d8e2e0d4a81a8b60d176e4eb957dd9d 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header{
   texidoc = "Here @code{startGraceMusic} should set @code{no-stem-extend} to 
 true; the two grace beams should be the same here.
@@ -14,9 +14,9 @@ true; the two grace beams should be the same here.
 \context Voice \relative c {
   \grace { 
     f8[ e8] 
-    \override Stem  #'no-stem-extend = ##t
+    \override Stem.no-stem-extend = ##t
     f8[ e8] 
-    \revert Stem #'no-stem-extend
+    \revert Stem.no-stem-extend
   }
   a4
   
index 113de90be86f8836f5a291fce462bf7b7f8a07da..1a150fcc8aba9ebb6264c12f086fd5cf7efe7b70 100644 (file)
@@ -1,9 +1,9 @@
-\version "2.16.0"
+\version "2.17.5"
 
 \header {
 
   texidoc = "A volta repeat may begin with a grace. Consecutive
-    ending and starting repeat bars are merged into one @code{:||:}."
+    ending and starting repeat bars are merged into one @code{:..:}."
 
 }
 
@@ -11,7 +11,7 @@
 
 \relative c' {
   \repeat volta 2 {
-    c1 
+    c1
   }
   \repeat volta 2 {
     \grace {c8 } c4
index 4ee9efe7cf076b317754cb9d0950d84e6324bac3..e43000956ca9c99ebe210eacb55c338847b24209 100644 (file)
@@ -5,24 +5,24 @@
 staves synchronized with the notes."
 
 }
-\version "2.16.0"
+\version "2.17.6"
 
 skips =
 {
   \time 12/8
-  \once  \override Score.GridLine #'thickness = #4.0
+  \once  \override Score.GridLine.thickness = #4.0
   s8 
   s8 
   s8 
-  \once  \override Score.GridLine #'thickness = #3.0
+  \once  \override Score.GridLine.thickness = #3.0
   s8 
   s8 
   s8 
-  \once  \override Score.GridLine #'thickness = #4.0
+  \once  \override Score.GridLine.thickness = #4.0
   s8 
   s8 
   s8 
-  \once  \override Score.GridLine #'thickness = #3.0
+  \once  \override Score.GridLine.thickness = #3.0
   s8 
   s8 
   s8 
@@ -40,7 +40,7 @@ skips =
     \RhythmicStaff
     \consists "Grid_point_engraver"
     gridInterval = #(ly:make-moment 1 8)
-    \override BarLine #'bar-extent = #'(-0.025 . 0.025)
+    \override BarLine.bar-extent = #'(-0.025 . 0.025)
   }
   \context {
     \StaffGroup
@@ -49,10 +49,10 @@ skips =
   \context {
     \Score
       \consists "Grid_line_span_engraver"
-      \override SystemStartBrace #'transparent = ##t
+      \override SystemStartBrace.transparent = ##t
 
-      \override NoteColumn #'X-offset = #-0.5
-      \override NoteHead #'Y-offset = #0.75
+      \override NoteColumn.X-offset = #-0.5
+      \override NoteHead.Y-offset = #0.75
   }
 }
 
@@ -63,7 +63,7 @@ skips =
 \new StaffGroup <<
   \new RhythmicStaff \with
   {
-    \override NoteHead  #'no-ledgers = ##t
+    \override NoteHead.no-ledgers = ##t
   }
   {
     \stemUp
@@ -71,11 +71,11 @@ skips =
   }
   \new RhythmicStaff
   {
-    \override NoteHead #'transparent = ##t
-    \override NoteHead #'no-ledgers = ##t
-    \override Stem #'transparent = ##t
-    \override Flag #'transparent = ##t
-    \override Beam #'transparent = ##t
+    \override NoteHead.transparent = ##t
+    \override NoteHead.no-ledgers = ##t
+    \override Stem.transparent = ##t
+    \override Flag.transparent = ##t
+    \override Beam.transparent = ##t
     << \skips
 
                                % force regular spacing by introducing notes.
index c53bc4b14361bfe7ac2075895372a5fe6221c927..d09d4a01beeb617f66a7f2594a48e53f86c0b4aa 100644 (file)
@@ -6,7 +6,7 @@ individual grobs that are indirectly caused by events may be tuned."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##t
 }
@@ -14,8 +14,8 @@ individual grobs that are indirectly caused by events may be tuned."
 \relative c''
 {
   <
-    \tweak Accidental #'color #red   cis4
-    \tweak Accidental #'color #green es
+    \tweak Accidental.color #red   cis4
+    \tweak Accidental.color #green es
     g
   >4
 }
index 93f55d7ee7475055a9996be5955044ed96bb38fa..9a065a3217b57629d06fa9b7446d30b086d0c233 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##t
 }
@@ -14,9 +14,9 @@
 {
   \set fingeringOrientations = #'(right)
   <
-    \tweak #'font-size #3  c
-    \tweak #'color #red  d-\tweak #'font-size #8 -4
-    \tweak #'style #'cross  g
-    \tweak #'duration-log #1  a
+    \tweak font-size #3  c
+    \tweak color #red  d-\tweak font-size #8 -4
+    \tweak style #'cross  g
+    \tweak duration-log #1  a
   >4
 }
index 3a94a5292b5bf37aafd71408931e4e46b53a91a2..3dffd61e5905539f8c4a8180df9071ffdab0425d 100644 (file)
@@ -1,14 +1,22 @@
 \header {
 
-  texidoc = "If a hairpin ends on the first note of a new stave, we
+  texidoc = "If a hairpin ends on the first note of a new staff, we
 do not print that ending.  But on the previous line, this hairpin
 should not be left open, and should end at the bar line. "
 }
 
-\version "2.16.0"
+\version "2.17.6"
+
+\layout {
+  line-width = 4.\cm
+}
 
 \relative c' {
   c1\>
   \break
   c1\!
+  \override Hairpin.to-barline = ##f
+  c1\>
+  \break
+  c1\!
 }
index bfda3413ccd1c0aacaadb8ec32e28e757598cbb1..2da785101c44fce72e7f85aa01966f8ed6cd75e7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -10,9 +10,9 @@ followed by a crescendo al niente should only print one circle."
 \layout { ragged-right = ##t } 
 
 \relative c'' {
-  \override Hairpin #'circled-tip = ##t
+  \override Hairpin.circled-tip = ##t
   c1\< d\! d\> c\!
-  \override Hairpin #'to-barline = ##f
+  \override Hairpin.to-barline = ##f
   e\> c\< d\! \break
   c\< \break
   e d\! c\> \break
diff --git a/input/regression/hairpin-clef.ly b/input/regression/hairpin-clef.ly
new file mode 100644 (file)
index 0000000..43acfdf
--- /dev/null
@@ -0,0 +1,10 @@
+\version "2.16.0"
+
+\header {
+  texidoc = "Broken hairpins are not printed too high after treble clefs.
+"
+}
+
+\relative c'' {
+  c4^\< c c c \break c c c c\! |
+}
index ac6c007e94434ac69e463ed80ece7687fa81c731..8e860fa22ac4c1d075dbf7fd435ed5fb94ce428b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc ="Hairpin crescendi may be dashed. "
@@ -7,6 +7,6 @@
 
 
 \relative c' {
-  \override Hairpin  #'style = #'dashed-line
+  \override Hairpin.style = #'dashed-line
   f2\< g c1 d4\> b a gis\! }     
 
index 38508a11673a3d5cc89494fe9792dfe95cf5df34..3c70b0733069208837226bb34bc89edd48a776e5 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -12,7 +12,7 @@ into them."
 \layout { ragged-right = ##t } 
 
 \relative c'' {
-  \override Score.PaperColumn #'keep-inside-line = ##f
+  \override Score.PaperColumn.keep-inside-line = ##f
   c4 \> c4 c4\! c4_\ff \> c4 c4\!\p
   
   <<
diff --git a/input/regression/hairpin-key-signature.ly b/input/regression/hairpin-key-signature.ly
new file mode 100644 (file)
index 0000000..0811099
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.16.0"
+
+\header {
+  texidoc = "Broken hairpins are not printed too high after key signatures.
+"
+}
+
+\relative c'' {
+  \key e \major
+  c4^\< c c c \break c c c c\! |
+}
index 84392607e13e9443e4ea015f59a7c9843b531dad..9527267ff71df345e88ee5a89d7b0d318af3c6e1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Bound padding for hairpins also applies before following
@@ -8,7 +8,7 @@ is not scaled down.
 }
 
 \relative c' {
-  \override Hairpin #'to-barline = ##f
+  \override Hairpin.to-barline = ##f
   c2\>
   \dimTextDim
   c2\>
@@ -16,7 +16,7 @@ is not scaled down.
   c\> c\! \break
   \dimTextDim
   c2\> 
-  \override Hairpin #'bound-padding = #5
+  \override Hairpin.bound-padding = #5
   \dimHairpin
   c2\>
   \dimTextDim
index 2bc3a9bec80b4c4d7dd56acf6295a344dea15a15..be083aaacf57b7ac6165730c966378c2a694d295 100644 (file)
@@ -5,9 +5,9 @@ should end at that bar line. "
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \relative c'' {
-  \override Hairpin #'bound-padding = #1.0
+  \override Hairpin.bound-padding = #1.0
   c4\< c2. c4\!
 }
index f8dc4d921bde347eb4265246e041ab919e35db36..4a2a7f6bdbb1bcf7b8ef9f39e795398dea8cd2ba 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Staves in a PianoStaff remain alive as long as any of
@@ -9,7 +9,7 @@ the staves has something interesting."
   \context {
     \Staff
     \RemoveEmptyStaves
-    \override VerticalAxisGroup #'remove-first = ##t
+    \override VerticalAxisGroup.remove-first = ##t
   }
 }
 
index 0f9dca6466725ba62f0f02768781d513d8100b91..545500c90b34889d58beed37110a834f98fa76fe 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header { texidoc =
 
@@ -12,7 +12,7 @@ not erase previous settings to the Staff context.
   ragged-right= ##t
   \context {
     \Staff
-    \override StaffSymbol #'line-count = 4
+    \override StaffSymbol.line-count = 4
     \consists "Ambitus_engraver"
     \remove "Clef_engraver"
   }
index 1482e24579d2353d6e482d03578326770eb50011..e239adc6bbad15b1607e50d8b27c149aee983bbd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 #(ly:set-option 'warning-as-error #f)
 #(ly:expect-warning (_ "Harp pedal diagram contains dividers at positions ~a.  Normally, there is only one divider after the third pedal.") '(1 3 5))
@@ -14,7 +14,7 @@ a warning is printed out, but they should still look okay."
 }
 
 \relative c'' {
-  \override Score.PaperColumn #'keep-inside-line = ##f
+  \override Score.PaperColumn.keep-inside-line = ##f
   % Sanity checks: #pedals != 7:
   c1^\markup \harp-pedal #"^-v|--"
   % Sanity checks: no divider, multiple dividers, divider on wrong position:
index 3a2f3af76262d743a0f4bb2a3ab577880e62dc42..d0718337681beaec115daa7d93b906b23d90d38d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Harp pedals can be tweaked through the size, thickness and 
@@ -6,10 +6,10 @@ harp-pedal-details properties of TextScript."
 }
 
 \relative c'' {
-  \override Score.PaperColumn #'keep-inside-line = ##f
-  \override Voice.TextScript #'(harp-pedal-details box-width) = #1
-  \once \override Voice.TextScript #'size = #1.5
-  \once \override Voice.TextScript #'thickness = #7
+  \override Score.PaperColumn.keep-inside-line = ##f
+  \override Voice.TextScript.harp-pedal-details.box-width = #1
+  \once \override Voice.TextScript.size = #1.5
+  \once \override Voice.TextScript.thickness = #7
   c1^\markup \harp-pedal #"o^ovo-|vovo-o^"
   c1^\markup \override #'(harp-pedal-details . (
                   (box-width . 0.6)
@@ -18,9 +18,9 @@ harp-pedal-details properties of TextScript."
                   (space-before-divider . 0.1)
                   (space-after-divider . 1.2))) {
            \harp-pedal #"o^ovo-|vovo-o^"}
-  \revert Voice.TextScript #'(harp-pedal-details box-width)
-  \override Voice.TextScript #'(harp-pedal-details circle-thickness) = #3
-  \override Voice.TextScript #'(harp-pedal-details circle-x-padding) = #0.6
-  \override Voice.TextScript #'(harp-pedal-details circle-y-padding) = #-0.3
+  \revert Voice.TextScript.harp-pedal-details.box-width
+  \override Voice.TextScript.harp-pedal-details.circle-thickness = #3
+  \override Voice.TextScript.harp-pedal-details.circle-x-padding = #0.6
+  \override Voice.TextScript.harp-pedal-details.circle-y-padding = #-0.3
   c1^\markup \harp-pedal #"o^ovo-|vovo-o^"
 }
index 1ce625fe6f58ccdd6cd45fd3f1cfbffa8c47780c..3ffb66efc5bf96c062a8865163c088a921c204ac 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Horizontal brackets are created with the correct event-cause, ensuring
@@ -13,7 +13,7 @@ tweaks are applied to the correct spanner."
 }
 
 \relative c' {
-  c1-\tweak #'thickness #6 \startGroup
+  c1-\tweak thickness #6 \startGroup
   c1\startGroup
   c1\stopGroup
   c1\stopGroup
index e90f11d3c6b40722194db03eaaee6ded0c93d4c0..7595621102681f613dd1181ab397beb47e229be9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Shows the id property of a grob being set.  This should have
@@ -6,4 +6,4 @@ no effect in the PS backend.
 "
 }
 
-{ \override NoteHead #'id = #"foo" c }
+{ \override NoteHead.id = #"foo" c }
index 7269e91cb4a88b1fe6bb6cd0abb16e4b5f6ca282..63790a7b55f6ff3aa345774a3b5950d84f77c11d 100644 (file)
@@ -10,10 +10,9 @@ modifier."
 \version "2.16.0"
 
 myDisplayMusic =
-#(define-music-function (parser location music)
+#(define-void-function (parser location music)
  (ly:music?)
- (display-scheme-music music (current-error-port))
- (make-music 'SequentialMusic 'void #t))
+ (display-scheme-music music (current-error-port)))
 
 \myDisplayMusic \chordmode { c }
 
index 6963f99477334c2c7c906aa7f7c5919246e7b25c..2e3bffb754db3799ff30d8185d39e9cf1aef042d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "LilyPond does in-notes.
@@ -9,12 +9,12 @@
 \book {
   \relative c' {
     \repeat unfold 5 {
-      \once \override FootnoteItem #'footnote = ##f
+      \once \override FootnoteItem.footnote = ##f
       \footnote
-         "" #'(0 . 0) #'NoteHead
-         \markup { \box \fill-line { "this is a test" } } \default
+         "" #'(0 . 0)
+         \markup { \box \fill-line { "this is a test" } } NoteHead
       \repeat unfold 5 { a\< b c d\! }
-      \footnote #'(-1 . 1) #'NoteHead "foobar" \default
+      \footnote #'(-1 . 1) "foobar" NoteHead
       \repeat unfold 5 { a\< b c d\! }
     }
   }
index 7e8ea62a77ad1074cc6ac6923b8772ce6bb3d5cc..166560f811dcdfdc57d1403d003ae6b0de223665 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Incipits can be printed using an @code{InstrumentName}
@@ -19,10 +19,10 @@ grob."
 \score {
   \new Staff {
     %% All this would be shortcuted by an appropriate music function:
-    \override Staff.InstrumentName #'music = ##{ \clef "petrucci-c1" c'4 d' e' f' #}
-    \override Staff.InstrumentName #'self-alignment-X = #RIGHT
-    \override Staff.InstrumentName #'padding = #0
-    \override Staff.InstrumentName #'stencil =
+    \override Staff.InstrumentName.music = ##{ \clef "petrucci-c1" c'4 d' e' f' #}
+    \override Staff.InstrumentName.self-alignment-X = #RIGHT
+    \override Staff.InstrumentName.padding = #0
+    \override Staff.InstrumentName.stencil =
       #(lambda (grob)
          (let* ((instrument-name (ly:grob-property grob 'long-text))
                 (layout (ly:output-def-clone (ly:grob-layout grob)))
index 58de023f9ed5cbbe1766c3553dbdef13f25281ca..7e6db4ac3b2b132138e9033b5e8a83fef43cff5b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Instrument names are removed when the staves are
@@ -10,7 +10,7 @@ disappears, as does the instrument name."
         
 \new PianoStaff <<
   \new Staff {
-    \override Staff.VerticalAxisGroup #'remove-empty = ##t  
+    \override Staff.VerticalAxisGroup.remove-empty = ##t  
     \set PianoStaff.instrumentName = #"up" 
     \set PianoStaff.shortInstrumentName = #"u"
     c'1\break R
index cbceec3d99a8c76f3b9cf49d0009f75c7b799504..9516a517c4337f2f0451531896c3ba39bc36db03 100644 (file)
@@ -8,12 +8,12 @@ the following systems, respectively."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper { left-margin = 3\cm }
 \score {
   \new StaffGroup <<
     \new Staff {
-      \override Staff . InstrumentName #'self-alignment-X = #LEFT
+      \override Staff.InstrumentName.self-alignment-X = #LEFT
       \set Staff . instrumentName = \markup \column {
        "Left aligned" "instrument name"
       }
@@ -21,7 +21,7 @@ the following systems, respectively."
       c''1 \break c''
     }
     \new Staff {
-      \override Staff . InstrumentName #'self-alignment-X = #CENTER
+      \override Staff.InstrumentName.self-alignment-X = #CENTER
       \set Staff . instrumentName = \markup \center-column {
        "Centered" "instrument name"
       }
@@ -29,7 +29,7 @@ the following systems, respectively."
       g'1 g'
     }
     \new Staff {
-      \override Staff . InstrumentName #'self-alignment-X = #RIGHT
+      \override Staff.InstrumentName.self-alignment-X = #RIGHT
       \set Staff . instrumentName = \markup \column \right-align {
        "Right aligned" "instrument name"
       }
index 44c499e277618ec89e82b99cf83398c3ae5e19a6..ec18bc00be748f4a08a4f68ee8ed28e9d56000c0 100644 (file)
@@ -1,7 +1,8 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header { texidoc = "Each clef has its own accidental placing
-rules. "}
+rules, which can be adjusted using @code{sharp-positions}
+and @code{flat-positions}." }
 
 #(set-global-staff-size 16)
 
@@ -23,7 +24,18 @@ rules. "}
   \key cis \major cis \key ces \major ces
   \clef bass
   \key cis \major cis \key ces \major  ces
+  \break R1
+  \tempo "B-sharp on top"
+  \override Staff.KeySignature.sharp-positions = #'(6 0 1 2 3 4 5)
+  \override Staff.KeyCancellation.sharp-positions = #'(6 0 1 2 3 4 5)
+  \key cis \major R
+  \tempo "Flats throughout the staff"
+  \override Staff.KeySignature.flat-positions = #'((-5 . 5))
+  \override Staff.KeyCancellation.flat-positions = #'((-5 . 5))
+  \key ces \major R
+  \clef tenor
+  \key cis \major cis \break \key ces \major ces
+  \clef treble
+  \key cis \major cis \key ces \major ces
 }
 
-
-
index 4d2dbd66ab33f0c40d56f50bdefdd0e1ca572dc4..4f46271696a00ccaf8336e4b96e08445997e8bbc 100644 (file)
@@ -5,10 +5,10 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 {
-  \override Staff.KeySignature #'padding-pairs
+  \override Staff.KeySignature.padding-pairs
     = #'((("accidentals.flat" . "accidentals.sharp.slashslash.stemstemstem") . 0.5))
     \set Staff.keySignature = #`((4 . ,FLAT) (6 . ,THREE-Q-SHARP) (2 . ,SEMI-FLAT))
   e2
diff --git a/input/regression/kievan-notation.ly b/input/regression/kievan-notation.ly
new file mode 100644 (file)
index 0000000..fe78032
--- /dev/null
@@ -0,0 +1,19 @@
+\version "2.17.4"
+
+\header {
+  texidoc = "LilyPond typesets Kievan notation.
+"
+}
+
+\score {
+  <<
+    \new KievanVoice = "melody" \transpose c c' {
+      \cadenzaOn
+        c4 c8 c8[ d8] c4 c2 b,\longa
+       \bar "k"
+    }
+    \new Lyrics \lyricsto "melody" {
+      Го -- спо -- ди по -- ми -- луй.
+    }
+  >>
+}
index 9d28c006b166de6240f31f4e20a37c2cea7b1448..af166fece5ce54d507b79902ec4263ec50cfe142 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
   texidoc = "The 'head-direction of a LaissezVibrerTieColumn should
@@ -8,7 +8,7 @@ be able to be set without causing a segmentation fault."
 
 \relative c'' {
   c2 \laissezVibrer
-  \once \override LaissezVibrerTieColumn #'head-direction = #RIGHT
+  \once \override LaissezVibrerTieColumn.head-direction = #RIGHT
   c \laissezVibrer
 }
 
index a693c2109ebb4901e6e18f99e2c79deab2a1fdf3..53d868c1f0bd71c999b5567b63368845916d804c 100644 (file)
@@ -10,7 +10,7 @@ They have fixed size. Their formatting can be tuned with
 "
   }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##t
 }
@@ -22,7 +22,7 @@ They have fixed size. Their formatting can be tuned with
   <c d f g>4.\laissezVibrer r8
 
   <c d e f>4\laissezVibrer r
-  \override LaissezVibrerTieColumn #'tie-configuration
+  \override LaissezVibrerTieColumn.tie-configuration
   = #'((-7 . -1)
        (-5 . -1)
        (-3 . 1)
index 05ca6d628b9953f7e6107dc39cf2378f8aaa1be4..80892c6c95c46ed085f57d7943d84e3c87d3bd1e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "
@@ -11,7 +11,7 @@ into context modifications.
 \score {
   \relative c' { cis cis cis cis }
   \layout {
-    \accidentalStyle "dodecaphonic"
+    \accidentalStyle dodecaphonic
   }
   \midi {
     \tempo 4 = 240
diff --git a/input/regression/ledger-lines-dynamics.ly b/input/regression/ledger-lines-dynamics.ly
new file mode 100644 (file)
index 0000000..a6e2d80
--- /dev/null
@@ -0,0 +1,10 @@
+\version "2.17.2"
+
+\header {
+  texidoc = "Dynamics and other outside staff objects avoid ledger lines.
+"
+}
+
+\relative c' {
+  f16\pp[ c d e ] r2. |
+}
index b36b52730d3f1828606c3c2b4b71628ada132566..9a9f16011979c22ff23a84e7a60272bfc4ec9afd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Ledger lines should appear at every other location
 for a variety of staves using both @code{line-count} and
@@ -16,36 +16,36 @@ notes = \relative c' {
 \new Staff {
   % upper and lower lines both odd
   #(define mylines '(-1 0 1))
-  \override Staff.StaffSymbol #'line-count = #(length mylines)
-  \override Staff.StaffSymbol #'line-positions = #mylines
+  \override Staff.StaffSymbol.line-count = #(length mylines)
+  \override Staff.StaffSymbol.line-positions = #mylines
   \notes
 }
 
 \new Staff {
   % upper and lower lines both even
   #(define mylines '(-2 0 2))
-  \override Staff.StaffSymbol #'line-positions = #mylines
+  \override Staff.StaffSymbol.line-positions = #mylines
 
-  \override Staff.StaffSymbol #'line-count = #(length mylines)
+  \override Staff.StaffSymbol.line-count = #(length mylines)
   \notes
 }
 
 \new Staff {
   % lower line odd, upper line even
   #(define mylines '(-1 0 2))
-  \override Staff.StaffSymbol #'line-positions = #mylines
-  \override Staff.StaffSymbol #'line-count = #(length mylines)
+  \override Staff.StaffSymbol.line-positions = #mylines
+  \override Staff.StaffSymbol.line-count = #(length mylines)
   \notes
 }
 
 \new Staff {
   % odd line count
-  \override Staff.StaffSymbol #'line-count = #5
+  \override Staff.StaffSymbol.line-count = #5
   \notes
 }
 
 \new Staff {
   % even line count
-  \override Staff.StaffSymbol #'line-count = #4
+  \override Staff.StaffSymbol.line-count = #4
   \notes
 }
index ebe1cb221dda16c4c098e0fd1fa14f60a12febd3..c8c47c4bb984abe1ed898813f1fc4b715a5a818a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
     composer = "ARTHUR GRAY"
@@ -54,7 +54,7 @@ treble = \new Voice \relative c''{
     cis''''4^\markup { \small \italic "m.g." }\arpeggio~
     \grace {
         cis8
-       \revert Stem #'direction
+       \revert Stem.direction
 
        a16[-5_( fis dis]
        \ottava #0
@@ -72,7 +72,7 @@ treble = \new Voice \relative c''{
     r8 <a' a,>8(\mf <gis gis,> <fis fis,>
 
     % \fingerUp
-    \override Fingering  #'direction = #UP
+    \override Fingering.direction = #UP
 
     <gis gis,> <fis fis,> e)-1-4-5 r
 
@@ -88,7 +88,7 @@ trebleTwo = \new Voice \relative c''{
     \stemDown
     \slurDown
     % \fingerDown
-    \override Fingering  #'direction = #DOWN
+    \override Fingering.direction = #DOWN
     s2
     | %1
     s1*2
@@ -99,9 +99,9 @@ trebleTwo = \new Voice \relative c''{
     | %5
     s8 cis4. d4
     % fair to count as one tweak?
-    \override Fingering #'add-stem-support = ##t %tweak
-    \override Fingering #'padding = #0.15
-    \override Fingering #'slur-padding = #0.1
+    \override Fingering.add-stem-support = ##t %tweak
+    \override Fingering.padding = #0.15
+    \override Fingering.slur-padding = #0.1
     <cis e,>8[( <d,_3 b'_1>
     | %6
     <cis_1 a'_2>)] cis'4. d4
@@ -119,7 +119,7 @@ bass = \new Voice \relative c{
 
     r8. e,16(\f_2 <a a,>8[ <b b,>]
     | %2
-    %\override Staff.SustainPedalLineSpanner #'staff-padding = #5 %tweak
+    %\override Staff.SustainPedalLineSpanner.staff-padding = #5 %tweak
 
     <cis cis,>4\sustainOn
     \change Staff=treble
@@ -154,7 +154,7 @@ bass = \new Voice \relative c{
     >>
 
     \grace {
-       \override Flag  #'stroke-style = #"grace"
+       \override Flag.stroke-style = #"grace"
 
         s8
         s16 s s
@@ -163,7 +163,7 @@ bass = \new Voice \relative c{
        \clef bass
        <e,,, e,>32(\sustainOff\sustainOn
 
-       \revert Flag #'stroke-style
+       \revert Flag.stroke-style
     }
     <gis' e>2)
 
@@ -171,10 +171,10 @@ bass = \new Voice \relative c{
     \slurUp
 
     % \fingerDown
-    \override Fingering  #'direction = #DOWN
+    \override Fingering.direction = #DOWN
 
 
-    %\override Staff.SustainPedalLineSpanner #'staff-padding = #3.5 %tweak
+    %\override Staff.SustainPedalLineSpanner.staff-padding = #3.5 %tweak
     \set Staff.pedalSustainStyle = #'mixed
     %%a,8 e'[-5(<a-2 cis-3>])
 
@@ -208,7 +208,7 @@ bassTwo = \new Voice \relative c{
 }
 
 middleDynamics = {
-    %\override Dynamics.TextScript  #'padding = #-1 %tweak
+    %\override Dynamics.TextScript.padding = #-1 %tweak
     s2
     s1*2
     | %4
index 1232a90aac77e6cdb26a8674d73b21a4f2379696..cc59cbd152beacd23438231400e1eb9831656637 100644 (file)
@@ -12,23 +12,23 @@ the @code{TextScript} grob.
           
       }
 
-\version "2.16.0"
+\version "2.17.6"
 \layout { ragged-right = ##t }
 
 withPaddingA = #(define-music-function (parser location padding music) (number? ly:music?)
-                #{ \override TextScript #'padding = #padding
+                #{ \override TextScript.padding = #padding
                 $music 
-                \revert TextScript #'padding #})
+                \revert TextScript.padding #})
 
 withPaddingB = #(define-music-function (parser location padding music) (number? ly:music?)
-                #{ \override TextScript #'padding = #(* padding 2)
+                #{ \override TextScript.padding = #(* padding 2)
                 $music 
-                \revert TextScript #'padding #})
+                \revert TextScript.padding #})
 
 withPaddingC = #(define-music-function (parser location padding music) (number? ly:music?)
-                #{ \override TextScript #'padding = #(+ 1 (* padding 2))
+                #{ \override TextScript.padding = #(+ 1 (* padding 2))
                    $music 
-                   \revert TextScript #'padding #})
+                   \revert TextScript.padding #})
 
 {
     c'^"1"
index 3f27361283c00b4815715fd08857a5e5205399d7..935f068db7c392386cdc0b746f9702313bc95770 100644 (file)
@@ -7,17 +7,8 @@ include $(depth)/make/stepmake.make
 
 TITLE=lilypond-book Test Suite
 
-SUBDIRS=include
-
 COLLATED_FILES = $(OUT_FILES)
 
-EXTRA_DIST_FILES = include.mxl
-EXTRA_DIST_FILES += include.xml
-EXTRA_DIST_FILES += $(call src-wildcard,*.ly)
-EXTRA_DIST_FILES += $(call src-wildcard,*.ily)
-EXTRA_DIST_FILES += $(call src-wildcard,*.tely)
-EXTRA_DIST_FILES += $(call src-wildcard,*.itely)
-
 OUT_TEXI_FILES += ${TEXI_FILES:%.texi=$(outdir)/%.info}
 OUT_TEXI_FILES += ${TEXI_FILES:%.texi=$(outdir)/%.pdf}
 OUT_TEXINFO_FILES += ${TEXINFO_FILES:%.texinfo=$(outdir)/%.info}
diff --git a/input/regression/lilypond-book/include/GNUmakefile b/input/regression/lilypond-book/include/GNUmakefile
deleted file mode 100644 (file)
index 0b6e885..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-depth = ../../../..
-
-STEPMAKE_TEMPLATES=
-LOCALSTEPMAKE_TEMPLATES=
-
-include $(depth)/make/stepmake.make
-
-EXTRA_DIST_FILES += $(call src-wildcard,*.ly)
-EXTRA_DIST_FILES += $(call src-wildcard,*.ily)
-EXTRA_DIST_FILES += $(call src-wildcard,*.tely)
-EXTRA_DIST_FILES += $(call src-wildcard,*.itely)
index 48c94394667fe6b59c78c08ea1bdbdcf32a8dcd2..b383544d4e8d01f4774bbef15756ff5e0c837384 100644 (file)
@@ -1 +1,2 @@
+\version "2.16.0"
 myVar = { a b c a }
index affd3a7ab082319df90f09f616bc2a9373854817..1b3bccc8a3dd41ec84f69b70d7aab8e0a38b9a8a 100644 (file)
@@ -2,26 +2,26 @@
   texidoc = "Arrows can be applied to text-spanners and line-spanners (such as the Glissando)"
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t
 }
 
 \relative c'' {
-  \override TextSpanner #'bound-padding = #1.0
-  \override TextSpanner #'style = #'line
-  \override TextSpanner #'(bound-details right arrow) = ##t
-  \override TextSpanner #'(bound-details left text) = #"fof"
-  \override TextSpanner #'(bound-details right text) = #"gag"
-  \override TextSpanner #'(bound-details right padding) = #0.6
+  \override TextSpanner.bound-padding = #1.0
+  \override TextSpanner.style = #'line
+  \override TextSpanner.bound-details.right.arrow = ##t
+  \override TextSpanner.bound-details.left.text = #"fof"
+  \override TextSpanner.bound-details.right.text = #"gag"
+  \override TextSpanner.bound-details.right.padding = #0.6
 
-  \override TextSpanner #'(bound-details right stencil-align-dir-y) = #CENTER
-  \override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER
+  \override TextSpanner.bound-details.right.stencil-align-dir-y = #CENTER
+  \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
   
-  \override Glissando #'(bound-details right arrow) = ##t
-  \override Glissando #'arrow-length = #0.5
-  \override Glissando #'arrow-width = #0.25
+  \override Glissando.bound-details.right.arrow = ##t
+  \override Glissando.arrow-length = #0.5
+  \override Glissando.arrow-width = #0.25
   
   a8\startTextSpan gis8 a4 b4\glissando
   b,4 | g' c\stopTextSpan c
index a3542cb43ee736be328028f78f9b9c7918adb284..c572d2375ee08f02c379fd997e8200a97d5f346a 100644 (file)
@@ -5,11 +5,11 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \relative c' {
-  \override Staff.OttavaBracket #'dash-period = #0.1
-  \override Score.OttavaBracket #'dash-fraction = #1
+  \override Staff.OttavaBracket.dash-period = #0.1
+  \override Score.OttavaBracket.dash-fraction = #1
 
   \ottava #1
   c4 c
index 3f63d32b5d8cf4cbd82f3e875305f1cbc621b09b..0aa17361b403555b2efaedd3a6f943079f6c7a8a 100644 (file)
@@ -5,7 +5,7 @@ starts and ends on a full dash. "
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   indent = 0.0\mm
@@ -18,8 +18,8 @@ starts and ends on a full dash. "
     c1_\< c c1\!
   }
   \new Staff {
-    \override DynamicTextSpanner #'dash-period = #3
-    \override DynamicTextSpanner #'dash-fraction = #0.3
+    \override DynamicTextSpanner.dash-period = #3
+    \override DynamicTextSpanner.dash-fraction = #0.3
     \crescTextCresc
     c1^\< c c1\!
   }
index 9d0a28137d91834a1b0122f9d6a77f68ea50068c..ab35aa1d95923406f66fcaa45351dc531c807a57 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Setting @code{'zigzag} style for spanners does not
@@ -10,10 +10,10 @@ the second markup and default trillspanner.
 
 \relative c' {
   c1^"text"
-  \override TrillSpanner #'style = #'zigzag
+  \override TrillSpanner.style = #'zigzag
   c1\startTrillSpan
   c2^\stopTrillSpan c^"text"
-  \revert TrillSpanner #'style
+  \revert TrillSpanner.style
   c1\startTrillSpan
   c1^\stopTrillSpan
 }
index 31f284e82f7a9d62711fe63d7ae77c5bf38c89b6..2d77edd91d3ff5fe9cbe393b6b73ad7e61320510 100644 (file)
@@ -1,24 +1,24 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Cover all line styles available."  
 }
 
 \relative c'' {
-  \override Glissando #'breakable = ##t
+  \override Glissando.breakable = ##t
 
   s2
   d2 \glissando d'2
-  \override Glissando #'style = #'dashed-line
+  \override Glissando.style = #'dashed-line
   d,2 \glissando d'2
-  \override Glissando #'style = #'dotted-line
+  \override Glissando.style = #'dotted-line
   d,2 \glissando d'2
   
-  \override Glissando #'style = #'zigzag
+  \override Glissando.style = #'zigzag
   d,2 \glissando d'2
-  \override Glissando #'style = #'trill
+  \override Glissando.style = #'trill
   d,2 \glissando d'2
   
-  \override Glissando #'style = #'none
+  \override Glissando.style = #'none
   d,2 \glissando d'2
 }
index 4236de7c86d13132e55b62c5e96c4a589f96aa14..0cc2b7308eaa7f23f5d811dda657b4c5e60f8015 100644 (file)
@@ -2,7 +2,7 @@
 {
 texidoc = "switching voices in the middle of the lyrics is possible using @code{lyricsto}."
   }
-\version "2.16.0"
+\version "2.17.6"
 
 <<
   \relative \new Voice = "lahlah" {
@@ -10,7 +10,7 @@ texidoc = "switching voices in the middle of the lyrics is possible using @code{
     <<
       \new Voice = "alternative" {
         \voiceOne
-       \override NoteColumn #'force-hshift = #-3
+       \override NoteColumn.force-hshift = #-3
        a'4 
       } 
       { \voiceTwo
index d78a8a86b4ab164f1ec6eb684ea9c3554e37dff9..7548edad73458421920b01388cd7c1a0c02c5135 100644 (file)
@@ -5,7 +5,7 @@ if the switch occurs together with context instantiation."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 <<
   \relative \new Voice = "lahlah" {
@@ -16,7 +16,7 @@ if the switch occurs together with context instantiation."
         \voiceOne
         \times 2/3 {
          %% show associations clearly.
-          \override NoteColumn #'force-hshift = #-3
+          \override NoteColumn.force-hshift = #-3
           r8 f g
         }
       }
index 9428c029ab418baf6bfde09a599d4671731e0bc2..6a45c767d9381b223f61670335728a841eefc57c 100644 (file)
@@ -14,7 +14,7 @@ effect of a setting is delayed is one syllable."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   ragged-right = ##t
@@ -35,10 +35,10 @@ effect of a setting is delayed is one syllable."
   syl -- lab word
 
   %% increase minimum-distance: forces more space, so hyphen reappears
-  \override LyricHyphen #'minimum-distance = #1.0
+  \override LyricHyphen.minimum-distance = #1.0
   syl -- lab word
 
   %% minimum-distance 0 for LyricSpace: this places words next to each other. 
-  \override LyricSpace #'minimum-distance = #0.0
+  \override LyricSpace.minimum-distance = #0.0
   syl -- lab word
 }
index bbff24560736b9c520496bed92cab1272b25effd..7fcc3a52588a1e4de02f553466ae81ab1c628e19 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
     texidoc = "In lyrics, hyphens may be used."
 }
@@ -9,7 +9,7 @@
 
 \new Voice { c' (c') c'( c') }
 \addlyrics {
-  \override Lyrics . LyricSpace #'minimum-distance = #5.0
+  \override Lyrics.LyricSpace.minimum-distance = #5.0
   a -- b x -- y
 }
 
index aed4b8aae29ae356db92fc11c6956e1f08f636a3..ccaad3d46931e6ae3713344eecef11f8daedc5e2 100644 (file)
@@ -1,9 +1,11 @@
 \header
 {
-  texidoc = "The @code{\\tweak} function can be used in Lyrics."
+  texidoc = "The @code{\\tweak} function can be used in Lyrics.  Where
+confusion of lyric words with grob names is possible, explicit use of
+@code{\\markup} can be used for resolving the ambiguity."
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##t
 }
@@ -11,8 +13,8 @@
 \new Lyrics \lyricmode
 {
   \markup \raise #1 \rotate #30 One 4
-  \tweak #'extra-offset #'(0 . 2) fish,
+  \tweak extra-offset #'(0 . 2) \markup fish,
   \markup \raise #1 \rotate #-30 two fish,
-  \tweak #'color #red red fish,
-  \tweak #'color #blue blue fish.
+  \tweak color #red \markup red fish,
+  \tweak color #blue \markup blue fish.
 }
index c559bedebea0c8ad18ddd607af5c9ba9a11da9c3..633e041bb6fb1e14404a847fdb2d8b0a6b59e638 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header{
 texidoc="
@@ -13,7 +13,7 @@ lyrics do not collide with barlines.
 
 \relative c'' <<
     \new Voice = "a"{
-       b1 \bar "|:" b1 \bar ":|" b1 \bar "|."
+       b1 \bar ".|:" b1 \bar ":|." b1 \bar "|."
     }
     \new Lyrics \with {
        \consists "Bar_engraver"
@@ -31,9 +31,9 @@ lyrics do not collide with barlines.
 \layout {
   \context {
     \Lyrics
-      \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'minimum-distance = #4.2
-      \override LyricText #'Y-offset = #-0.7
-      \override BarLine #'bar-extent = #'(-2 . 2)
+      \override VerticalAxisGroup.nonstaff-nonstaff-spacing.minimum-distance = #4.2
+      \override LyricText.Y-offset = #-0.7
+      \override BarLine.bar-extent = #'(-2 . 2)
   }
 }
 
index cb3fe3e868ed9de2ead2e456d506315a37c1bff9..30d2535c59be09e640d3e2379e819a6a930026a4 100644 (file)
@@ -6,9 +6,9 @@ paper column is very wide."
  
 \layout{ ragged-right = ##t }
 
-\version "2.16.0"
+\version "2.17.6"
 <<
-  \override Score.PaperColumn #'keep-inside-line = ##f
+  \override Score.PaperColumn.keep-inside-line = ##f
   \new Staff \relative c' {
     \key aes \major
     \context Voice = "1" { 
index f3ececfd809bb81556294603b92eaa3662ffe61a..56506da8e1c645ba91faf38992eaf395ed9602dd 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 \paper { ragged-right = ##T }
-\version "2.16.0"
+\version "2.17.6"
 
 \score{
   {
@@ -40,7 +40,7 @@
   \layout {
     \context {
       \Score
-      \override PaperColumn #'keep-inside-line = ##f
+      \override PaperColumn.keep-inside-line = ##f
     }
   }
 }
index 274e4f89b7a4f0bb6c51eb16a1e694ec9378806e..c226ae21dee18252594d4259e8a75c8c557a80a4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -8,9 +8,9 @@
 }
 
 \new Staff {
-  \override TextSpanner #'bound-details #'right #'text =
+  \override TextSpanner.bound-details.right.text =
         #(markup #:draw-line '(0 . -1))
-  \override TextSpanner #'thickness = #2
+  \override TextSpanner.thickness = #2
   c'4 \startTextSpan
   c'4 \stopTextSpan
 }
index 24f8545c60edeff2d75ddfa770b42ab3e126d3ee..d40aee871898772fbe3d72ac5b7f4d8ca984df2c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The @code{'style} property from grobs such as
@@ -8,12 +8,12 @@ the default note head style for @code{\\note} and
 }
 
 \relative c' {
-  \override Staff.TimeSignature #'stencil =
+  \override Staff.TimeSignature.stencil =
     #(lambda (grob)
        (grob-interpret-markup grob
                               (markup #:override '(baseline-skip . 0)
                                       #:column (#:number "2" #:note "2" DOWN))))
-  \override TextSpanner #'(bound-details left text) =
+  \override TextSpanner.bound-details.left.text =
     \markup { \note #"16" #UP }
   c1\startTextSpan
   c1\stopTextSpan
index 1fece8436e4f3413669c5610d86ecb68e9244e30..b642b98df625d94b55083e3e180467bde0c25a24 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "The note markup function may be used to make metronome
  markings. It works for a variety of flag, dot and duration settings."
 }
-\version "2.16.0"
+\version "2.17.6"
 
 \score {
   \relative c''
 
     }
 
-    \override NoteHead #'style = #'triangle
+    \override NoteHead.style = #'triangle
     c4 a
   }
 
   \layout {
     \context {
       \Score
-      \override PaperColumn #'keep-inside-line = ##f
+      \override PaperColumn.keep-inside-line = ##f
     }
   }
 
index cd475a1bbfd5a3fef6e671d2c1fdda291305b4b1..dc56d260ac945ca65dc2ae76d91845a9e69a2fa6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Demo of markup texts, using LilyPond syntax."
@@ -54,7 +54,7 @@
   \layout {
     \context {
       \Score
-      \override PaperColumn #'keep-inside-line = ##f
+      \override PaperColumn.keep-inside-line = ##f
     }
   }
 
index 24a4fe4b8b568851bd116a70a0eab4e7d33eb172..e9f1bba990b8bc715e4b323d6071b1bb05ba8324 100644 (file)
@@ -1,15 +1,11 @@
-
 \header {
   texidoc = "Users may define non-standard markup commands using
 the @code{define-markup-command} scheme macro."
 }
 
-
 \layout { ragged-right = ##t }
-  
 
-
-\version "2.16.0"
+\version "2.17.6"
 
 #(define-markup-command (upcase paper props str) (string?)
   "Upcase the string characters. Syntax: \\upcase #\"string\""
@@ -17,15 +13,13 @@ the @code{define-markup-command} scheme macro."
 
 \score{
   {
-    c''-\markup \upcase #"hello world"
-                               % produces a "HELLO WORLD" markup
+    c''-\markup \upcase #"hello world in upper case"
   }
 
   \layout {
     \context {
       \Score
-      \override PaperColumn #'keep-inside-line = ##f
+      \override PaperColumn.keep-inside-line = ##f
     }
   }
-
 }
diff --git a/input/regression/measure-counter-broken.ly b/input/regression/measure-counter-broken.ly
new file mode 100644 (file)
index 0000000..06e1508
--- /dev/null
@@ -0,0 +1,30 @@
+\version "2.17.6"
+
+\header {
+  texidoc = "Measures split across line breaks may be numbered in a measure
+count.  Each segment receives a number.  The first number has its ordinary
+appearance, but numbers after the break are enclosed in parentheses."
+}
+
+\layout {
+  indent = 0
+  ragged-right = ##t
+}
+
+\relative c' {
+  \startMeasureCount
+  a4 b c d
+  a4 b
+  \bar ""
+  \break
+  c4 d
+  a4 b c d
+  \stopMeasureCount
+}
+
+\layout {
+  \context {
+    \Staff
+    \consists #Measure_counter_engraver
+  }
+}
diff --git a/input/regression/measure-counter.ly b/input/regression/measure-counter.ly
new file mode 100644 (file)
index 0000000..095d1a5
--- /dev/null
@@ -0,0 +1,41 @@
+\version "2.17.6"
+
+\header {
+  texidoc = "Measures can be numbered sequentially by enclosing them with 
+@code{\\startMeasureCount} and @code{\\stopMeasureCount}."
+}
+
+\layout {
+  indent = 0
+  ragged-right = ##t
+}
+
+\relative c' {
+  \startMeasureCount
+  \repeat unfold 5 {
+    a4 b c d
+  }
+  \stopMeasureCount
+  a'4 b c d
+  \override Staff.MeasureCounter.count-from = #2
+  \startMeasureCount
+  \repeat unfold 4 {
+    a4 b c d
+  }
+  \stopMeasureCount\startMeasureCount
+  \revert Staff.MeasureCounter.count-from
+  \clef bass
+  \key fis \major
+  \time 3/4
+  \repeat unfold 3 {
+    R2.
+  }
+  \stopMeasureCount
+}
+
+\layout {
+  \context {
+    \Staff
+    \consists #Measure_counter_engraver
+  }
+}
index 246a5148115ef76696619c7e2e581ecff2af3b8d..bf15f85e7b6d6b66116d98200487de5f68ef6819 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Mensural ligatures show different shapes, depending on the
@@ -16,8 +16,8 @@
   }
   \context {
     \Score
-    \override SpacingSpanner #'packed-spacing = ##t
-    \override PaperColumn #'keep-inside-line = ##f
+    \override SpacingSpanner.packed-spacing = ##t
+    \override PaperColumn.keep-inside-line = ##f
   }
 }
 
@@ -25,7 +25,7 @@
   \clef "petrucci-c4"
   \set Staff.printKeyCancellation = ##f
   \cadenzaOn % turn off bar lines
-  \accidentalStyle "forget"
+  \accidentalStyle forget
   \textLengthOn
 
 % ligaturae binaria
     \]
 
   \[
-    \override NoteHead #'style = #'blackpetrucci
+    \override NoteHead.style = #'blackpetrucci
     b\longa^\markup { "LBBBBB." }
     c'\breve
     d'
     g
-    \once \override NoteHead #'ligature-flexa = ##t
+    \once \override NoteHead.ligature-flexa = ##t
     f
-    \revert NoteHead #'style
+    \revert NoteHead.style
     g\breve.
     \]
 
     \]
 
   \[
-    \override NoteHead #'style = #'blackpetrucci
+    \override NoteHead.style = #'blackpetrucci
     e'1^\markup { "SSB" }
     a
     g\breve
-    \revert NoteHead #'style
+    \revert NoteHead.style
     \]
 
   \[
     \]
 
   \[
-    \override NoteHead #'style = #'blackpetrucci
+    \override NoteHead.style = #'blackpetrucci
     e'\longa^\markup { "LBB" }
     f'\breve
-    \revert NoteHead #'style
+    \revert NoteHead.style
     e'
     \]
 
   \[
-    \override NoteHead #'style = #'blackpetrucci
+    \override NoteHead.style = #'blackpetrucci
     b\breve^\markup { "BBBBBBL" }
     g
-    \override NoteHead #'ligature-flexa = ##t
-    \override NoteHead #'flexa-width = #3
+    \override NoteHead.ligature-flexa = ##t
+    \override NoteHead.flexa-width = #3
     f
     f'
-    \override NoteHead #'flexa-width = #5
+    \override NoteHead.flexa-width = #5
     b
     c'
-    \revert NoteHead #'style
+    \revert NoteHead.style
     % though ligature-flexa is still ##t, this pair must be drawn as recta
     b\longa
-    \revert NoteHead #'flexa-width
-    \revert NoteHead #'ligature-flexa
+    \revert NoteHead.flexa-width
+    \revert NoteHead.ligature-flexa
     \]
 
   \bar "|" \break
 
 \context Staff \with
 {
-  \override StaffSymbol #'line-count = #4
+  \override StaffSymbol.line-count = #4
 }
 {
   \clef "petrucci-c5"
   \set Staff.printKeyCancellation = ##f
   \cadenzaOn % turn off bar lines
-  \accidentalStyle "forget"
+  \accidentalStyle forget
   \textLengthOn
 
   \[
index bf2fae37d8dd79ac4357cfc0a48ec889534cc1ce..3f028f97ff0534f175dd8106ffdc7f774badd759 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   
   texidoc = "There is limited support for mensural notation: note head
@@ -9,7 +9,7 @@ both for up and down stems."
 
 
 { \context Voice { 
-  \override NoteHead  #'style = #'mensural
+  \override NoteHead.style = #'mensural
   \transpose c d'' {  c4 c2 c8  c16 c16  c1 c\breve c\longa }
   \transpose c c' { c4 c2 c8  c16 c16  c1 c\breve c\longa }
 }}
index e75549626a05e7f3fef2c354b7aa396dc30623b8..16325e95576621fd53d3ccdca9ca0b2ce53dbe11 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 texidoc = "A @code{MetronomeMark}, @code{RehearsalMark} and @code{BarNumber}
@@ -15,14 +15,14 @@ should not effect the starting point of spanners.
  }
 
  \new Staff {
-   \override Score.MetronomeMark #'break-visibility = #all-visible
-   \override TupletBracket #'breakable = ##t
-   \override Beam #'breakable = ##t
-   \override Glissando #'breakable = ##t
+   \override Score.MetronomeMark.break-visibility = #all-visible
+   \override TupletBracket.breakable = ##t
+   \override Beam.breakable = ##t
+   \override Glissando.breakable = ##t
 
    \ottava #1 \times 1/1 { e'8\<\startTextSpan\startTrillSpan\glissando
-     [ \override NoteColumn #'glissando-skip = ##t\repeat unfold 22 e'8
-       \revert NoteColumn #'glissando-skip e'8\!\stopTextSpan\stopTrillSpan ] } |
+     [ \override NoteColumn.glissando-skip = ##t\repeat unfold 22 e'8
+       \revert NoteColumn.glissando-skip e'8\!\stopTextSpan\stopTrillSpan ] } |
  }
  \addlyrics { ah __ \repeat unfold 21 { \skip 4 } _ rrgh }
  \addlyrics { ah --  \repeat unfold 21 { \skip 4 } _ rrgh }
index dd6f44b00473cab475b9580b3fd98bf0c58eca84..deca81dd521a562eabe8b1c27c383a9bca83d804 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Metronome marks aligned on notes do not interfere with
@@ -21,7 +21,7 @@ the second note in the lower staff."
   \layout {
     \context {
       \Score
-      \override NonMusicalPaperColumn #'stencil = #ly:paper-column::print
+      \override NonMusicalPaperColumn.stencil = #ly:paper-column::print
     }
   }
 }
index 18edbe585905f5b19498ab989842fe6eb3770286..21410c6e6c9e4e9583fbd64f17ed0d3af4928e44 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Metronome marks respect symbol order in
@@ -17,8 +17,8 @@ measure.
 }
 
 \relative c' {
-  \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
-  \override Score.MetronomeMark #'break-align-symbols = #'(time-signature key-signature)
+  \override Staff.KeySignature.break-align-anchor-alignment = #LEFT
+  \override Score.MetronomeMark.break-align-symbols = #'(time-signature key-signature)
   \key c \minor
   \tempo "Time"
   c1 
index 849ebb6146ea6a388ffa09d3553725f4853ce0ba..81e2599f03a007d6a339f2b696d329d8bb2308d7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "@code{\\tempo} marks are aligned with the time signature
@@ -28,7 +28,7 @@ with a key signature.
   \time 8/8
   \tempo "T-time"
   R1
-  \override Score.MetronomeMark #'break-align-symbols = #'(key-signature)
+  \override Score.MetronomeMark.break-align-symbols = #'(key-signature)
   \key as \major
   \tempo "T-key"
   R1
index 186b71c0eba0d8b07fe0cb93b89f190583687530..ceafcc05dbf774e79e8723386e357fd977b30d00 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header{ texidoc = "The sans serif style tab clef is automatically adjusted to
                     different string spacings."
@@ -32,7 +32,7 @@ guitar = \relative c {
     \new TabStaff {
       \clef "moderntab"
       \set TabStaff.stringTunings = #guitar-tuning
-      \override TabStaff.StaffSymbol #'staff-space = #1.0 % default value is 1.5
+      \override TabStaff.StaffSymbol.staff-space = #1.0 % default value is 1.5
       \guitar
     }
   >>
index 1a19c523ff2b62f05abc6903130c4f58c3c2b2b7..9b5003e3f0619859ea4fe6eee1c22ac0451952a8 100644 (file)
@@ -27,7 +27,7 @@ been lowered
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 manuscriptBreak = { \break }
 
 
@@ -107,11 +107,11 @@ secondVerse = \lyricmode {
     }
 
 pianoRH =  \relative c''' \repeat volta 2 {
-    \accidentalStyle "modern"
+    \accidentalStyle modern
     g16(_\p fis a g fis g f e d c b a ) | 
     <g e>8( <es fis a> <d f b> <c e c'>) r8 r | 
     r8 c'( e,) f r a |
-    \once \override DynamicLineSpanner   #'padding =#3
+    \once \override DynamicLineSpanner.padding =#3
     r8 << { s8\> s8\! }  << { fis( g)
                            } \\ { c,4 } >> >> r8 <e c g> <e c g> |
     <d c a>4. r8 \clef bass  <d b f> <d b f> |
@@ -128,7 +128,7 @@ pianoRH =  \relative c''' \repeat volta 2 {
 }
 
 pianoLH =  \relative c'' \repeat volta 2 {
-    \accidentalStyle "modern"
+    \accidentalStyle modern
     g16( fis a g fis g f e d c b a) | 
     \clef bass g4.( c,8) r r
     \clef treble r4 <bes' c>8([ <a c>)] r <f c'> |
@@ -141,7 +141,7 @@ pianoLH =  \relative c'' \repeat volta 2 {
     fis r4 <g b>8( |
     <f c'>4.)
 
-    \once \override Slur  #'height-limit = #1.0
+    \once \override Slur.height-limit = #1.0
 
     <g c>4.( | <a c>4.) <g b,> |
     c,4 r8 g4 r8 |
@@ -155,7 +155,7 @@ pianoLH =  \relative c'' \repeat volta 2 {
     \score {
        << \time 6/8
           \new Staff <<
-              \context Staff \accidentalStyle "modern"
+              \context Staff \accidentalStyle modern
               \melody >>
           \lyricsto "singer" \new Lyrics \firstVerse
           \lyricsto "singer" \new Lyrics \secondVerse
@@ -171,13 +171,13 @@ pianoLH =  \relative c'' \repeat volta 2 {
        \layout {
            \context {
                \Lyrics
-               \override LyricText #'font-size = #-1
+               \override LyricText.font-size = #-1
            }
            \context {
                \Score
-               \override Beam #'beam-thickness = #0.55
-               \override SpacingSpanner #'spacing-increment = #1.0
-               \override Slur #'height-limit = #1.5
+               \override Beam.beam-thickness = #0.55
+               \override SpacingSpanner.spacing-increment = #1.0
+               \override Slur.height-limit = #1.5
            }
        }
        \midi {
index 4fe4973efe18f5ed1f9a123f62d4defb4869f51a..3fca03fd3fde78c3d22ba98320538ad97336f6d6 100644 (file)
@@ -1,10 +1,10 @@
 % 
 
-longgrace = \override Flag  #'stroke-style = #'()
-endlonggrace = \revert Flag #'stroke-style
+longgrace = \override Flag.stroke-style = #'()
+endlonggrace = \revert Flag.stroke-style
 ritenuto = \markup { \italic  "rit." }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   \context {
@@ -12,11 +12,11 @@ ritenuto = \markup { \italic  "rit." }
     skipBars = ##t
     midiInstrument = #"french horn"
     %% try to mimic Breitkopf
-    \override RehearsalMark #'padding = #1
+    \override RehearsalMark.padding = #1
     restNumberThreshold = #1
 
-    \override RehearsalMark #'font-series = #'bold
-    \override RehearsalMark #'font-size = #4.5
+    \override RehearsalMark.font-series = #'bold
+    \override RehearsalMark.font-size = #4.5
   }
 }
 
index 145551b2a90465003c083998b30e0fdd6f9a7410..403d7aaf4963518a47c527c20cebe07b0b449bd9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \include  "mozart-hrn3-defs.ily"
 
 romanze =  \relative c' {
@@ -44,12 +44,12 @@ romanze =  \relative c' {
   \grace e16
   d8.[  c16) \< ]  c8[ c-.( c-. c)-.]\!
   \mark "C"
-  \override DynamicLineSpanner #'staff-padding = #2.5
+  \override DynamicLineSpanner.staff-padding = #2.5
   des1\sfp
   g,1\sfp
   c\sfp
   c,\sfp
-  \revert DynamicLineSpanner #'staff-padding
+  \revert DynamicLineSpanner.staff-padding
   R1*3
   r8  c[\p c c] c2~
   c8[ c' c c] c2~
index bc1a648567d416234b8cbe273cc503f0ef1d3aec..67130754de2220d7ecd9c5a760652b10c8b53a72 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header
 {
   texidoc = "The multimeasure rest is centered exactly between bar lines."
@@ -12,8 +12,8 @@
 
 {
   \set Score.skipBars = ##t
-  \override Staff.BarLine  #'hair-thickness = #7.5
-  \override Staff.MultiMeasureRest  #'hair-thickness = #10
+  \override Staff.BarLine.hair-thickness = #7.5
+  \override Staff.MultiMeasureRest.hair-thickness = #10
 
   c'1 R1*20 c'1
 }
index 2b9aa7e1695b9661d31dcd24af1ea6dfd7b92c9d..b063413003ada8a97ded7e6ac69c240f917ce690 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Though the default spacing for multi-measure rests
@@ -8,7 +8,7 @@ restored by overriding @code{spacing-pair}."
 
 <<
   \new Staff  {
-    \once \override MultiMeasureRest #'spacing-pair =
+    \once \override MultiMeasureRest.spacing-pair =
     #'(break-alignment . staff-bar)
     R1
   }
index 241cd920403b00f6807615ccd7e2b0ec0a91a20d..bd917b88493077a4a134a638ba4eebcb6de7a249 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Multi measure rest staff position can be overridden
@@ -7,6 +7,6 @@ to 0.
 }
 
 \relative c' {
-  \override MultiMeasureRest #'staff-position = #0
+  \override MultiMeasureRest.staff-position = #0
   R1
 }
index cc58c2470f8c3dec991173ce6a0731c86369f393..ad3d6ccf69717615a60ed8b82c68381206b475ec 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header  {
 
@@ -22,7 +22,7 @@ measures stretch to accommodate wide texts.
   R2.^"4"
   R2.*3_\markup { \roman "a1b2c3" }
   R2.*10^"inner"^"top"_"inner"_"bot"
-  \override MultiMeasureRestText  #'springs-and-rods
+  \override MultiMeasureRestText.springs-and-rods
     = #ly:multi-measure-rest::set-text-rods
 
   R2.^"very very very very very very long text"
index e05c7964eeb45a9e2613fdd3edbf1461323ef53f..af157a37c7f320ddcb20a4d3a7cf8db16ee38072 100644 (file)
@@ -2,23 +2,23 @@
   texidoc = "Multi-measure rests standard values can be tweaked."
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \markup "Use non-standard multi-measure rests:"
 \new Staff {
-  \override MultiMeasureRest #'usable-duration-logs = #(iota 2 1)
+  \override MultiMeasureRest.usable-duration-logs = #(iota 2 1)
   \time 1/4 R4
   \time 2/4 R2
 }
 \markup "Round up to the longer rest:"
 \new Staff {
-  \override MultiMeasureRest #'round-up-to-longer-rest = ##t
+  \override MultiMeasureRest.round-up-to-longer-rest = ##t
   \time 3/2 R1.
   \time 7/2 R\breve..
 }
 \markup "Round up to the longer rest only in specified time signatures:"
 \new Staff {
-  \override MultiMeasureRest #'round-up-exceptions = #'((3 . 2))
+  \override MultiMeasureRest.round-up-exceptions = #'((3 . 2))
   \time 3/2 R1.
   \time 7/2 R\breve..
   \time 3/2 R1.
index f86e1a0c7fcddb7e85b8e06c36cf984715107c22..628cee139d94cf4fddccdde56881b6a0793d76c9 100644 (file)
@@ -6,7 +6,7 @@ end span events at the end of a note."
   
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper{
   ragged-right = ##T
 }
@@ -14,7 +14,7 @@ end span events at the end of a note."
 << {   c'4 c c c }
    \\
    {
-     \override TextSpanner #'bound-details #'left #'text = "x" 
+     \override TextSpanner.bound-details.left.text = "x" 
      \endSpanners c,2\<\startTextSpan c2
 
    }
index 0a1d36825a42503245aec2779dbb3c6679bd0c16..8f4da124fa0d81f6864b40a96f1b5adb7d9e897d 100644 (file)
@@ -1,13 +1,13 @@
 \header
 {
-    
+
 texidoc = "Music functions are generic music transformation functions,
 which can be used to extend music syntax seamlessly.  Here we
 demonstrate a @code{\\myBar} function, which works similar to
 @code{\\bar}, but is implemented completely in Scheme."
 
 }
-\version "2.16.0"
+\version "2.17.5"
 
 myBar = #(define-music-function (parser location bar-type) (string?)
           (context-spec-music
@@ -17,6 +17,6 @@ myBar = #(define-music-function (parser location bar-type) (string?)
 \layout { ragged-right = ##t }
 
 {
-    d4 \myBar "|:" d4
+    d4 \myBar ".|:" d4
 }
 
index 65e73ea8670b8e35a69acb88e28293279055af16..5d1b8fc658da3bba123f2dcecbe25c7be3c4dd63 100644 (file)
@@ -3,8 +3,6 @@ depth = ../../..
 STEPMAKE_TEMPLATES=documentation texinfo tex
 LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc musicxml
 
-EXTRA_DIST_FILES = LICENSE book-musicxml-testsuite.py
-
 TEXI2HTML_FLAGS += --nomenu
 
 COLLATED_FILES = $(sort $(MUSICXML_FILES) $(MUSICMXL_FILES) $(TEXINFO_SOURCES) )
index 79e8ec88dc0a93024f2190cb9f23f824190fc27e..d63e91abe64c72a2455df5823823baa7c8d463b5 100644 (file)
@@ -1,12 +1,12 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Bar lines are positioned correctly when using custom
 staves which are not centered around position@tie{}0.
 "
 }
 \new Staff {
-  \override Staff.StaffSymbol #'line-positions = #'(1 3 5 7 9)
+  \override Staff.StaffSymbol.line-positions = #'(1 3 5 7 9)
   c''1 \bar "||"
-  c''1 \bar ":"
+  c''1 \bar ";"
   c''1 \bar "|."
 }
index a3ba0d92a69b0c8877f518c51aaf810892d5e4b5..c6e520bd555b2d95f8f7ea4c4f6674806c086d55 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header{
   texidoc = "By default, text is set with empty horizontal dimensions.
@@ -12,11 +12,11 @@ to control the horizontal size of text."
 
 \relative c''{
   %% \textLengthOff
-  %% short for \override TextScript #'extra-spacing-width = #'(+inf.0 . -inf.0)
-  %%           \override TextScript #'extra-spacing-height = #'(0 . 0)
+  %% short for \override TextScript.extra-spacing-width = #'(+inf.0 . -inf.0)
+  %%           \override TextScript.extra-spacing-height = #'(0 . 0)
   c2_"very wide and long text" c | \break
-  %% short for \override TextScript #'extra-spacing-width = #'(0 . 0)
-  %%           \override TextScript #'extra-spacing-height = #'(-inf.0 . +inf.0)
+  %% short for \override TextScript.extra-spacing-width = #'(0 . 0)
+  %%           \override TextScript.extra-spacing-height = #'(-inf.0 . +inf.0)
   \textLengthOn
   c2_"very wide and long text" c
 }
index 9ddc8b6ae8456000d8d7ea1a977528dd5486886f..987b312febc4e69a14f6e4e3c1f3cdd1522b91be 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header{
   texidoc="
 Note head shapes may be set from several choices.
@@ -16,94 +16,67 @@ dimensions.
   ragged-right = ##t
 }
 
-pattern = <<
-  \new Voice {
-    \override Stem  #'direction = #UP
+pattern =
+#(define-music-function (parser location name style) (markup? ly:context-mod?)
+#{ <<
+  s1^#name
+  \new Voice \with #style {
+    \override Stem.direction = #UP
     e'4 e'2. e'1 e'\breve*1/2 e'\longa*1/4
   }
-  \new Voice {
-    \override Stem  #'direction = #DOWN
+  \new Voice \with #style {
+    \override Stem.direction = #DOWN
     g4 g2. g1 g\breve*1/2 g\longa*1/4
   }
->>
+>> #})
 
+patternStyle =
+#(define-music-function (parser location style) (symbol?)
+  #{
+     \pattern #(symbol->string style) \with {
+       \override NoteHead.style = #style
+     }
+  #})
 
 \transpose c c {
   \clef C
 
-  \override Staff.NoteHead  #'style = #'default
-  s1*0^\markup { "default" }
-  \pattern
-
-  \override Staff.NoteHead  #'style = #'altdefault
-  s1*0^\markup { "altdefault" }
-  \pattern
+  \patternStyle default
+  \patternStyle altdefault
 
   \break
 
-  \override Staff.NoteHead  #'style = #'baroque
-  s1*0^\markup { "baroque" }
-  \pattern
-
-  \override Staff.NoteHead  #'style = #'neomensural
-  s1*0^\markup { "neomensural" }
-  \pattern
+  \patternStyle baroque
+  \patternStyle neomensural
 
   \break
 
-  \override Staff.NoteHead  #'style = #'mensural
-  s1*0^\markup { "mensural" }
-  \pattern
-
-  \override Staff.NoteHead  #'style = #'petrucci
-  s1*0^\markup { "petrucci" }
-  \pattern
+  \patternStyle mensural
+  \patternStyle petrucci
 
   \break
 
-  \override Staff.NoteHead  #'style = #'harmonic
-  s1*0^\markup { "harmonic" }
-  \pattern
-
-  \override Staff.NoteHead  #'style = #'harmonic-black
-  s1*0^\markup { "harmonic-black" }
-  \pattern
+  \patternStyle harmonic
+  \patternStyle harmonic-black
 
   \break
 
-  \override Staff.NoteHead  #'style = #'harmonic-mixed
-  s1*0^\markup { "harmonic-mixed" }
-  \pattern
-
-  \override Staff.NoteHead  #'style = #'diamond
-  s1*0^\markup { "diamond" }
-  \pattern
+  \patternStyle harmonic-mixed
+  \patternStyle diamond
 
   \break
 
-  \override Staff.NoteHead  #'style = #'cross
-  s1*0^\markup { "cross" }
-  \pattern
-
-  \override Staff.NoteHead  #'style = #'xcircle
-  s1*0^\markup { "xcircle" }
-  \pattern
+  \patternStyle cross
+  \patternStyle xcircle
 
   \break
 
-  \override Staff.NoteHead  #'style = #'triangle
-  s1*0^\markup { "triangle" }
-  \pattern
-
-  \override Staff.NoteHead  #'style = #'slash
-  s1*0^\markup { "slash" }
-  \pattern
+  \patternStyle triangle
+  \patternStyle slash
 
   \break
 
-  \override Staff.NoteHead  #'style = #'kievan
-  s1*0^\markup { "kievan" }
-  \pattern
+  \pattern "kievan" \with { \kievanOn }
 
 }
 
index c1be7be23483b112d293ade1a8860865f9b94017..88131f516d16125fb934cbb903d9af4ad1a62944 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Note head lines (e.g. glissando)
@@ -17,7 +17,7 @@ sd = { \change Staff = down}
 \context PianoStaff
 <<
   \new Staff = "up"   {
-    \override Glissando #'breakable = ##t
+    \override Glissando.breakable = ##t
     \set PianoStaff.connectArpeggios = ##t
     \showStaffSwitch
     \clef F
index 489e62be63655a1a0e3cceff90c84c55d2b1d167..fdb44a041be22b8af9a261571a16ddaf0d17d8f2 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header{
   texidoc=" The number of stafflines of a staff can be set.  Ledger
@@ -9,9 +9,9 @@ adjusted accordingly.  "
 
 
 \new Staff \with {
-  \override StaffSymbol #'line-count = #3
+  \override StaffSymbol.line-count = #3
 }
 \relative c {
-  c' c c c | g' g g g  \bar ":|"
+  c' c c c | g' g g g  \bar ":|."
 }
 
index 3dc29fbcb7f469f0288d1a380cbd9ee6e17fa6a0..667e0c01db6bb2e43c66871921b929f1166de0cb 100644 (file)
@@ -5,7 +5,7 @@
   "Both edge heights of an ottava bracket can be specified."
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 
 \layout { ragged-right = ##t} 
   
   %override the left edge height to produce standard text with a left edge
   \ottava #1
-  \once \override Staff.OttavaBracket #'edge-height = #'(1.2 . 1.2)
+  \once \override Staff.OttavaBracket.edge-height = #'(1.2 . 1.2)
   a b c
   \ottava #0
   a
   
   % Look! we can make them go up!
   \ottava #1
-  \once \override Staff.OttavaBracket #'edge-height = #'(-1 . -1)
+  \once \override Staff.OttavaBracket.edge-height = #'(-1 . -1)
   a b c
   \ottava #0
   a
   
   % and have them go in different directions
   \ottava #1
-  \once \override Staff.OttavaBracket #'edge-height = #'(-1.2 . 1.2)
+  \once \override Staff.OttavaBracket.edge-height = #'(-1.2 . 1.2)
   a b c
   \ottava #0
   a
diff --git a/input/regression/outside-staff-placement-directive.ly b/input/regression/outside-staff-placement-directive.ly
new file mode 100644 (file)
index 0000000..81fad0a
--- /dev/null
@@ -0,0 +1,106 @@
+\version "2.17.6"
+
+\header {
+  texidoc = "@code{VerticalAxisGroup} grobs can place outside staff objects
+using one of the four directives shown below.
+"
+}
+
+
+\layout {
+  ragged-right = ##t
+  indent = 0.0
+  \context {
+    \Voice
+    \remove "Ligature_bracket_engraver"
+    \consists "Mensural_ligature_engraver"
+  }
+  \context {
+    \Score
+    \override SpacingSpanner.packed-spacing = ##t
+    \override PaperColumn.keep-inside-line = ##f
+  }
+}
+
+music = \context Voice {
+  \clef "petrucci-c4"
+  \set Staff.printKeyCancellation = ##f
+  \cadenzaOn % turn off bar lines
+  \accidentalStyle forget
+  \textLengthOn
+
+% ligaturae binaria
+
+  \[
+    b\breve^\markup { \column { { \bold "ligaturae binaria" } "BL" } }
+    g\longa
+    \]
+
+  \[
+    g\breve^\markup { "BL" }
+    b\longa
+    \]
+
+  \[
+    b\longa^\markup { "LL" }
+    g
+    \]
+
+  \[
+    g\longa^\markup { "LL" }
+    b
+    \]
+
+  \[
+    b\breve^\markup { "BB" }
+    g
+    \]
+
+  \[
+    g\breve^\markup { "BB" }
+    b
+    \]
+
+  \[
+    b\longa^\markup { "LB" }
+    g\breve
+    \]
+
+  \[
+    g\longa^\markup { "LB" }
+    b\breve
+    \]
+
+  \[
+    b1^\markup { "SS" }
+    g
+    \]
+
+  \[
+    g1^\markup { "SS" }
+    b
+    \]
+
+  \bar "|"
+}
+
+{
+  \override Staff.VerticalAxisGroup.outside-staff-placement-directive =
+    #'left-to-right-polite
+  \music
+}
+{
+  \override Staff.VerticalAxisGroup.outside-staff-placement-directive =
+    #'left-to-right-greedy
+  \music
+}
+{
+  \override Staff.VerticalAxisGroup.outside-staff-placement-directive =
+    #'right-to-left-polite
+  \music
+}
+{
+  \override Staff.VerticalAxisGroup.outside-staff-placement-directive =
+    #'right-to-left-greedy
+  \music
+}
index 3a629ee55671f6262e3549ed00390afcb7ee27a2..03a710b6793b15954b4ef8118186daf680bae18a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "A sublist of grob property lists may be overridden within a callback.
@@ -7,7 +7,7 @@
 }
 
 \relative c' {
-  \override Glissando #'after-line-breaking =
+  \override Glissando.after-line-breaking =
     #(lambda (grob)
        (ly:grob-set-nested-property! grob '(bound-details right Y) 3))
   c1 \glissando
index 6c899c7b6c50745353593a366b54f62e4c1d3f05..08a45d36d6d4cda97ee27faf51407b445d048db3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Sublist of grob property lists may be also tuned.  In the
@@ -7,8 +7,8 @@ grob is tweaked."
 }
 
 \relative c' {
-  \override Stem #'details #'beamed-lengths = #'(6 10 8)
+  \override Stem.details.beamed-lengths = #'(6 10 8)
   c8[ c] c16[ c] c32[ c]
-  \revert Stem #'details
+  \revert Stem.details
   c8[ c] c16[ c] c32[ c]
 }
index fdfdd79327e511bc5b327aa82719f24862229b9f..2e148b303ab3d67839fb9d497020a734b7e3d42c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "minimum-distance within a system is correctly accounted for in page breaking."
@@ -7,7 +7,7 @@
 \layout {
   \context {
     \Score
-    \override VerticalAxisGroup #'staff-staff-spacing =
+    \override VerticalAxisGroup.staff-staff-spacing =
       #'((minimum-distance . 20))
   }
 }
index 3b4ed80620dc0f439bb6a44ae75a01137e27b1f4..a316608e6b35198b258b813b9a9329cf5e50d712 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "minimum-distance within a system is correctly accounted for in page breaking."
@@ -7,7 +7,7 @@
 \layout {
   \context {
     \Score
-    \override NonMusicalPaperColumn #'line-break-system-details = #'((alignment-distances . (20)))
+    \override NonMusicalPaperColumn.line-break-system-details = #'((alignment-distances . (20)))
   }
 }
 
index 21fa1fe80b4312f598197ecca103c479859edd0e..b0d426ea891a4a34e79157ecf2467ff7935219c9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Page labels may be placed inside music or at top-level,
@@ -38,7 +38,7 @@ and referred to in markups."
       \mark "B" \label #'markB
       d' d'
       d' d'
-      \once \override Score . RehearsalMark #'break-visibility = #begin-of-line-invisible
+      \once \override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
       \mark "C" \label #'markC
     }
     \header { piece = "First score" }
index 0067cf34dcdb6ef8f657f0ffacd6775f111e5b06..60ff82d3e1a130b83d3448402c2f71c77a6e07bb 100644 (file)
@@ -8,7 +8,7 @@ systems may be placed absolutely on the printable area of the page."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 #(set-default-paper-size "a6" 'portrait)
 
@@ -25,15 +25,13 @@ systems may be placed absolutely on the printable area of the page."
   \score {
     {
       \overrideProperty 
-      #"Score.NonMusicalPaperColumn"
-      #'line-break-system-details
+      Score.NonMusicalPaperColumn.line-break-system-details
       #'((Y-offset . 0.0))
       c1 c1 \break
       
     
       \overrideProperty 
-      #"Score.NonMusicalPaperColumn"
-      #'line-break-system-details
+      Score.NonMusicalPaperColumn.line-break-system-details
       #'((Y-offset . 62.0)
          (X-offset . 8.0)
       )
index c068be2f33403318817524d65099750d463c7d38..7ce93d0e6123de14cd3267da314343d17cb2d11f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "@var{alignment-distances} applies to the toplevel
@@ -9,8 +9,7 @@ the bass figure line should be directly below the 6."
 \score {
  <<
    \new Staff {
-     \overrideProperty #"Score.NonMusicalPaperColumn"
-     #'line-break-system-details #'((alignment-distances . (15)))
+     \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
      c'4
    }
    \new Staff <<
index d83ece346c0ead785142bb8182fef742892deb7b..3b8a17caa4a4a5ca4a638a203070591752ff35f5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Dynamic centering still works with alignment-distances."
@@ -13,7 +13,7 @@
   \layout {
     \context {
       \Score
-      \override NonMusicalPaperColumn #'line-break-system-details =
+      \override NonMusicalPaperColumn.line-break-system-details =
         #'((alignment-distances . (20)))
     }
   }
index 355edee9dd75d9402b055f9c7360d858d0e97619..40e13626a92bc8975e444b45b7fbafb7568f28c8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Non-staff lines between two systems don't confuse the
@@ -15,7 +15,7 @@ between the two closest staves of consecutive systems."
 
 <<
   \new Lyrics
-  \with { \override VerticalAxisGroup #'staff-affinity = #DOWN }
+  \with { \override VerticalAxisGroup.staff-affinity = #DOWN }
   \lyricmode {
     My2 first Li4 -- ly song,2
     My2 first Li4 -- ly song,2
index ec4dceeaf4bc498ac4753b8b3b11ec0b1f13bb16..656f70024130b9f3cd659b16aa31ac1bc383d003 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "A non-staff line (such as @code{Lyrics}) at the
@@ -9,7 +9,7 @@ bottom of a system gets spaced appropriately."
   ragged-right = ##t
   \context {
     \Lyrics
-    \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'basic-distance = #20
+    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.basic-distance = #20
   }
 }
 <<
index 99749aa80b906e8763091a9c7b1821c415e117d5..aff5f0a9d4a4e162680ced897efba1ef1b778a91 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Padding from the header and footer is measured to the
@@ -17,10 +17,10 @@ first non-staff line, whether or not it is spaceable."
 
   \score {
     <<
-      \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #DOWN } \lyricmode { foo }
-      \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #DOWN } \lyricmode { foo }
-      \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #DOWN } \lyricmode { foo }
-      \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #DOWN } \lyricmode { foo }
+      \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #DOWN } \lyricmode { foo }
+      \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #DOWN } \lyricmode { foo }
+      \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #DOWN } \lyricmode { foo }
+      \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #DOWN } \lyricmode { foo }
       \new Staff { c'1 }
       \new Staff { c'1 }
       \new Lyrics \lyricmode { foo }
index 35b583429b738253fcc6c2d7f828b68242774545..96f1c1df12dbdf8ae4b6905ea1c528899c6bc970 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Spacing rules between Staves coexist with rules affecting
@@ -17,9 +17,9 @@ staves is larger than the @code{padding} for associated lyrics."
 \layout {
   \context {
     \Lyrics
-    \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #'((padding . 0.2))
+    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #'((padding . 0.2))
   } \context {
     \Staff
-    \override VerticalAxisGroup #'default-staff-staff-spacing = #'((padding . 4))
+    \override VerticalAxisGroup.default-staff-staff-spacing = #'((padding . 4))
   }
 }
index 05566ca81309b458a33ff4c8b3a47ab85986c2bd..9e9ce607f13138df766018adf6b3927e1794978b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "A non-staff line (such as @code{Lyrics}) at the top
@@ -9,9 +9,8 @@ of a system is spaced appropriately."
   ragged-right = ##t
   \context {
     \Lyrics
-    \override VerticalAxisGroup
-      #'nonstaff-nonstaff-spacing #'minimum-distance = #20
-    \override VerticalAxisGroup #'staff-affinity = #DOWN
+    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.minimum-distance = #20
+    \override VerticalAxisGroup.staff-affinity = #DOWN
   }
 }
 <<
index 16e5588d276aa61e532e8702817eadb31fee8893..82d07a9be85894a8b2a57061c122404b2d821df7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Non-staff lines (such as @code{Lyrics}) can specify
@@ -9,8 +9,7 @@ which they don't have affinity."
 <<
   \new Staff { c'1 }
   \new Lyrics \with {
-    \override VerticalAxisGroup
-      #'nonstaff-unrelatedstaff-spacing #'padding = #'20
+    \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = #'20
   } \lyricmode { foo }
   \new Staff { c'1 }
 >>
index 34dd5205124f96d9d2a9af9c68da961db7ffae10..5dc6a675764d6f579c008c72342977beace8e54c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "StaffGrouper interacts correctly with \RemoveEmptyStaffContext.
@@ -18,7 +18,7 @@ In both systems, there should be a large space between the staff groups."
 \score {
   <<
     \new StaffGroup = "G1" \with {
-      \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+      \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
     }
     <<
       \new Staff { c'1 \break c'1 \break R1 }
index 3d0ca6b0caaf31d9aaea1b50bee1235d1dd2ff59..865b84b4b6b9c6d389b758bc4aa9fde7341696f5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "StaffGroups can be nested, in which case the inner StaffGroup wins."
@@ -7,14 +7,14 @@
 \score {
  <<
    \new StaffGroup \with {
-     \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #15
+     \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #15
    }
    <<
      \new Staff {
        c'1
      }
      \new StaffGroup \with {
-       \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+       \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
      } <<
        \new Staff {
          c'1
index 3fec3cf67b666734747600d4cb53634056a09a4b..b662df5d6638673721a6a360dddb0651cc60e22a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 #(set-default-paper-size "a6")
 
@@ -13,8 +13,7 @@ between staves."
   <<
     \new Staff { c'1 \pageBreak c'1 }
     \new Staff \with {
-      \override VerticalAxisGroup
-        #'default-staff-staff-spacing #'stretchability = #50
+      \override VerticalAxisGroup.default-staff-staff-spacing.stretchability = #50
     } { c'1 c'1 }
     \new Staff { c'1 c'1 }
   >>
index 197dbe38ea721a948df0529a5ad08bbaeecd5114..f62e4722551e4c3f1e72041947f4c32c81efc3a9 100644 (file)
@@ -13,7 +13,7 @@ By setting @code{annotate-spacing}, we can see the effect of each property.
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 #(set-global-staff-size 11)
 
@@ -25,14 +25,12 @@ By setting @code{annotate-spacing}, we can see the effect of each property.
        c\break
 
        \overrideProperty
-       #"Score.NonMusicalPaperColumn"
-       #'line-break-system-details
+       Score.NonMusicalPaperColumn.line-break-system-details
        #'((Y-extent . (-30 . 10)))
        c_"Big bounding box (property Y-extent)"\break
 
        \overrideProperty
-       #"Score.NonMusicalPaperColumn"
-       #'line-break-system-details
+       Score.NonMusicalPaperColumn.line-break-system-details
        #'((refpoint-Y-extent . (-37 . -10)))
        c_\markup {
          \column {
@@ -44,19 +42,17 @@ By setting @code{annotate-spacing}, we can see the effect of each property.
        \break
 
        \overrideProperty
-       #"Score.NonMusicalPaperColumn"
-       #'line-break-system-details
+       Score.NonMusicalPaperColumn.line-break-system-details
        #'((next-padding . 10))
 
        c_"Followed by padding, ie unstretchable space. (property next-padding)" \break
        \overrideProperty
-       #"Score.NonMusicalPaperColumn"
-       #'line-break-system-details
+       Score.NonMusicalPaperColumn.line-break-system-details
        #'((next-space . 20))
        c_"Followed by stretchable space (property next-space)"\break
        c\break
        \overrideProperty
-       #"Score.NonMusicalPaperColumn" #'line-break-system-details
+       Score.NonMusicalPaperColumn.line-break-system-details
        #'((bottom-space . 25.0))
        c_"25 staff space to the bottom of the page. (property bottom-space)"\break
 
index bceef72a62b2bf1438c67bfa054b8589011efdbc..80494988c36b1ed15945bde37d319fcdaf2227ef 100644 (file)
@@ -4,7 +4,7 @@
 first system can be forced to be uniform."
 
 }
-\version "2.16.0"
+\version "2.17.6"
 
 #(set-default-paper-size "a6")
 
@@ -16,7 +16,7 @@ first system can be forced to be uniform."
       c1\break\pageBreak
       c1
       \break\pageBreak
-      \override TextScript #'padding = #20
+      \override TextScript.padding = #20
       c1^"bla"
     }
   }
index 52401ae0ab8fe69fe7b5792b22e04470f4264462..932e64acd7f26eb5b84a68d662feb8913b8f8605 100644 (file)
   ragged-right = ##t
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \relative c' {
   c4 -\parenthesize -.
 
-  \override ParenthesesItem #'padding = #0.1
+  \override ParenthesesItem.padding = #0.1
   <d \parenthesize fis a> 
 
 }
index a9cb0e4b8c3ed36dfb8e7f309171fbd15a4a5710..8c4c8d1a129d4425b0e19f70c39f98e42effb984 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header
 {
   texidoc = "The standard piano pedals style comes with Ped symbols.
@@ -14,7 +14,7 @@ at the end of the melody."
   c, d16[  c  c c]  e[ e \sustainOff \sustainOn e e ] f4 \sustainOff 
   g\sustainOn  b \sustainOff c 
   \set Staff.pedalSustainStrings = #'("-" "-P" "P")
-  \override Staff.SustainPedal   #'padding = #-2
+  \override Staff.SustainPedal.padding = #-2
   c, \sustainOn d e \sustainOff \sustainOn f
   \sustainOff g b c
 }
index cf0118a44d3de0a0f0499ae8148551cffb9c0b0f..fc8e69a7e32a5246df1f0a0d1a950645b03e66a7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header { texidoc = "
 The appearance of phrasing slurs may be changed from solid to dotted or dashed.
 "
@@ -16,7 +16,7 @@ The appearance of phrasing slurs may be changed from solid to dotted or dashed.
   c\( d e  c\) |
   \phrasingSlurDashPattern #0.4 #2.0
   c\( d e  c\) |
-  \once \override Slur #'dash-definition = #'((0 0.25 1 1)
+  \once \override Slur.dash-definition = #'((0 0.25 1 1)
                                               (0.3 0.7 0.4 0.75)
                                               (0.75 1.0 1.0 1.0))
   c\( d e  c\) |
index 7ab076858f91c6c8f8ce4f1096319cdbb1e0cf55..8eb6b0b20a84194a95517459d2ed87e0f3a655f7 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.5"
 \header {
 
   texidoc = "Distances between prefatory items (e.g. clef, bar,
@@ -16,11 +16,11 @@ bar-line is different from the start of line.
 
 \relative c'' {
   \set Staff.instrumentName = "fobar"
-  \bar "||:"
+  \bar ".|:-||"
   \key cis \major
   cis4 cis4 cis4 cis4 \clef bass  cis,1
   \clef treble
-  \bar ":|"
+  \bar ":|."
   \key g \minor
   c1
 }
index 911e2384371f14266cd916827a68dc6a8c84be0b..d7929a210a55e62f3beec499944e391ecf65e43d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Nested properties may be overridden using Scheme list
 syntax.  This test performs two property overrides: the first
@@ -8,13 +8,13 @@ list.
 }
 
 \relative c' {
-  \once \override TextSpanner #'bound-details #'left #'text = #"foo"
+  \once \override TextSpanner.bound-details.left.text = #"foo"
   c4\startTextSpan
-  \once \override Tie #'details #'note-head-gap = #1
+  \once \override Tie.details.note-head-gap = #1
   c4 ~ c c\stopTextSpan
   
-  \once \override TextSpanner #'(bound-details left text) = #"foo"
+  \once \override TextSpanner.bound-details.left.text = #"foo"
   c4\startTextSpan
-  \once \override Tie #'(details note-head-gap) = #1
+  \once \override Tie.details.note-head-gap = #1
   c4 ~ c c\stopTextSpan
 }
index b7fb7f61a48841dbdf2582041e009f46ad52168d..b8d65588423a35b03412a2daae71ca6c616f26eb 100644 (file)
@@ -6,17 +6,17 @@ Scheme list syntax."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \relative c' {
   f2 \glissando c
-  \override Glissando #'bound-details #'right #'Y = #4
+  \override Glissando.bound-details.right.Y = #4
   f2 \glissando c |
-  \override Glissando #'bound-details #'left #'Y = #-6
+  \override Glissando.bound-details.left.Y = #-6
   f2 \glissando c
-  \revert Glissando #'(bound-details right Y)
+  \revert Glissando.bound-details.right.Y
   f2 \glissando c
-  \revert Glissando #'(bound-details left Y)
+  \revert Glissando.bound-details.left.Y
   f2 \glissando c
 }
 
index 642d18104b8d0bd213f7e3e5abad8e50bc638142..5d5b8f4b5774fbd1e21e3cf3062cb66c0ed073f0 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header {
     texidoc = "Once properties take effect during a single time step only."
 }
@@ -8,7 +8,7 @@
 
 \relative c' {
     c4
-    \once \override Stem #'thickness = #5.0
+    \once \override Stem.thickness = #5.0
     c4
     c4
     c4
index 1f25719d090caecfe125a0ce84588ec17384e989..b84a83aa527a485facb3856f7ca12037f0e63030 100644 (file)
@@ -8,7 +8,7 @@ quoted. In this example, a 16th rest is not quoted, since
 @code{rest-event} is not in @code{quotedEventTypes}."
 
 }
-\version "2.16.0"
+\version "2.17.6"
 \layout {
     ragged-right = ##t
 }
@@ -33,7 +33,7 @@ original = \relative c'' { c8 d s2 es8 gis8 }
        \set Staff.instrumentName = "orig+quote"        
        \set Staff.quotedEventTypes = #'(note-event articulation-event)
        \new Voice {\voiceOne
-           \override Voice . Beam #'collision-voice-only = ##t
+           \override Voice.Beam.collision-voice-only = ##t
            \original }
        \new Voice {\voiceTwo s4 \quoteDuring #"quoteMe" { s2. } }
     >>
index 3c72a3fbb15b5811176c2e093c0faa2a7160db40..4a7c5d22d7164cd8ee138e17a134f344648d5df5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The @code{\\quoteDuring} command shall also quote correctly all
@@ -12,7 +12,7 @@
 }
 
 mus = \relative c' {
-  % Acciaccaturas contain a slur and  \override Flag #'stroke-style
+  % Acciaccaturas contain a slur and  \override Flag.stroke-style
   % Thus, we're checking \override here
   c4 \acciaccatura d8 c4
   % Checking \set and \unset
@@ -21,17 +21,17 @@ mus = \relative c' {
 
   \set autoBeaming = ##f
   % Checking \once \override
-  \once \override Stem #'thickness = #8.0 d8
+  \once \override Stem.thickness = #8.0 d8
   % Checking two overrides
-  \override Stem #'thickness = #8.0 \override Flag #'stroke-style = "grace"
+  \override Stem.thickness = #8.0 \override Flag.stroke-style = "grace"
   d8
   % reverting one of them
-  \revert Stem #'thickness d8
+  \revert Stem.thickness d8
   % and the other
-  \revert Flag #'stroke-style c8
+  \revert Flag.stroke-style c8
 
   % checking tweaks
-  c2-\tweak #'color #red ->
+  c2-\tweak color #red ->
 }
 \addQuote "music" \mus
 
index 943bc453eb96e2b5a00a58c4df658b33d99301ea..1b9d9f2833cd3e8aa0af900386ef59093daded29 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -21,7 +21,7 @@ foo = \relative c' {
 \new Staff
 <<
   \new Voice \transpose c c' {
-    \override Stem #'direction = #UP
+    \override Stem.direction = #UP
     \foo
   }
   \new Voice {
index ffa937775b2c743e39f56d11a66fb8a88d8749c8..aa63a632bd7220baf798c9fb668ca20e3776df32 100644 (file)
@@ -7,7 +7,7 @@ things are quoted. In this example, a 16th rest is not quoted, since
 @code{rest-event} is not in @code{quotedEventTypes}."
 
 }
-\version "2.16.0"
+\version "2.17.6"
 \layout {
     ragged-right = ##t
 }
@@ -35,7 +35,7 @@ original = \relative c'' { c8 d s2 es8 gis8 }
          \new Voice {\voiceTwo
            s4
            \set fontSize = #-4
-           \override Stem #'length-fraction = #(magstep -4)
+           \override Stem.length-fraction = #(magstep -4)
            \quoteDuring #"quoteMe" { \skip 2. }
        }
     >>
index ed1bb1fb92d705c649963dc604730b149c9a5305..d5cdfa85031475cd19c0cb178899136d6b67701b 100644 (file)
@@ -4,10 +4,10 @@
   the alignment depends on which symbols are visible."
 }
 
-\version "2.16.0"
+\version "2.17.6"
   
 \relative c' {
-  \override Score.RehearsalMark #'break-align-symbols = #'(clef key-signature staff-bar)
+  \override Score.RehearsalMark.break-align-symbols = #'(clef key-signature staff-bar)
   c1
   \clef "bass"
   \mark "clef"
index 8350db59c626eb1934d4ce071945d379585b3b32..6472c57a514e9bddc7dae3c10bd92a693f7b93dc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "RehearsalMarks still align correctly if Mark_engraver is moved to
@@ -21,11 +21,11 @@ another context."
   c1
   \key cis \major
   \clef alto
-  \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+  \override Score.RehearsalMark.break-align-symbols = #'(key-signature)
   \mark "on-key"
   cis
   \key ces \major
-  \override Score.RehearsalMark #'break-align-symbols = #'(clef)
+  \override Score.RehearsalMark.break-align-symbols = #'(clef)
   \clef treble
   \mark "on clef"
   ces
index e2ba0068fc00067e01ed310ffed231aba65f871b..a684113ab73183f2ea363eee9001c4a0cc5ea729 100644 (file)
@@ -7,18 +7,18 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
   
 \relative c' {
   c1 \mark "foo"
   c1
   \key cis \major
   \clef alto
-  \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+  \override Score.RehearsalMark.break-align-symbols = #'(key-signature)
   \mark "on-key"
   cis
   \key ces \major
-  \override Score.RehearsalMark #'break-align-symbols = #'(clef)
+  \override Score.RehearsalMark.break-align-symbols = #'(clef)
   \clef treble
   \mark "on clef"
   ces
index 3e9d5774973da9d2a37a0228b94b70c0849d94b3..f0abe4d2287306f32747c0ecd42a601be65ef11e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Rehearsal marks with direction DOWN get placed at
@@ -9,8 +9,8 @@ the bottom of the score."
    \new Staff { g'1 }
    \new Staff {
      c'1
-     \once \override Score . RehearsalMark #'break-visibility = #begin-of-line-invisible
-     \once \override Score . RehearsalMark #'direction = #DOWN
+     \once \override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
+     \once \override Score.RehearsalMark.direction = #DOWN
      \mark \markup \italic "Fine."
    }
  >>
index b3ff68fded6475924bbfc8255ae310faca7f4001..0fb40e07b424496bb5091d38bf68ee87ba314cc1 100644 (file)
@@ -1,10 +1,18 @@
 \header {
-  texidoc = "Relative mode for repeats uses order of entry."
+  texidoc = "Using repeat unfold within a relative block gives a
+different result from writing the notes out in full.  The first
+system has all the notes within the stave.  In the second, the
+notes get progressively higher."
   }
 \version "2.16.0"
 
 \relative c' {
-  \repeat "unfold" 3
-  { f2 bes2 }
-  \alternative { a1 e b } 
+  c'1^"Using unfold"
+  \repeat unfold 3 { f,2^"Repeated" bes2 }
+  \alternative { { a2_"Alt1" c } { e_"Alt2" c } { b_"Alt3" d } }
+}
+
+\relative c' {
+  c'1^"The same notes, written out"
+  f,2 bes2 a2 c f2 bes2 e c f2 bes2 b d
 }
index 39abb34ffc08dda466ec8ddb83400927f8938aba..285bc85076859eec2ab7b44f3eafc227826570d5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "
@@ -41,7 +41,7 @@ staffMusic = \new StaffGroup {
   ragged-right = ##t
   \context {
     \Staff
-    \override Beam #'auto-knee-gap = #4.5
+    \override Beam.auto-knee-gap = #4.5
     \RemoveEmptyStaves
   }
 }
index 651147fa2a9a2a4d4d965304f4e5588e43338fa0..330cda24795f5ec8798c4089955992f8c8b0d50a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
   texidoc = "
@@ -20,5 +20,5 @@ following example should have only one staff.
  >>
 
  \layout { \context { \RemoveEmptyStaffContext
-     \override VerticalAxisGroup #'remove-first = ##t } }
+     \override VerticalAxisGroup.remove-first = ##t } }
 }
index d9aafb8596867a37d1be9ca3e6fdd913bfc3b02f..601f310983f72c0fbcef19c1d855a33f54806b92 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "The positioning of dots and slashes in percent repeat
 glyphs can be altered using @code{dot-negative-kern} and
@@ -12,10 +12,10 @@ glyphs can be altered using @code{dot-negative-kern} and
     \repeat percent 2 { d'1 e' }
   }
   \new Staff {
-    \override PercentRepeat #'dot-negative-kern = #1.1
+    \override PercentRepeat.dot-negative-kern = #1.1
     \repeat percent 2 { c'1 }
-    \override DoublePercentRepeat #'dot-negative-kern = #0
-    \override DoublePercentRepeat #'slash-negative-kern = #1
+    \override DoublePercentRepeat.dot-negative-kern = #0
+    \override DoublePercentRepeat.slash-negative-kern = #1
     \repeat percent 2 { d'1 e' }
   }
 >>
index 3fea78a4a8b080a3034e5ca2f78522a19ce730cb..aa8f3cbc35688d5e34b338aac91f4f267a1fe5e1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "The two dots of a repeat sign should be symmetric
 to the staff centre and avoid staff lines even for exotic staves.
@@ -10,20 +10,20 @@ Test set-global-staff size 10 (with layout-set-staff-size)."
 \score {
   <<
     \context Staff = "s1" \with {
-      \override StaffSymbol #'staff-space = #0.6
+      \override StaffSymbol.staff-space = #0.6
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s2" \with {
-      \override StaffSymbol #'line-positions = #'(-4 -2 0 2)
-      \override StaffSymbol #'staff-space = #0.7
+      \override StaffSymbol.line-positions = #'(-4 -2 0 2)
+      \override StaffSymbol.staff-space = #0.7
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s3" {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
   >>
 }
@@ -31,20 +31,20 @@ Test set-global-staff size 10 (with layout-set-staff-size)."
 \score {
   <<
     \context Staff = "s1" {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s2" \with {
-      \override StaffSymbol #'staff-space = #1.7
-      \override StaffSymbol #'line-positions = #'(-4 -2 0 2)
+      \override StaffSymbol.staff-space = #1.7
+      \override StaffSymbol.line-positions = #'(-4 -2 0 2)
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s3" \with {
-      \override StaffSymbol #'staff-space = #3
+      \override StaffSymbol.staff-space = #3
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
   >>
 
index f3ac22d60a432a5e149b3b422e9c847239548d28..a5beda8c699b9153d5ae3c49bc204003f69c8ffd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "The two dots of a repeat sign should be symmetric
 to the staff centre and avoid staff lines even for exotic staves.
@@ -10,20 +10,20 @@ Test set-global-staff size 30 (with layout-set-staff-size)."
 \score {
   <<
     \context Staff = "s1" \with {
-      \override StaffSymbol #'staff-space = #0.5
+      \override StaffSymbol.staff-space = #0.5
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s2" \with {
-      \override StaffSymbol #'staff-space = #0.6
-      \override StaffSymbol #'line-positions = #'(-4 -2 0 2)
+      \override StaffSymbol.staff-space = #0.6
+      \override StaffSymbol.line-positions = #'(-4 -2 0 2)
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s3" {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
   >>
 }
@@ -31,20 +31,20 @@ Test set-global-staff size 30 (with layout-set-staff-size)."
 \score {
   <<
     \context Staff = "s1" {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s2" \with {
-      \override StaffSymbol #'staff-space = #0.33
+      \override StaffSymbol.staff-space = #0.33
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s3" \with {
-      \override StaffSymbol #'staff-space = #0.33
-      \override StaffSymbol #'line-positions = #'(-4 -2 0 2)
+      \override StaffSymbol.staff-space = #0.33
+      \override StaffSymbol.line-positions = #'(-4 -2 0 2)
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
   >>
 
index 1686722e01fb50796cfa0de19acb85a5a53002e4..4d386efa326548bdf0c6f29d445241e7597ee33e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "The two dots of a repeat sign should be symmetric
 to the staff centre and avoid staff lines even for exotic staves.
@@ -10,19 +10,19 @@ Test set-global-staff size 10 (with layout-set-staff-size)."
 \score {
   <<
     \context Staff = "s1" \with {
-      \override StaffSymbol #'staff-space = #0.7
+      \override StaffSymbol.staff-space = #0.7
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s2" \with {
-      \override StaffSymbol #'line-positions = #'(-4 -2 0 2)
+      \override StaffSymbol.line-positions = #'(-4 -2 0 2)
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s3" {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
   >>
 }
@@ -30,20 +30,20 @@ Test set-global-staff size 10 (with layout-set-staff-size)."
 \score {
   <<
     \context Staff = "s1" {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s2" \with {
-      \override StaffSymbol #'staff-space = #3
-      \override StaffSymbol #'line-positions = #'(-4 -2 0 2)
+      \override StaffSymbol.staff-space = #3
+      \override StaffSymbol.line-positions = #'(-4 -2 0 2)
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s3" \with {
-      \override StaffSymbol #'staff-space = #6
+      \override StaffSymbol.staff-space = #6
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
   >>
 
index 0856984dd7a262304978909f9853f4058338c63b..73d267d362de89f550e58a7b691ca3b71d4558ef 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "The two dots of a repeat sign should be symmetric
 to the staff centre and avoid staff lines even for exotic staves.
@@ -8,19 +8,19 @@ Test layout-set-staff-size."
 \score {
   <<
     \context Staff = "s1" \with {
-      \override StaffSymbol #'staff-space = #0.3
+      \override StaffSymbol.staff-space = #0.3
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s2" \with {
-      \override StaffSymbol #'staff-space = #0.5
+      \override StaffSymbol.staff-space = #0.5
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s3" {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
   >>
 
@@ -33,19 +33,19 @@ Test layout-set-staff-size."
 {
   <<
     \context Staff = "s1" \with {
-      \override StaffSymbol #'staff-space = #0.5
+      \override StaffSymbol.staff-space = #0.5
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s2" \with {
-      \override StaffSymbol #'staff-space = #0.6
+      \override StaffSymbol.staff-space = #0.6
     } {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
 
     \context Staff = "s3" {
-      s1 \bar ":|"
+      s1 \bar ":|."
     }
   >>
 }
index b40c08d5908e6e1d7f5cd0f7301171fad2f46266..dfe00bfc55d8003779cf8abc1be04f4903219422 100644 (file)
@@ -1,11 +1,11 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "The two dots of a repeat sign should be symmetric
 to the staff centre and avoid staff lines even for exotic staves."
 }
 
 
-mus = \context Voice { \relative f' { d e f g \bar ":|" } }
+mus = \context Voice { \relative f' { d e f g \bar ":|." } }
 
 \new Staff {
   <<
@@ -15,7 +15,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-6 -4 -2 0 2)
+  \override StaffSymbol.line-positions = #'(-6 -4 -2 0 2)
 } {
   <<
     \clef french
@@ -25,7 +25,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-count = #4
+  \override StaffSymbol.line-count = #4
 } {
   <<
     \mus
@@ -34,7 +34,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-2 0 2 4)
+  \override StaffSymbol.line-positions = #'(-2 0 2 4)
 } {
   <<
     \mus
@@ -43,7 +43,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-8 -4)
+  \override StaffSymbol.line-positions = #'(-8 -4)
 } {
   <<
     \clef french
@@ -53,8 +53,8 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-2 0)
-  \override StaffSymbol #'staff-space = #1.5
+  \override StaffSymbol.line-positions = #'(-2 0)
+  \override StaffSymbol.staff-space = #1.5
 } {
   <<
     \mus
@@ -63,7 +63,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-2 0)
+  \override StaffSymbol.line-positions = #'(-2 0)
 } {
   <<
     \mus
@@ -72,7 +72,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-2.9 -2)
+  \override StaffSymbol.line-positions = #'(-2.9 -2)
 } {
   <<
     \mus
@@ -81,7 +81,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-4 -3 -2)
+  \override StaffSymbol.line-positions = #'(-4 -3 -2)
 } {
   <<
     \mus
@@ -90,7 +90,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-6 -5 -2 0 3 5)
+  \override StaffSymbol.line-positions = #'(-6 -5 -2 0 3 5)
 } {
   <<
     \mus
@@ -99,8 +99,8 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-4 -2 -1)
-  \override StaffSymbol #'staff-space = #1.5
+  \override StaffSymbol.line-positions = #'(-4 -2 -1)
+  \override StaffSymbol.staff-space = #1.5
 } {
   <<
     \mus
@@ -109,7 +109,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-10 -2 6 14)
+  \override StaffSymbol.line-positions = #'(-10 -2 6 14)
 } {
   <<
     \mus
@@ -118,7 +118,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-5 -4 -2 2 4 6)
+  \override StaffSymbol.line-positions = #'(-5 -4 -2 2 4 6)
 } {
   <<
     \mus
@@ -127,7 +127,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'thickness = #4
+  \override StaffSymbol.thickness = #4
 } {
   <<
     \clef french
@@ -139,7 +139,7 @@ mus = \context Voice { \relative f' { d e f g \bar ":|" } }
 }
 
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(-2)
+  \override StaffSymbol.line-positions = #'(-2)
 } {
   <<
     \mus
index 16e19464a108e672726b43cad3ca3fef30c7b84a..24cc53d8c8695152a5f3b4b80f882c986df41717 100644 (file)
@@ -3,16 +3,16 @@
 account properly."
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##t
 }
 
 
 \relative c''' {
-  \override Rest #'direction = #UP
+  \override Rest.direction = #UP
   \stemDown b8[ r b]
-  \override Rest #'direction = #DOWN
+  \override Rest.direction = #DOWN
   \stemDown b8[ r b]
 }
 
index 94eb2bdaac25acc53dfe15eb866bc0b729748624..f06bda4a7e3831e6afa744049f5b4756b59491ae 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 texidoc = "Breve, whole and half rests moving outside the staff should get
 ledger lines."
@@ -9,7 +9,7 @@ ledger lines."
 
 rPos =
 #(define-music-function (parser location y) (number?)
-  #{ \override Rest #'staff-position = #y #})
+  #{ \override Rest.staff-position = #y #})
 
 {
   \set Score.timing = ##f
index 8f43fb5b171d97593dc292d3d7e067ec36966e74..4e8a039e2af1da057ba1a747b29f88255feb12f9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "half rests should lie on a staff line, whole rests should hang
@@ -42,17 +42,17 @@ mus = {
   }
 
   \new Staff {
-    \override Staff.StaffSymbol #'line-positions = #'(-4 -2 0 2)
+    \override Staff.StaffSymbol.line-positions = #'(-4 -2 0 2)
     \mus
   }
 
   \new Staff {
-    \override Staff.StaffSymbol #'line-count = #4
+    \override Staff.StaffSymbol.line-count = #4
     \mus
   }
 
   \new Staff {
-    \override Staff.StaffSymbol #'line-positions = #'(-4 -2 1 5)
+    \override Staff.StaffSymbol.line-positions = #'(-4 -2 1 5)
     \mus
   }
 
index 678844e2a85eeb3ca5ac49dcf4e01c402490717d..5e24ef5f3958984a1d33b78916f64ecece0a6cfe 100644 (file)
@@ -31,9 +31,8 @@ informations from top- and booklevel stack correctly."
             (set! pitch (modulo (1+ pitch) 7)))))
 
 oneNoteScore =
-#(define-music-function (parser location) ()
-   (add-one-note-score parser)
-   (make-music 'Music 'void #t))
+#(define-void-function (parser location) ()
+   (add-one-note-score parser))
 
 %%%
 
index a83bec87aa74c642c8e21e115aefeb1307ee4667..1e7598b25b5089c8cbeca1427d025b98c98f80ed 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Use @code{define-event-class}, scheme engraver methods,
@@ -210,7 +210,7 @@ schemeTextSpannerEnd =
   a4 b\schemeTextSpannerStart c d |
   \repeat unfold 20 { a4 b c d | }
   a4 b c\schemeTextSpannerEnd d |
-  \override SchemeTextSpanner #'to-barline = ##t
+  \override SchemeTextSpanner.to-barline = ##t
   a4\schemeTextSpannerStart b d c |
   \repeat unfold 20 { a4 b c d | }
   a1\schemeTextSpannerEnd |
index ad625693e0ae5cb9d4884ab69f7b741d0e6ae5bc..88f8f72f02524535330d94df8dc9bfa4001cc4a3 100644 (file)
@@ -7,12 +7,12 @@ means centered on the stem).
 "
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \relative c''
 {
-  \override Script #'toward-stem-shift = #0.0
+  \override Script.toward-stem-shift = #0.0
   a4^. c_.
 
-  \override Script #'toward-stem-shift = #1.0
+  \override Script.toward-stem-shift = #1.0
   a4^. c_.
 }
diff --git a/input/regression/script-tie-collision.ly b/input/regression/script-tie-collision.ly
new file mode 100644 (file)
index 0000000..0b1c837
--- /dev/null
@@ -0,0 +1,23 @@
+\version "2.17.2"
+
+\header {
+  texidoc = "Scripts avoid ties.
+"
+}
+
+% Managing what note heads' scripts have been accounted for in
+% the Tie_engraver is tricky.
+% This regtest tries to confuse it with various configurations
+% Of notes with and without ties, with multiple scripts, etc..
+
+\relative c''' {
+  r2. c4~-> | c-> r2. |
+  r2. c4-> | c-> r2. |
+  r2. c4~-> | c r2. |
+  r2. c4~ | c-> r2. | \break
+  r2. <g-- c-> >4--~ | <g-- c>-> ~ <g c---_>-> r2 |
+  r2. c4~ | c-> ~ c-> r2 |
+  r2. c4~-> | c ~ c-> r2 |
+  r2. c4~-> | c-> ~ c r2 |
+  r2. c4-> |
+}
index 6e8bda777443df88ea62d2e680ecb4b49dc77c0a..c76991235cf9b753fc97ce04631913f6a76c5b09 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "In addition to @code{Slur}, the music function @code{\\shape} works
@@ -15,8 +15,8 @@ function."
 \relative c'' {
   % PhrasingSlur
   d4\( d' b g g,8 f' e d c2\)
-  \override PhrasingSlur #'color = #blue
-  \shape PhrasingSlur #'((0 . -2) (-1 . 3.5) (0.5 . 0.5) (0 . -2.5))
+  \override PhrasingSlur.color = #blue
+  \shape #'((0 . -2) (-1 . 3.5) (0.5 . 0.5) (0 . -2.5)) PhrasingSlur
   d4\( d' b g g,8 f' e d c2\)
   \break
 
@@ -24,8 +24,8 @@ function."
   cis1~
   \break
   cis
-  \override Tie #'color = #blue
-  \shape Tie #'(() ((0 . -0.9) (0 . -0.5) (0 . -0.5) (0 . -0.9)))
+  \override Tie.color = #blue
+  \shape #'(() ((0 . -0.9) (0 . -0.5) (0 . -0.5) (0 . -0.9))) Tie
   cis~
   \break
   cis
@@ -33,14 +33,14 @@ function."
 
   % LaissezVibrerTie
   c\laissezVibrer
-  \override LaissezVibrerTie #'color = #blue
-  \shape LaissezVibrerTie #'((0 . 0) (0.5 . 0.2) (1.5 . 0.2) (2 . 0))
+  \override LaissezVibrerTie.color = #blue
+  \shape #'((0 . 0) (0.5 . 0.2) (1.5 . 0.2) (2 . 0)) LaissezVibrerTie
   c\laissezVibrer
   \break
 
   % RepeatTie
   c\repeatTie
-  \override RepeatTie #'color = #blue
-  \shape RepeatTie #'((-1 . 0) (-0.7 . 0) (-0.3 . 0) (0 . 0))
+  \override RepeatTie.color = #blue
+  \shape #'((-1 . 0) (-0.7 . 0) (-0.3 . 0) (0 . 0)) RepeatTie
   c\repeatTie
 }
index 8b4ad53a6d683008c0dc0769a3c644a12fde3aaf..3427965c34fea16581bdf23e8a69cdead9a3e76f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The control points of a broken or unbroken slur may be offset by
 
 % modified
 \relative c'' {
-  \override Slur #'color = #blue
-  \shape Slur #'((0 . -2) (-1 . 3.5) (0.5 . 0.5) (0 . -2.5))
+  \override Slur.color = #blue
+  \shape #'((0 . -2) (-1 . 3.5) (0.5 . 0.5) (0 . -2.5)) Slur
   d4( d' b g g,8  f' e d c2)
-  \shape Slur #'(
+  \shape #'(
    ((0 . -2.5) (0 . 1.5) (0 . 1) (0 . -0.5))
    ((1 . 2.5) (0 . 1.5) (0 . 1) (0 . 0))
-  )
+  ) Slur
   d4( d' b g
   \break
   g,8 f' e d c2)
index d33f2c5ac2b34501e6a60ebbed70cc2a54dec6f4..171cae4084d04ff7012968d9002d36d27940622c 100644 (file)
@@ -1,10 +1,4 @@
 \version "2.16.0"
-#(ly:expect-warning (_ "didn't find a vertical alignment in this system"))
-#(ly:expect-warning (_ "didn't find a vertical alignment in this system"))
-#(ly:expect-warning (_ "didn't find a vertical alignment in this system"))
-#(ly:expect-warning (_ "didn't find a vertical alignment in this system"))
-#(ly:expect-warning (_ "didn't find a vertical alignment in this system"))
-#(ly:expect-warning (_ "didn't find a vertical alignment in this system"))
 #(ly:expect-warning (_ "system with empty extent"))
 #(ly:expect-warning (_ "didn't find a vertical alignment in this system"))
 
index 4862ab71dd8d9ca83e2e0647e2c08905d4345581..c3be573d7ca2d49c5d1b36b56e0d18ecaf766281 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "
@@ -12,7 +12,7 @@ interleaved with the high notes from the next system.
 \book {
   \score {
     {
-      \override Staff.TimeSignature #'stencil =  ##f
+      \override Staff.TimeSignature.stencil =  ##f
       \repeat unfold 3 { <c'''-1 e'''-3 g'''-5> c' <c,-1 e,-3 g,-5> c' \break}
     }
     \layout {
@@ -20,7 +20,7 @@ interleaved with the high notes from the next system.
       ragged-right = ##t
       \context {
         \Score
-       \override System #'skyline-horizontal-padding = #1.5
+       \override System.skyline-horizontal-padding = #3.0
       }
     }
   }
index 748aa68dfc201ea9f09bbefec31b5d71fd4350fd..49c03760925acfffa19a3a3cd0e44d313b38c0a2 100644 (file)
@@ -5,13 +5,13 @@ using a skyline algorithm so that they don't collide with other objects."
 
 \layout {ragged-right = ##t}
 
-\version "2.16.0"
+\version "2.17.6"
 \relative c''' {
-  \override Score.PaperColumn #'keep-inside-line = ##f
-  \override TextScript #'outside-staff-priority = #2
-  \override DynamicLineSpanner #'outside-staff-priority = #1
+  \override Score.PaperColumn.keep-inside-line = ##f
+  \override TextScript.outside-staff-priority = #2
+  \override DynamicLineSpanner.outside-staff-priority = #1
   c
-  \once \override TextScript #'self-alignment-X = #CENTER
+  \once \override TextScript.self-alignment-X = #CENTER
   a,^"this doesn't collide with the c"
   b^"this goes above the previous markup"
   a8_"this goes below the dynamic"
index 0bcf3691a710d24e9a938894725faa8aa62a05f7..bf8235d5e2020e0f6536318a4c046d7047ae5f47 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {texidoc = "@cindex Slur, dotted, dashed
 The appearance of slurs may be changed from solid to dotted or dashed.
 "
@@ -18,7 +18,7 @@ The appearance of slurs may be changed from solid to dotted or dashed.
   c( d e c) |
   \slurDashPattern #0.4 #2.0
   c( d e c) |
-  \once \override Slur #'dash-definition = #'((0 0.25 1 1)
+  \once \override Slur.dash-definition = #'((0 0.25 1 1)
                                               (0.3 0.7 0.4 0.75)
                                               (0.75 1.0 1.0 1.0))
   c( d e c) |
index 6e76f750c70234a7bc3a58867180365474e602b0..38a9c3288d9215f15c176c5b1a8d27c5dad279a7 100644 (file)
@@ -11,7 +11,7 @@
 }
 \relative
 {
-  b(^"dyn outside" b f'\p b,)
+  b( b f'\p b,)
 
   g( d'\< d \! g,)
 }
index 786b23e735469e79a93c6c66b6c90e7352e530b2..a1380cf53972ff4a7e2170a82d0d09e9e577d417 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -18,7 +18,7 @@ baseWalk =  \relative c {
     \slurUp
     d,8[( a' d f] a[ d f d] a[ f d  a)]
     d,8[( a' d f] a[ a a d] f[ d d,  a)]
-    \once\override Slur #'eccentricity = #6.0
+    \once\override Slur.eccentricity = #6.0
     d,8[( a' d f] a[ a a d] f[ d d,  a)]
 }
 
index 49613d4ba0988d70316d888113d28f8fe530d541..4a9cf8d94fa1ab104a960882b85aa218564e5639 100644 (file)
@@ -6,11 +6,11 @@ positioning of the slur. It selects the slur configuration closest to
 the given pair. "
   
   }
-\version "2.16.0"
+\version "2.17.6"
 
 \paper { ragged-right = ##T }
 \relative c' {
-  \override Slur #'positions = #'(-4 . -5)
+  \override Slur.positions = #'(-4 . -5)
   e( f g)
 }
 
index 87b544202f9d421574b1dfdc2078b80a72d68ed7..ad203049842216e222116707a2ccfb4a80ac25fa 100644 (file)
@@ -12,7 +12,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \layout {
     ragged-right = ##t
 %    #(define debug-slur-scoring #t)
@@ -69,7 +69,7 @@
        f=''2( d4 f | g c a f | d c f2 | f1) |
     }
 
-%    \override Slur #'eccentricity = #-2
+%    \override Slur.eccentricity = #-2
     c=''8 ( d[ b f d] a'[ c])
 }
 
index 56c0b8138fc3ac801b95317a77239217225efb27..a7ce4e3b13ea8e777d78c2e1d675f40b1b4bd1fc 100644 (file)
@@ -8,17 +8,17 @@
 }
 
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout { ragged-right = ##t }
 
 \relative c''{
     \clef alto
     \slurUp
-    \override Script #'slur-padding = #0.2
-    \override Script #'avoid-slur = #'inside
+    \override Script.slur-padding = #0.2
+    \override Script.avoid-slur = #'inside
     c4(^\downbow b) 
-    \override Script #'avoid-slur = #'around
+    \override Script.avoid-slur = #'around
     c4(^\downbow b) 
     c4^\downbow b 
 }
index b2fb1c50ab63d9b198eb6fe7d869538fdc6bbe97..84be933af81f532b88f8f4ed65a2faacb85d75f6 100644 (file)
@@ -6,7 +6,7 @@
     slur responds appropriately if a script is moved."
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \layout {
   indent = 0\mm
   ragged-right = ##t
@@ -14,9 +14,9 @@
 \relative
 {
   b4-.( b-.)
-  \once \override Script #'padding = #1.5
+  \once \override Script.padding = #1.5
   b-.( b-.)
   b_\downbow( b_\downbow)
-  \once \override Script #'padding = #1.5
+  \once \override Script.padding = #1.5
   b_\downbow( b_\downbow)
 }
index 3296fefa1d48424e96525a47075c70cf47e854c8..cfcf4397cc765bdc435a480a56d0cbee67eedf16 100644 (file)
@@ -5,7 +5,7 @@ This may not work if the slur starts after the tuplet.  "
   
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t
@@ -14,8 +14,8 @@ This may not work if the slur starts after the tuplet.  "
 
 \relative c' {
   \slurUp
-  \override TupletBracket #'bracket-visibility = ##f
-  \override Slur #'(details region-size)  = #6
+  \override TupletBracket.bracket-visibility = ##f
+  \override Slur.details.region-size  = #6
   
   \times 2/3
   {
index 23887778460f0005533e7f51feaf526ce8a2df51..a858017427e81cc8716e6cd038ce68700e2d56aa 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Outside staff callbacks that no longer apply to grobs
@@ -12,7 +12,7 @@ the first and second examples.
 
 \relative c'' {
   \set strokeFingerOrientations = #'(up)
-  \override StrokeFinger #'avoid-slur = #'outside
+  \override StrokeFinger.avoid-slur = #'outside
   \autoBeamOff
   <a-\rightHandFinger #2 >16 b
   <a-\rightHandFinger #2 >16( b)
index c774699fe278c9c1ae7d04b9731b85bd1ecb20ac..30a5d9b6636efea291e70c0dc5c2c905acd18f65 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc="Festival song synthesis output supports
 reordered lyrics.
@@ -15,7 +15,7 @@ reordered lyrics.
       \context Voice = alternative {
         \voiceOne
         \times 2/3 {
-          \override NoteColumn #'force-hshift = #-3
+          \override NoteColumn.force-hshift = #-3
           f8 f g
         }
       }
index cd63ae0429a15070e4bb41c0bf2ba7a20a31356a..b958e5279de3967824c0635c410f17a523af5981 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc="Festival song synthesis output supports
 reordered lyrics.
@@ -20,7 +20,7 @@ reordered lyrics.
       \context Voice = alternative {
         \voiceOne
         \times 2/3 {
-          \override NoteColumn #'force-hshift = #-3
+          \override NoteColumn.force-hshift = #-3
           f8 f g
         }
       }
index 8c2c1f6daa53de7182adfb36a4d549a49186ed43..02312f60422dfc2d33031289c49b5f4c24a9477b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Accidentals do not influence the amount of stretchable space.
@@ -12,7 +12,7 @@ The accidental does add a little non-stretchable space.
   line-width = 18.\cm
 }
 \relative c'' {
-  \accidentalStyle "piano-cautionary"
+  \accidentalStyle piano-cautionary
   \time 2/4 
   d16 d d d d d cis d dis dis dis dis 
   
index eee994d286f974c836864520072c6bc340d2fc64..98c26482e72c5c94e5f6479192fd070712370174 100644 (file)
@@ -5,15 +5,15 @@
 }
 
 
-\version "2.16.0"
+\version "2.17.6"
 \layout{
   ragged-right = ##t 
 }
 
 
 \relative c'' {
-  \override Score.NonMusicalPaperColumn #'stencil = #ly:paper-column::print
-  \override Score.NonMusicalPaperColumn #'layer = #2
+  \override Score.NonMusicalPaperColumn.stencil = #ly:paper-column::print
+  \override Score.NonMusicalPaperColumn.layer = #2
   
   \time 2/4
   \stemUp
index 1079310431ab2cc9f02e3f5c9894158f159a6b50..2511e308ae0a5994f33e13cc839c64fc0cf7965e 100644 (file)
@@ -3,13 +3,13 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout{ragged-right=##t}
 \new Staff {
 
-  \override Score.NonMusicalPaperColumn #'stencil = #ly:paper-column::print
-  \override Score.NonMusicalPaperColumn #'layer = #1
+  \override Score.NonMusicalPaperColumn.stencil = #ly:paper-column::print
+  \override Score.NonMusicalPaperColumn.layer = #1
   
   s1
   <b' c'' c'>2\arpeggio
index a3ba1f82b81b3a9b564b218f724f9e76b0588ab4..2567773e833ca8f0fce21da4c2c18619f9db55ab 100644 (file)
@@ -9,15 +9,15 @@ to 1.5 staff space."
 }
 
 
-\version "2.16.0"
+\version "2.17.6"
 \layout{
   ragged-right = ##t 
 }
 
 
 \relative c'' {
-  \override Score.NonMusicalPaperColumn #'stencil = #ly:paper-column::print
-  \override Score.NonMusicalPaperColumn #'layer = #2
+  \override Score.NonMusicalPaperColumn.stencil = #ly:paper-column::print
+  \override Score.NonMusicalPaperColumn.layer = #2
   
   \time 2/4
   \stemDown
index 3fb2543b05272ecec3e362038dea3410df59f735..a8503b1a32948df54347d703d296540665f555fb 100644 (file)
@@ -3,15 +3,15 @@
   
   }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout{
   ragged-right=##t
 }
 
 \new Staff \relative c' {
-  \override Score.NonMusicalPaperColumn #'stencil = #ly:paper-column::print
-  \override Score.NonMusicalPaperColumn #'layer = #1
+  \override Score.NonMusicalPaperColumn.stencil = #ly:paper-column::print
+  \override Score.NonMusicalPaperColumn.layer = #1
   
   \time 4/4
   s1
@@ -19,7 +19,7 @@
   \time 3/4
   s2.
   c2.
-  \override Score.NonMusicalPaperColumn #'full-measure-extra-space = #3.0
+  \override Score.NonMusicalPaperColumn.full-measure-extra-space = #3.0
   s2.
   c2.
 }
index 0df8f7cd3113e22882587aa4bf3471143e51a0cc..6f5777b93d9b58157b03db06665cb4ad921a0eef 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
 texidoc = "A clef can be folded below notes in a different staff, if
@@ -11,10 +11,10 @@ can show where columns are in the score."
 
     \context {
        \Score
-       \override NonMusicalPaperColumn  #'stencil = #ly:paper-column::print
-       \override PaperColumn  #'stencil = #ly:paper-column::print        
-       \override NonMusicalPaperColumn #'font-family = #'roman
-       \override PaperColumn #'font-family = #'roman     
+       \override NonMusicalPaperColumn.stencil = #ly:paper-column::print
+       \override PaperColumn.stencil = #ly:paper-column::print   
+       \override NonMusicalPaperColumn.font-family = #'roman
+       \override PaperColumn.font-family = #'roman       
 
     }
 }
index 78e1fb11a10a7c9f0a9a5b7afefb72c058d4ad85..58548a92a455186a60a4f093f4c6dafa357befab 100644 (file)
@@ -5,7 +5,7 @@
   run are spaced accordingly. "
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {  ragged-right = ##t }
 
@@ -20,7 +20,7 @@
   c
   \grace { c8[ c16 d c8]  }
   c
-  \override Score.GraceSpacing #'spacing-increment = #2.0
+  \override Score.GraceSpacing.spacing-increment = #2.0
 
   \grace { c4 c16 d16  }
   c
index a8430674d18efd8aa4a59eff8db7b7129f03ee33..b99c173eef978707f12e2a494fa9b479c4dcfdf6 100644 (file)
@@ -6,7 +6,7 @@ and the barline do not collide."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper
 {
@@ -16,7 +16,7 @@ and the barline do not collide."
 \new Staff
 \relative c
 {
-  \override Score.NonMusicalPaperColumn #'stencil = #ly:paper-column::print 
+  \override Score.NonMusicalPaperColumn.stencil = #ly:paper-column::print 
   \time 6/8
   \clef bass
   s2. |
index ca7611d6c0011c1c53ca745d64d6b1c26e87d773..abebf5a3997fbf479f1a9ae9f667bfad076701bb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Spacing corrections for kneed beams still work when
@@ -10,7 +10,7 @@ compression is involved."
 \layout {
   \context {
     \Voice
-    \override Beam #'auto-knee-gap = #1
+    \override Beam.auto-knee-gap = #1
   }
 }
 
index 050606112b6495f2250f6abf180d0133595d81f1..2ef25e5675fa55aae4b38a2ba9ddeb4fe168e326 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
   texidoc = "For knees, the spacing correction is such that the
@@ -13,9 +13,9 @@ width of the note heads and the thickness of the stem.
   g''8[ g g'' g''] 
 
                                % check code independent of default settings.
-  \override NoteSpacing  #'knee-spacing-correction = #1.0 
+  \override NoteSpacing.knee-spacing-correction = #1.0 
   g''8[ g g'' g''] 
-  \override Stem  #'thickness = #10 
+  \override Stem.thickness = #10 
   g''8[ g g'' g''] 
 }
 
index f55dc72360f0f5aa401c85af9e98f0d8965dcdd5..6f299e8cb33db02c07305150c12e219a6d2cea7f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 #(ly:expect-warning (_ "Cannot determine neighbors for floating column. "))
 #(ly:expect-warning (_ "Loose column does not have right side to attach to."))
@@ -20,7 +20,7 @@ texidoc = "Even in case of incorrect contexts (eg. shortlived
 %% breaking spacing-wishes links.
 \score {
   \new Staff {
-    \override Score.SpacingSpanner #'strict-note-spacing = ##t
+    \override Score.SpacingSpanner.strict-note-spacing = ##t
     \afterGrace c'4 {c'32 c'32 }
     c'4
   }
index 1ddfe3cdf793d4969a24e7fc82007a4ba382a465..655e8b17ee07db05649aedd8bf93586836425cc0 100644 (file)
@@ -4,12 +4,12 @@ across a line break, it gets attached to the end of line."
 }
 
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   \context {
     \Score
-    \override SpacingSpanner #'strict-grace-spacing = ##t
+    \override SpacingSpanner.strict-grace-spacing = ##t
   }
 }
 
index 225e8292a0b8890574049818808172bb5b99f1fb..3852ed4598d6541320e0eba2ee43170469e38886 100644 (file)
@@ -8,13 +8,13 @@ spacing."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \paper {
   ragged-right = ##t
 }
 
 <<
-  \override Score.SpacingSpanner  #'strict-grace-spacing = ##t
+  \override Score.SpacingSpanner.strict-grace-spacing = ##t
   \new Staff {
      c'4
      \afterGrace
index 3b86929f36bbfd4d242cdb5e1566af63e318343c..8010f4edfb193818295f42f5d317a0e52ce7cd52 100644 (file)
@@ -4,7 +4,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t
@@ -12,7 +12,7 @@
 
 \relative c''
 {
-  \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
+  \override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
   c1
   \mark "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "
 }
index 0b2d6ee98e834726e494a2153bca2d8872a06ac7..fa578065710239c6259ea118310c529f27008154 100644 (file)
@@ -6,7 +6,7 @@ This means that the 3/8 setting does not affect the whole rest spacing."
 }
 
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   ragged-right = ##t
@@ -17,7 +17,7 @@ This means that the 3/8 setting does not affect the whole rest spacing."
     \remove "Separating_line_group_engraver"
   } {
     \relative c' {
-      \override Score.SpacingSpanner #'uniform-stretching = ##t
+      \override Score.SpacingSpanner.uniform-stretching = ##t
       \set Score.proportionalNotationDuration = #(ly:make-moment 4 25)
       r1
       \time 3/8 r4.
index acc53cc8fe5e51c66c0b05643ee7b5bb883e0242..2ac5360241f8a7f7af9afbaba838ea2eb8e7716f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
  \header{
 
@@ -11,7 +11,7 @@ hence it must be switched on explicitly with the
 \layout{
   \context{
     \Score
-    \override SpacingSpanner #'uniform-stretching = ##t
+    \override SpacingSpanner.uniform-stretching = ##t
   }
 }
 
diff --git a/input/regression/spacing-non-adjacent-columns3.ly b/input/regression/spacing-non-adjacent-columns3.ly
new file mode 100644 (file)
index 0000000..ae928cf
--- /dev/null
@@ -0,0 +1,21 @@
+\version "2.17.3"
+\header {
+  texidoc = "The spacing engine avoids collisions between non-adjacent columns."
+}
+
+\paper{ragged-right = ##t }
+<<
+  \new ChordNames \chordmode {
+    \set additionalPitchPrefix = #"add"
+    f2:13.15 f2
+  }
+  \new Staff {
+    f'4 f'8 f' f'2 \break
+    \set fingeringOrientations = #'(left)
+    \grace { <d-1-2-3>8[ f a] }
+    <fis''-1-2-3-4-5>4 r4
+    \set fingeringOrientations = #'(right)
+    <g'-1-2-3-4-5>4 \grace { d''8[ e'' d'']}
+    g'4
+  }
+>>
index a187223b1f95fc298bb99291f0b5a4b3d86e03a0..d3a01b6f92b796722b597193f46227905c4ad334 100644 (file)
@@ -10,9 +10,9 @@
 "
   }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \relative c' {
-  \override Score.SpacingSpanner #'packed-spacing = ##t
+  \override Score.SpacingSpanner.packed-spacing = ##t
   c2 d4 f8[ g] a
 }
index 77984552d8f181127e8b29f49cc45e7783fa7f2b..8168fcc51ac077830a5849abe19cb178cdc47243 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The space after a paper column can be increased by overriding
@@ -8,8 +8,8 @@ the padding property."
 \layout {
   \context {
     \Score
-    \override PaperColumn #'padding = #10
-    \override NonMusicalPaperColumn #'padding = #10
+    \override PaperColumn.padding = #10
+    \override NonMusicalPaperColumn.padding = #10
   }
 }
 
index 996406aacb974b0b1019d46d52354f5004d2ee2c..fb568a06d76d9f6a487b9338ba21371659829598 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "When space-to-barline is false, we measure the space between the note and the
@@ -9,15 +9,15 @@ the start of the barline."
 \paper {ragged-right = ##t}
 
 {
-  \override Score.SpacingSpanner #'common-shortest-duration = #(ly:make-moment 1 16)
+  \override Score.SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 16)
   c'2 \clef bass c'2 \clef treble
-  \override NoteSpacing #'space-to-barline = ##f
+  \override NoteSpacing.space-to-barline = ##f
   c'2 \clef bass c'2 \clef treble
 
   % the following two measures should be spaced identically
-  \override NoteSpacing #'space-to-barline = ##t
+  \override NoteSpacing.space-to-barline = ##t
   c'2 c'2
-  \override NoteSpacing #'space-to-barline = ##f
+  \override NoteSpacing.space-to-barline = ##f
   c'2 c'2
   c'1
 }
index 7d568f8cd08262f18ee23bb3e78933222ae645e9..7665030801a1a197f4ff31105bc55ffc8cb08832 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
   texidoc = "Upstem notes before a barline are printed with some extra
@@ -13,8 +13,8 @@ space. This is an optical correction similar to juxtaposed stems.
 
 \relative e'
 {
-  \override Score.PaperColumn #'layer = #1
-  \override Score.PaperColumn #'stencil = #ly:paper-column::print
+  \override Score.PaperColumn.layer = #1
+  \override Score.PaperColumn.stencil = #ly:paper-column::print
 
   
   \time 2/8
index 7b15bfc6cadb474de96f47b2074f55b4663fdb1e..fbca840c55484a9aea8e5732582f4baa00ebe308 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header{
 
@@ -17,11 +17,11 @@ much to correct."
 
 
 \context Voice \relative c {
-  \override Score.PaperColumn #'layer = #1
-  \override Score.PaperColumn #'stencil = #ly:paper-column::print
+  \override Score.PaperColumn.layer = #1
+  \override Score.PaperColumn.stencil = #ly:paper-column::print
 
   %% make sure neutral is down.
-  \override Stem  #'neutral-direction = #down
+  \override Stem.neutral-direction = #down
   \time 16/4  c''4 c c,  c' d, c' e, c' f, c' g c a c b c
 }
 
index 9ff4b55fb2c38eebb1f896710f644c0b7e62a66c..03a20bc67911b4775782ae04d11fb6298f4c547a 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "For juxtaposed chords with the same direction, a
 slight optical correction is used. It is constant, and works only if
@@ -9,8 +9,8 @@ two chords have no common head-positions range."
 \layout { ragged-right = ##t}
 
 \relative c'' {
-  \override Score.PaperColumn #'layer = #1
-  \override Score.PaperColumn #'stencil = #ly:paper-column::print
+  \override Score.PaperColumn.layer = #1
+  \override Score.PaperColumn.stencil = #ly:paper-column::print
 
   \stemDown
   \time 12/4
index 250366491cf94d253e104133bb694355e9ce2538..b8b3e0b178d34c5abfddc552ed0f92cc9e86d807 100644 (file)
@@ -9,7 +9,7 @@ time.  This may cause collisions.  "
 }
 
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t
@@ -23,7 +23,7 @@ time.  This may cause collisions.  "
 
 \relative c''
 <<
-  \override Score.SpacingSpanner #'strict-note-spacing = ##t 
+  \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
index 1a9fefd8244da6be5767edff61559de8f543a98f..38843d131e4fb5cc29331844cd5746e9eda14b09 100644 (file)
@@ -5,10 +5,10 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 <<
- \override Score.SpacingSpanner #'strict-grace-spacing = ##t
+ \override Score.SpacingSpanner.strict-grace-spacing = ##t
  \new Staff {
     c'4
     \afterGrace
index 2a98453f555e354fea11fa1c6ee723d4e2a40831..740abedfeab4a4f1d26c7361c73f4a57c01415fd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "An empty barline does not confuse the spacing engine too much.
@@ -19,7 +19,7 @@ The two scores should look approximately the same."
     \consists "Bar_engraver"
     \consists "Axis_group_engraver"
 
-    \override BarLine #'transparent = ##t
+    \override BarLine.transparent = ##t
   }
 }
 
index 3b889d2d417f98efd73ac891d6d7385b99e87395..57e284f6aa25f5c7b12eb99638304fd29d0f945b 100644 (file)
@@ -6,11 +6,11 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \relative c''
 <<
-  \override  Score.SpacingSpanner #'uniform-stretching = ##t 
+  \override  Score.SpacingSpanner.uniform-stretching = ##t 
   \new Staff {
     c16[ c c c c c c c c c16]
   }
index c4e150cec1a12d3318c8af6df3e27a3ea2ec4007..c6fe94815be860a58e0a9f58b3a96e9c86d31ad5 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The @code{SpanBarStub} grob takes care of horizontal spacing
@@ -18,10 +18,10 @@ span bar were not there.
       \new Voice = "upper"
         \relative c'' {
           c2 c c c
-          \once \override Staff . BarLine #'allow-span-bar = ##f
+          \once \override Staff.BarLine.allow-span-bar = ##f
           c2 c c c
           c2 c c c
-          \once \override Staff . BarLine #'allow-span-bar = ##f
+          \once \override Staff.BarLine.allow-span-bar = ##f
           c2 c c c
         }
     \new Lyrics \lyricsto "upper" \lyricmode {
@@ -35,7 +35,7 @@ span bar were not there.
           c2 c c c
           c2 c c c
           c2 c c c
-          \once \override Staff . BarLine #'allow-span-bar = ##f
+          \once \override Staff.BarLine.allow-span-bar = ##f
           c2 c c c
         }
     \new Lyrics \lyricsto "middle" \lyricmode {
index 5bd5b074df5ea1d572b08e1e28476e1ff9ac854d..aac291494d72863f1b77e873339c37ea276e9968 100644 (file)
@@ -1,9 +1,9 @@
-\version "2.16.0"
+\version "2.17.5"
 
 \header {
 
-  texidoc = "At the beginning of a system, the @code{|:} repeat
-barline is drawn between the staves, but the @code{:|} is not."
+  texidoc = "At the beginning of a system, the @code{.|:} repeat
+barline is drawn between the staves, but the @code{:|.} is not."
 
 }
 
@@ -12,8 +12,8 @@ barline is drawn between the staves, but the @code{:|} is not."
 
 \new PianoStaff <<
   \new Staff = "up" {
-    \bar "|:" r1
-    \bar ":|" \break r1
+    \bar ".|:" r1
+    \bar ":|." \break r1
   }
   \new Staff = "down" { r r }
 >>
index 66ba86bbd00a529135e232efdf7695d97533ff46..adf890e5fcd8eb7ef7e263087c6991508c3c1532 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Span bars can be turned on/@/off on a staff-by-staff basis."
 }
 \relative c' \new StaffGroup <<
   \new Staff {
     c1
-    \once \override Staff.BarLine #'allow-span-bar = ##f
+    \once \override Staff.BarLine.allow-span-bar = ##f
     c1 c1 c1
     \bar "|."
   }
   \new Staff {
     a1 a1
-    \once \override Staff.BarLine #'allow-span-bar = ##f
+    \once \override Staff.BarLine.allow-span-bar = ##f
     a1 a1
   }
   \new Staff {
index f36f2c7878d9a3dfafa568dbd4855482d4997710..89afab6d8fe22dd42b1995da631b72558f4cadc4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Span bars are drawn only between staff bar lines. By setting 
 bar lines to transparent, they are shown only between systems.
@@ -19,9 +19,9 @@ between systems.
 \relative c' \new StaffGroup <<
   \new Staff {
     a1
-    \once \override Score.BarLine #'transparent = ##t
+    \once \override Score.BarLine.transparent = ##t
     a1
-    \once \override Score.SpanBar #'transparent = ##t
+    \once \override Score.SpanBar.transparent = ##t
     a1 a1
     \bar "|."
   }
index 95bebac83215a3d8d44343d8227a066d3845d1b1..100d81346af74785c025d99a85ee29230eb4bb5e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 texidoc = "The visibility of left-broken line spanners and hairpins
@@ -10,7 +10,7 @@ controlled by the callback @code{ly:spanner::kill-zero-spanned-time}.
 \paper { ragged-right = ##t }
 
 \relative c' {
-  \override TextSpanner #'bound-details =
+  \override TextSpanner.bound-details =
     #'((left
         (Y . 0)
         (padding . 0.25)
@@ -26,10 +26,10 @@ controlled by the callback @code{ly:spanner::kill-zero-spanned-time}.
        (right-broken
         (text . #f)))
   c1\startTextSpan\< \break
-  \override Hairpin #'to-barline = ##f
-  \override Hairpin #'after-line-breaking = ##f
+  \override Hairpin.to-barline = ##f
+  \override Hairpin.after-line-breaking = ##f
   c2\stopTextSpan\!
-  \override TextSpanner #'after-line-breaking =
+  \override TextSpanner.after-line-breaking =
     #ly:spanner::kill-zero-spanned-time
   c\startTextSpan\< \break
   c1\!\stopTextSpan
index 696f4fda0de8a06c9add77d6a9d386582da68cc8..6f22cc6dddb12b1890ded29533e4dc9f7bbdd421 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The @code{break-overshoot} property sets the amount that
@@ -10,9 +10,9 @@ prefatory matter."
 \paper { ragged-right = ##t }
 
 \relative c'' {
-  \override Beam #'break-overshoot = #'(1.0 . 2.0)
-  \override TupletBracket #'break-overshoot = #'(1.0 . 2.0)
-  \override TupletBracket #'bracket-visibility = ##t
-  \override Beam #'breakable = ##t
+  \override Beam.break-overshoot = #'(1.0 . 2.0)
+  \override TupletBracket.break-overshoot = #'(1.0 . 2.0)
+  \override TupletBracket.bracket-visibility = ##t
+  \override Beam.breakable = ##t
   c2.. \times 2/3 { c8.[ \break c8.] }
 }
index ba6137e25f703acc49b6f37c90324b99e24e442f..3e8c191937a4e77b6970961c8932e8aba4715af6 100644 (file)
@@ -7,11 +7,11 @@ either all or none are shown.  Ledger lines can be set to appear sooner or
 later by setting the @code{ledger-extra} property."
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \new Staff \relative c' {
-  \override Staff.StaffSymbol #'line-positions = #'(-5 -2 -1 2 5 6)
-  \override Staff.StaffSymbol #'ledger-positions = #'(-5 (-2 -1) 2)
-  \override Staff.StaffSymbol #'ledger-extra = #1
+  \override Staff.StaffSymbol.line-positions = #'(-5 -2 -1 2 5 6)
+  \override Staff.StaffSymbol.ledger-positions = #'(-5 (-2 -1) 2)
+  \override Staff.StaffSymbol.ledger-extra = #1
   g,4 c e b' c'' e g
 }
index de355e7dc01ab8fe447398fdd2e478161e7179a6..e8c9d4fa8feb26bdef66cedca7302632bf1cf3a2 100644 (file)
@@ -6,11 +6,11 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 
 \new Staff \relative c'  {
-  \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 3 9)
+  \override Staff.StaffSymbol.line-positions = #'(-7 -2 0 3 9)
   g c f b e a
 }
   
index 82e34418fd50c3eb1c3029b2a1e1039599d9fb61..1dd829a5d8601d2d15aaf4c8e0e80c31cef775ec 100644 (file)
@@ -7,21 +7,21 @@ large on smaller staves."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   ragged-right = ##t
 }
 
 melody = \relative c''' {
-  \override DynamicText  #'extra-offset = #'(0 . 3)
+  \override DynamicText.extra-offset = #'(0 . 3)
   s1-\f c8[(\< r a g]) e[ r d( <f a>])\! \times 2/3 { d4 d d }
 }
 
 <<
   \new Staff \with {
     fontSize = #-4
-    \override StaffSymbol #'staff-space = #(magstep -4)
+    \override StaffSymbol.staff-space = #(magstep -4)
   } {
     \melody
   }
index 0240b0d88ecef3649dc3ad4256bd769fda5e4356..36e75dba38ee33ab281d4631029dbab241f5e0df 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The staff is a grob (graphical object) which may be adjusted as well, for example, to have 6 thick lines and a slightly large @code{staff-space}.
@@ -16,9 +16,9 @@ mus =  \relative c' { c4 g' d'8 d d d }
 
 <<
   \new Staff {
-    \override Staff.StaffSymbol  #'thickness = #2.0
-    \override Staff.StaffSymbol  #'line-count = #6
-    \override Staff.StaffSymbol  #'staff-space = #1.1
+    \override Staff.StaffSymbol.thickness = #2.0
+    \override Staff.StaffSymbol.line-count = #6
+    \override Staff.StaffSymbol.staff-space = #1.1
     \mus
   }
   \mus
index 76891556b32c8dce28b78ebc70aacf6193c705d6..f4eaf78f1ea62c6e18e392de72eab319a00b505b 100644 (file)
@@ -5,10 +5,10 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \relative c'' \new Voice \with {
      \consists "Melody_engraver"
-     \override Stem #'neutral-direction = #'()
+     \override Stem.neutral-direction = #'()
 } {
   c4 b c b
   c c c c
index d7c50ba466a8cfa3a8af38804aa317fa201e2420..4a206696a9165ce7b0eba4ff4b91015fd59f8a8a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Stems with overridden 'Y-extent should
@@ -26,7 +26,7 @@ on one page.
   \score {
     \new Voice {
       \voiceTwo
-      \override Stem #'Y-extent = #'(0.0 . 0.0)
+      \override Stem.Y-extent = #'(0.0 . 0.0)
       \repeat unfold 144 a4
     }
     \layout {
index c8a72976f58bb9fc77730caac4d102dfeb42481b..39aa0921814f3859ad915a5dcb128c718f74fbd2 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Stem length and stem-begin-position can be set manually.
   \autoBeamOff
   \stemUp
   a8 aes''8
-  \override Stem #'length = #20
+  \override Stem.length = #20
   a,,8
-  \revert Stem #'length
+  \revert Stem.length
   aes''!8
   \stemNeutral
-  \override Stem #'stem-begin-position = #-2
+  \override Stem.stem-begin-position = #-2
   c,8
 }
index ff835d7d80becf184cc273f673f84a686c2ab084..2faa2de0d257cf829a6249d156b18993531486e8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Stemlets don't cause stems on whole notes."
 } 
@@ -6,6 +6,6 @@
 \paper{ ragged-right=##t }
 
 {
-  \override Stem #'stemlet-length = #0.5
+  \override Stem.stemlet-length = #0.5
   c''1
 }
index caf7240d526e34e13d591dc55b85140584b58396..4799eb5c8c37cafec0e10538c8fc53425496b625 100644 (file)
@@ -5,11 +5,11 @@ length can be set with @code{stemlet-length}."
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \layout { ragged-right = ##t }
 
 \relative c' {
-    \override Stem #'stemlet-length = #0.75
+    \override Stem.stemlet-length = #0.75
     c8[ r8 c16 r16 c8]
     c4
 }
diff --git a/input/regression/stem-tremolo-note-collision.ly b/input/regression/stem-tremolo-note-collision.ly
new file mode 100644 (file)
index 0000000..6b5b32a
--- /dev/null
@@ -0,0 +1,20 @@
+\version "2.17.2"
+
+\header {
+  texidoc = "Tremolos should avoid other notes in the staff as
+best as possible and issue a warning otherwise.
+"
+}
+
+#(ly:expect-warning (_ "ignoring too many clashing note columns"))
+
+{
+<<
+   {  b'4 f'2. }
+   \\
+   {
+     \grace a8
+     \repeat tremolo 32 <b g'>32
+   }
+>>
+}
\ No newline at end of file
index 6848dd26e7799dfba86e0dd08569cbec1a8bca6b..f62e6ddbd5ca84e3015cda6c74668ba9dd9c347e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header{
   texidoc="Stem tremolos count in a note column's horizontal skyline.
 "
@@ -7,6 +7,6 @@
 
 \relative c'' {
   \autoBeamOff
-  \override NoteHead #'stencil = #(ly:make-stencil '() '(0 . 0) '(0 . 0))
+  \override NoteHead.stencil = #(ly:make-stencil '() '(0 . 0) '(0 . 0))
   \repeat unfold 8 { b8:32 }
 }
index 21944345599c95afe745f07d8d8ca561cce936b4..c89ded2dbd275b4893f00ac1e2d7d3357312041e 100644 (file)
@@ -4,7 +4,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   ragged-right = ##t
@@ -18,7 +18,7 @@ fragment = \relative c' {
 <<
   \new Staff \with {
     fontSize = #-4
-    \override StaffSymbol #'staff-space = #(magstep -4)
+    \override StaffSymbol.staff-space = #(magstep -4)
   }
   \fragment
   \new Staff \fragment
index b692c38922dde050e850b23777d97316cff19e19..032f900ecc0a32b1f2a7c4fb6a969c8e9a451fb3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 #(ly:set-option 'warning-as-error #f)
 #(ly:expect-warning (_ "tremolo duration is too long"))
@@ -24,7 +24,7 @@ printed.
 
 \context Voice \relative c''{
   \textSpannerUp
-  \override TextScript  #'padding = #5
+  \override TextScript.padding = #5
   % The following note should print a warning (quarter tremolo cannot be notated)
   a1:4^":4" a:8^":8" c:16^":16" a:32^":32" a^"x" a:^":"
   a':32 a,,:32
index 788a2cd4459b640b885dcef6da3b7e1135cfdb35..b8c98153446581464a4ac40434781f308965d437 100644 (file)
@@ -2,9 +2,9 @@
   texidoc = "Combinations of rotation and color do work."
 }
 
-\version "2.16.0"
+\version "2.17.6"
 \relative c'{ 
-  \override Hairpin #'rotation = #'(20 -1 0)
-  \override Hairpin #'color = #(x11-color 'LimeGreen)
+  \override Hairpin.rotation = #'(20 -1 0)
+  \override Hairpin.color = #(x11-color 'LimeGreen)
   g4\< b d f'\!
 } 
index dc5bf9ed6a17855a8ee20dc3d3314a6022460a01..1e3134599314734d3105199491773201a9877644 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header { texidoc=" You can write stencil callbacks in Scheme, thus
 providing custom glyphs for notation elements.  A simple example is
@@ -53,13 +53,13 @@ GROB.  The dimensions of the stencil is not affected.
 \relative c' {
     c4 e
 
-    \override NoteHead  #'stencil
+    \override NoteHead.stencil
     =
     #(parenthesize-callback ly:note-head::print)
     g bes
-    \revert NoteHead #'stencil
+    \revert NoteHead.stencil
 
-    \override Beam  #'stencil
+    \override Beam.stencil
     =
     #(parenthesize-callback ly:beam::print)
 
index fb75e14c602b1612b2b7bb5b18e202a6fd1ec0bf..eee897cfc392fd8636f5e4df2e9ea140b7b668c2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Stencils can be scaled using @code{ly:stencil-scale}.
@@ -8,15 +8,15 @@ signature in this test)."
 }
 
 \relative c' {
-  \override Staff.Clef #'stencil =
+  \override Staff.Clef.stencil =
   #(lambda (grob)
      (ly:stencil-scale (ly:clef::print grob) 1 -1))
-  \override Staff.TimeSignature #'stencil =
+  \override Staff.TimeSignature.stencil =
   #(lambda (grob)
      (ly:stencil-aligned-to
       (ly:stencil-scale (ly:time-signature::print grob) -2 1)
       X LEFT))
-  \override MultiMeasureRestText #'stencil =
+  \override MultiMeasureRestText.stencil =
   #(lambda (grob)
      (ly:stencil-scale (ly:text-interface::print grob) 2 1.6))
   R1\fermataMarkup
index e0ba0dcf79dd9ef6e19224f516ffdef5f1069f46..eb7e0ef62ef82f230f017ae7cb20822ac1a972bd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
     texidoc = "The size of every system is correctly determined; this 
 \layout { 
     \context {
        \Score
-       \override System  #'stencil = #box-grob-stencil
+       \override System.stencil = #box-grob-stencil
     }
 }
 
 \new Voice
 {
     \unset Staff.minimumVerticalExtent
-    \override Score.RehearsalMark #'font-size = #20
+    \override Score.RehearsalMark.font-size = #20
     
     \slurDown c4 ( g4  c''4)
 }
index 165dfd1aa049f496b01697dec9c0cfe5348cf9dd..8c3012cf9df0fef8ae37dfbc6d3ac662d435ee7e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "When the staff-space is increased, the system-start delimiter
@@ -6,7 +6,7 @@ should still be collapsed (i.e. the collapse-height should not give an absolute
 length, but a multiple of staff-spaces)."
 }
 
-\new Staff \with { \override StaffSymbol #'staff-space = #1.4 }
+\new Staff \with { \override StaffSymbol.staff-space = #1.4 }
 {
   a4 b c d 
 }
index cded6cb3721ed77be4a10638303568a8eee3d576..51d566bde6757e782b05dd08fa165ee2c6ef7b1b 100644 (file)
@@ -1,7 +1,7 @@
 \header { texidoc = "A heavy-bar system start delimiter may be created by tuning the @code{SystemStartBar} grob."
        } 
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t
@@ -10,8 +10,8 @@
   \new StaffGroup
   \relative <<
     \set StaffGroup.systemStartDelimiter = #'SystemStartBar
-    \override StaffGroup.SystemStartBar #'thickness = #8
-    \override StaffGroup.SystemStartBar #'padding = #0.2
+    \override StaffGroup.SystemStartBar.thickness = #8
+    \override StaffGroup.SystemStartBar.padding = #0.2
     \new Staff { c1 }
     \new Staff { c1 }
   >>
index 01c93ff777c428cec463378cb780d36630e5967e..f9583411b881a29648940d43608f30656095197b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "In a TabStaff, the chord repetition function needs
@@ -19,7 +19,7 @@ Guitar = \relative c' {
     \new Staff {
       \new Voice {
         \clef "treble_8"
-        \override Voice.StringNumber #'transparent = ##t
+        \override Voice.StringNumber.transparent = ##t
         \Guitar
       }
     }
index 2fbe808836f0bc365977b10a58ef9cb570d49174..2c40bba8e8680992bed665213154930dda42f7fe 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header{ texidoc = "As default, tablature staves show only the fret numbers, because
                     in most situations, they are combined with normal staves.
@@ -21,12 +21,14 @@ tabstuff = {
   \times 3/4 { b,4 c \glissando d\5 \glissando c } |
   c4. d-_( |
   e\varcoda-> )
-  \override TextSpanner #'(bound-details left text) = "rit." f\startTextSpan |
+  \override TextSpanner.bound-details.left.text = "rit." f\startTextSpan |
   g ~ g\prall |
   g\thumb e-.\stopTextSpan
   \bar "|."
 }
 
+#(set-global-staff-size 18)
+
 \score {
   <<
     \new Staff { \clef "G_8" \tabstuff }
index aa1123aacf6675aa14853fa4fbbdbfb25c43d3a0..3c838764c0353ed64b449242caefb4c1ac1a53d6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "
@@ -35,7 +35,7 @@ test = {
 \score {
   <<
     \new Staff {
-      \new Voice \with { \override StringNumber #'stencil = ##f } {
+      \new Voice \with { \override StringNumber.stencil = ##f } {
         \clef "treble_8"
         \test
       }
index 69cc1ea09b7371f67ab5ee1619bb9a6f4e775e1d..fc3d8a94e559c266c69b5adce02189198aff079f 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "How a repeat sign looks in tablature."
 }
 
-\version "2.16.0"
+\version "2.17.2"
 \paper
 {
   ragged-right = ##t
index 9b32989b6f1cc117e1cf1a3dda2311a93049b77f..41d7c5ffca408fd57a33bcaa07111da2a702590e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header{ texidoc = "In tablature, notes that are tied to are invisible
                      except after a line break or within a second volta;
@@ -29,7 +29,7 @@ thirdpart = \relative c' {
 \context StaffGroup <<
   \context Staff {
      \clef "G_8"
-    \override Voice.StringNumber #'transparent = ##t % remove circled string numbers
+    \override Voice.StringNumber.transparent = ##t % remove circled string numbers
     \firstpart
     \secondpart
     \thirdpart
@@ -44,7 +44,7 @@ thirdpart = \relative c' {
 \context StaffGroup <<
   \context Staff {
     \clef "G_8"
-    \override Voice.StringNumber #'transparent = ##t % remove circled string numbers
+    \override Voice.StringNumber.transparent = ##t % remove circled string numbers
     \firstpart
     \secondpart
     \thirdpart
diff --git a/input/regression/tag-multiple.ly b/input/regression/tag-multiple.ly
new file mode 100644 (file)
index 0000000..d9d62a0
--- /dev/null
@@ -0,0 +1,49 @@
+\version "2.17.6"
+\header {
+
+  texidoc = "The @code{\\removeWithTag} and @code{\\keepWithTag}
+commands can name multiple tags to remove or to keep."
+
+}
+
+\layout { ragged-right= ##t }
+
+music =
+<<
+  \tag #'flood \new Voice { \voiceOne \repeat unfold 16 { c'''8 cis'''8 } }
+  \tag #'highball \new Voice { \voiceThree \repeat unfold 8 { a'4( as') } }
+  \tag #'buffoon \new Voice { \voiceFour \repeat unfold 2 { f1~ f } }
+>>
+
+demo =
+#(define-music-function (parser location fun syms m)
+  (ly:music-function? symbol-list? ly:music?)
+  #{
+    \new Staff
+    <<
+      { \mark #(string-join (map symbol->string syms) "&") \skip 1*4 }
+      $fun #syms #m
+    >>
+  #})
+
+#(set-global-staff-size 16)
+
+\markuplist {
+  \fill-line { \center-column \fontsize #5 \bold { "\\keepWithTag" } }
+  \vspace #1
+}
+\demo #keepWithTag #'(none) \music
+\demo #keepWithTag #'(flood highball buffoon) \music
+\demo #keepWithTag #'(flood buffoon) \music
+\demo #keepWithTag #'(buffoon) \music
+
+\markup \vspace #2
+
+\markuplist {
+  \fill-line { \center-column \fontsize #5 \bold { "\\removeWithTag" } }
+  \vspace #1
+}
+\demo #removeWithTag #'(none) \music
+\demo #removeWithTag #'(flood highball buffoon) \music
+\demo #removeWithTag #'(flood buffoon) \music
+\demo #removeWithTag #'(buffoon) \music
diff --git a/input/regression/text-script-vertical-skylines.ly b/input/regression/text-script-vertical-skylines.ly
new file mode 100644 (file)
index 0000000..a32818c
--- /dev/null
@@ -0,0 +1,13 @@
+\version "2.16.0"
+
+\header {
+  texidoc = "By default, @code{TextScript} vertical skylines allow
+for stack @code{TextScript} grobs to fit snugly over each other instead
+of moving the entire distance of the bounding box.
+"
+}
+
+\relative c' {
+  a^\markup { \filled-box #'(0 . 2) #'(0 . 20) #0 hello}
+  a^\markup { world }
+}
\ No newline at end of file
index 4060ef4c56d06541ebf5da3aae2cc9d2945ced38..098ef131dbe4c417abd352bf69677aa0dc366e64 100644 (file)
@@ -9,15 +9,15 @@
   ragged-right = ##t
   }
 
-\version "2.16.0"
+\version "2.17.6"
 <<
    \new Staff {
-    \override TextSpanner #'(bound-details left text) = "*"
+    \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 
+     \override TextScript.self-alignment-X = #RIGHT 
      \repeat unfold 2 {c'4 _ \markup { "FAT" } } 
    }
 >>
index 9df1e12c692e29fac1ac53f9beff1eb6416d77cd..cf1d6f1904680a64a557178038edf1b4a99c2397 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 sample = \relative c'' {
   c2\startTextSpan c2 \break
@@ -13,15 +13,15 @@ sample = \relative c'' {
 }
 
 << {
-  \override TextSpanner #'bound-details #'left-broken #' text =
+  \override TextSpanner.bound-details.left-broken #' text =
     \markup { \large "BROKEN" }
-  \override TextSpanner #'(bound-details left text) =
+  \override TextSpanner.bound-details.left.text =
     \markup { "text" }
   \sample
 } \\ {
-  \override TextSpanner #'(bound-details left text) =
+  \override TextSpanner.bound-details.left.text =
     \markup { "text" }
-  \override TextSpanner #'bound-details #'left-broken #' text =
+  \override TextSpanner.bound-details.left-broken #' text =
     \markup { \large "BROKEN" }
   \sample
 } >>
index fb00bbd8441d89fe036245415157c72ec36c810d..aea5616fce4d6ff84a938c0b1b825fbd92410917 100644 (file)
@@ -4,7 +4,7 @@
 " }
 
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   debug-tie-scoring = ##t
@@ -12,7 +12,7 @@
 }
 
 \relative c'' {
-  \override Tie #'layer = #2
+  \override Tie.layer = #2
   a ~ <fis a>
 }
 
index 5157e69b6292ee96d544b52e7328590dbbd51110..fab5dc33e876018e265bf98ba9102e1e460a59a1 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
 
@@ -14,7 +14,7 @@ has a @code{minimum-length} of 5."
 }
 
 \relative c' {
-  \override Tie #'minimum-length = #5
+  \override Tie.minimum-length = #5
   f2. f16  f  f  f ~ | \break
   f1
 }
index 5c209bbecff6145e2f0983b1d9a6e90c48f2cf73..64844ae5a4908baf65c83774c7f6c8fee2ce17cc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header { texidoc = "
 
@@ -11,7 +11,7 @@ are tried for the extremal ties in a chord.
 \relative c'' {
   \time 4/4 <bis bis>1 ~ \break
 
-  \override Tie #'(details multi-tie-region-size) = #1
+  \override Tie.details.multi-tie-region-size = #1
   \time 3/4 <bis bis>2.~ \break
   \time 4/4 <bis bis>1 
 }
index 82b34a194a81249883082e74ca4159127693dde1..147d78a160128ee79da74115e443227eb1b9595a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {texidoc = "@cindex Tie, dotted, dashed
 The appearance of ties may be changed from solid to dotted or dashed.
 "
@@ -18,7 +18,7 @@ The appearance of ties may be changed from solid to dotted or dashed.
   c2 ~ c |
   \tieDashPattern #0.4 #2.0
   c2 ~ c |
-  \once \override Tie #'dash-definition = #'((0 0.25 1 1)
+  \once \override Tie.dash-definition = #'((0 0.25 1 1)
                                              (0.3 0.7 0.4 0.75)
                                              (0.75 1.0 1.0 1.0))
   c2 ~ c |
index 9442bd3b209f23f66ee6016575a0c739ff7eb660..b882d21e0fde3bcf015f547819d2e8b57bad4ae8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "If using integers, the tie will vertically tuned for
@@ -7,9 +7,9 @@ as the exact location."
 }
 
 \relative c'' {
-  \override Tie #'staff-position = #3
+  \override Tie.staff-position = #3
   d4 ~
-  \override Tie #'staff-position = #3.0
+  \override Tie.staff-position = #3.0
   d ~
   d
 }
index b7720bf78bd8e63a27f2c0d14628ee06fe668900..b9a535b8fe510e1b44c63e04940644a519ade5bd 100644 (file)
@@ -11,7 +11,7 @@ You can leave a Tie alone by introducing a non-pair value
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   ragged-right = ##t
@@ -23,7 +23,7 @@ You can leave a Tie alone by introducing a non-pair value
   <b d f g>~
 
   
-  \once \override TieColumn #'tie-configuration =
+  \once \override TieColumn.tie-configuration =
      #'((0 . -1)  (2 . -1) (5.5 . 1) (7 . 1))
 
   <b d f g>
index 421dd11912f0202b31d671d1cf6e7c67854f7cbf..e4ba0bd0669fe95c54d7a17395e9f6e15b32ec98 100644 (file)
@@ -8,7 +8,7 @@ tweaked with @code{'direction}."
 
 
 }
-\version "2.16.0"
+\version "2.17.6"
 \layout{ragged-right=##t}
 
 {
@@ -24,7 +24,7 @@ tweaked with @code{'direction}."
   c''\laissezVibrer\repeatTie
   r
   
-  \override LaissezVibrerTie #'direction = #DOWN
-  \override RepeatTie #'direction = #DOWN
+  \override LaissezVibrerTie.direction = #DOWN
+  \override RepeatTie.direction = #DOWN
   c''\laissezVibrer_"override"\repeatTie
 } 
index 24679f4268e31ccd0b8015a2f44b30c31ee41377..23df905a94c1dd5e5aea4b87facdc11c6f6f2970 100644 (file)
@@ -5,20 +5,20 @@ specifying their @code{direction} and/@/or @code{staff-position}."
   
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t
 }
 
 {
-  \override Tie #'staff-position = #-5.5
+  \override Tie.staff-position = #-5.5
   c'4 ~ c'
-  \override Tie #'staff-position = #-6.5
+  \override Tie.staff-position = #-6.5
   c'4 ~ c'
-  \override Tie #'staff-position = #-7.5
+  \override Tie.staff-position = #-7.5
   c'4 ~ c'
-  \revert Tie #'staff-position
-  \override Tie #'direction = #UP
+  \revert Tie.staff-position
+  \override Tie.direction = #UP
   c'4 ~ c'
 }
index 49d3a8052d75d92b6fa0bbdaa6f857fdf0e842da..502e32bd3944c8f194270fee21c5cbad5c130563 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
   texidoc = "Chained trills end at the next trill or barline.
 Collisions can be prevented by overriding @code{bound-details}.
@@ -11,10 +11,10 @@ Collisions can be prevented by overriding @code{bound-details}.
   g8 f\startTrillSpan ~
   f8 g\stopTrillSpan \startTrillSpan ~
   g8 r\stopTrillSpan r4
-  \once \override TrillSpanner #'to-barline = ##t
+  \once \override TrillSpanner.to-barline = ##t
   c1\startTrillSpan ~
   c1
-  \once \override TrillSpanner #'(bound-details right padding) = #1.2
+  \once \override TrillSpanner.bound-details.right.padding = #1.2
   c1\stopTrillSpan \startTrillSpan
   c1\stopTrillSpan\startTrillSpan
 }
index 3cdc11bc51b951fc4fc6db48c254f593e3108f1a..19d7b9eb53f20d0b00a0d4cce0bf732546cdb424 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "
@@ -11,7 +11,7 @@ even if scaled to a smaller size.
 <<
   \new Staff \with {
     fontSize = #-6
-    \override StaffSymbol #'staff-space = #(magstep -6)
+    \override StaffSymbol.staff-space = #(magstep -6)
   }
   \relative c' {
     c1\startTrillSpan | c\stopTrillSpan |
index da2167cf1c1b393e5354b1d26af4173f777d3a27..4a164f83df4e87833fd0099287d04fab02c0e06e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "@code{TupletBracket} grobs avoid @code{Fingering} grobs.
@@ -6,6 +6,6 @@
 }
 
 \relative d'' {
- \override TupletBracket #'direction = #UP
+ \override TupletBracket.direction = #UP
  \times 2/3 { d4 a8-4 }
 }
index 0553472d6adf4b5cc089250ea1379d93533dac2e..d92768ee44819283a0f764e0ae4d66fe9ffe6078 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "@code{TupletBracket} grobs avoid @code{StringNumber} grobs.
@@ -6,6 +6,6 @@
 }
 
 \relative d'' {
- \override TupletBracket #'direction = #UP
+ \override TupletBracket.direction = #UP
  \times 2/3 { d4 <a\4>8 }
 }
index 5fb976ed5844031279e41f552902967ff2a0eebd..7f864fa85d34c54897e44321198c6d24f79b2973 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t
@@ -12,7 +12,7 @@ even across multiple staves."
 \layout {
   \context {
     \Score
-    \override TupletBracket #'bracket-visibility = ##t
+    \override TupletBracket.bracket-visibility = ##t
   }
 }
 
index 46204a8efec10ceae43ab0b63a575c3980d41648..a8e54dcffb3f32ea2630d59457cf5a5f34920351 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
   texidoc = "Tuplet brackets' outside staff priority can be
@@ -7,14 +7,14 @@ set.  Brackets, by default, carry their numbers with them."
 }
 
 \relative c'' {
-  \override TupletBracket #'avoid-scripts = ##f
+  \override TupletBracket.avoid-scripts = ##f
   % Plain old tuplet
   \times 2/3 { a8 r a }
   % With nothing set, collisions abound both horizontally and
   % vertically
   \times 2/3 { a8^\espressivo r a^\espressivo }
   % Setting the staff priority prevents collisions
-  \override TupletBracket #'outside-staff-priority = #1
+  \override TupletBracket.outside-staff-priority = #1
   \times 2/3 { a8^\espressivo r a^\espressivo }
   % Note that, with the outside-staff-priority set, this bracket
   % should be at the same vertical level as the first one
diff --git a/input/regression/tuplet-bracket-vertical-skylines.ly b/input/regression/tuplet-bracket-vertical-skylines.ly
new file mode 100644 (file)
index 0000000..1602591
--- /dev/null
@@ -0,0 +1,12 @@
+\version "2.17.6"
+
+\header {
+  texidoc = "Tuplet brackets do not push objects with outside-staff-priority
+too high.
+"
+}
+
+\relative c' {
+  \override TupletBracket.direction = #UP
+  \times 1/1 { a^"foo" a' a' a' }
+}
index adac9915b6fadfbe0a23ab1b55de0155b2b4c3e7..5de92d9563bdf99d5b7c6c83be8ef14805a28638 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "The default behavior of tuplet-bracket visibility is to print a bracket
@@ -29,11 +29,11 @@ music = \relative c'' {
 \new Voice {
   \relative c' {
     << \music s4^"default" >>
-    \override TupletBracket #'bracket-visibility = #'if-no-beam
+    \override TupletBracket.bracket-visibility = #'if-no-beam
     << \music s4^"'if-no-beam" >>
-    \override TupletBracket #'bracket-visibility = ##t
+    \override TupletBracket.bracket-visibility = ##t
     << \music s4^"#t" >>
-    \override TupletBracket #'bracket-visibility = ##f
+    \override TupletBracket.bracket-visibility = ##f
     << \music s4^"#f" >>
   }
 }
index 172d28cabc0206ef457930b76480d61049ce253f..25b50f359f35c91ae8b7a96614aad838b5b8d7ee 100644 (file)
@@ -8,7 +8,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \paper {
   ragged-right = ##t  
 
 
 \relative c'' {
-  \override TupletNumber #'text = #tuplet-number::calc-fraction-text
+  \override TupletNumber.text = #tuplet-number::calc-fraction-text
 
-  \override TupletBracket #'edge-text = #(cons
+  \override TupletBracket.edge-text = #(cons
                                          (markup #:fontsize 6
                                             #:arrow-head X LEFT #f)
                                          (markup #:arrow-head X RIGHT #f))
   \times 11/19 {
     c4 c4 c4 c4
-    \bar "empty" \break
+    \bar "-" \break
     c4 c4 c4 c4
     c4 c4 c4 c4
-    \bar "empty" \break
+    \bar "-" \break
     c4 c4 c4 c4
     c4 c4 c4 
   }
index 4bf1509f5e6035ddfb1384d6622d4b55f2daf75a..425604fd9c3cf5d7d487aba6ae1c29bd45bfc561 100644 (file)
@@ -4,7 +4,7 @@
   attaching column for a full-length tuplet bracket can be ignored."
 
 }
-\version "2.16.0"
+\version "2.17.6"
 
 \new Staff {
    \set tupletFullLength = ##t
@@ -12,9 +12,9 @@
    \time 1/8
    \times 2/3 { c'16 c'16 c'16 }
    \times 2/3 { c'16 c'16 c'16 }
-   \override TupletBracket #'full-length-to-extent = ##f
+   \override TupletBracket.full-length-to-extent = ##f
    \times 2/3 { c'16 c'16 c'16 }
-   \override Score.RehearsalMark #'break-visibility = ##(#t #t #t)
-   \override Score.RehearsalMark #'direction = #down
+   \override Score.RehearsalMark.break-visibility = ##(#t #t #t)
+   \override Score.RehearsalMark.direction = #down
    \mark "xxxxxxxxxxxxxxxxxxxxxxx"
 }
index 5e4b46bab5af4e2ef47fb48db0e65df4baa14ad8..ac161cdfda87dc641ea12952a99d57d72e89b1b5 100644 (file)
@@ -5,22 +5,22 @@
 start of the next non-tuplet note.  "
 
 }
-\version "2.16.0"
+\version "2.17.6"
 
 \paper { ragged-right = ##t
 indent = 0.0 }
 
 \relative c'' \new Voice \with {
   \remove  Forbid_line_break_engraver
-  \override Beam #'breakable = ##t
+  \override Beam.breakable = ##t
 }
 {
   \set tupletFullLength = ##t
   c4
   \times 2/3 { c8[ c c] }
-  \times 2/3 { c8[ c \bar "empty" \break c] }
+  \times 2/3 { c8[ c \bar "-" \break c] }
   << \times 2/3 { c8[ c c]  }
-     { s4*5/6 \bar "empty" \break } >>
+     { s4*5/6 \bar "-" \break } >>
   c4
   \times 2/3 { c8[ c c] }
   
index 5e142e25026e07ade608203206d736f477f5f8cc..1c75daa260042548d3fa10dcf13efaa29815bcc2 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout {
   indent = 0.0\mm
@@ -14,7 +14,7 @@
 
 
 \relative c'' {
-  \override TupletNumber #'text = #tuplet-number::calc-fraction-text
+  \override TupletNumber.text = #tuplet-number::calc-fraction-text
   \times  17/12  { c8 c4 c8 c8}
 }
 
index dc273e36987619680e0487052d676806d492d07d..915e889039f06a2f155f98c6f5143ba249a9de88 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
     texidoc = "Broken nested tuplets avoid each other correctly.
@@ -15,7 +15,7 @@
   \new Staff
   <<
     \relative c'' {
-      \override Score . Beam #'breakable = ##t
+      \override Score.Beam.breakable = ##t
 
       r2
 
@@ -31,7 +31,7 @@
         \times 2/3 { a8[ a a] }
       }
 
-      \override TupletNumber #'text = #tuplet-number::calc-fraction-text
+      \override TupletNumber.text = #tuplet-number::calc-fraction-text
       \times 4/6 {
         \times 2/3 {
           a4 a a
index 8b727c2a5ccd6570629082cdea9d2371f4d0805a..3bba0989e7f0a6c9d06831596d36d990002468cc 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
     texidoc=" Tuplets may be nested."
@@ -23,7 +23,7 @@
     \times 2/3 { a8[ a a] }
   }
 
-  \override TupletNumber #'text = #tuplet-number::calc-fraction-text
+  \override TupletNumber.text = #tuplet-number::calc-fraction-text
   \times 4/6 {
     \times 2/3 {
       a4 a a
index 5608e9b2932694133ca0badb97fc821efcfd79c0..095bf03ad5e143c688176e4438ba07b884d72b2c 100644 (file)
@@ -3,18 +3,18 @@
 }
 
 
-\version "2.16.0"
+\version "2.17.6"
 
 \layout{
  \context{
    \TabStaff
-   \override TimeSignature #'stencil = ##f
+   \override TimeSignature.stencil = ##f
  }
  \context{
    \TabVoice
    \remove "Beam_engraver"
    \remove "Stem_engraver"
-   \override TupletBracket #'number-visibility = ##f
+   \override TupletBracket.number-visibility = ##f
  }
 }
 
diff --git a/input/regression/tuplet-number-outside-staff-positioning.ly b/input/regression/tuplet-number-outside-staff-positioning.ly
new file mode 100644 (file)
index 0000000..f04ffcd
--- /dev/null
@@ -0,0 +1,17 @@
+\version "2.17.6"
+
+\header {
+
+  texidoc = "Grobs whose parents have @code{outside-staff-priority} set
+should figure into the vertical skyline of the @code{VerticalAxisGroup}
+such that grobs with a higher @code{outside-staff-priority} are correctly
+positioned above them.
+"
+
+}
+
+\relative c'' {
+   \override TupletBracket.outside-staff-priority = #1
+   \override TupletNumber.font-size = #5
+   \times 2/3 { a4\trill a\trill^"foo" a\trill }
+}
\ No newline at end of file
index 7320677be0f98b5088b083b1bbfa311cd86ce958..1e4207297830d0d3f18bcdf5ef72456eb57e62fd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header {
 
   texidoc = "Tuplet numbers' outside staff priority can be
@@ -7,10 +7,10 @@ set."
 }
 
 \relative c'' {
-  \override TupletBracket #'avoid-scripts = ##f
+  \override TupletBracket.avoid-scripts = ##f
   \times 2/3 { a8\trill a\trill a\trill }
-  \override TupletNumber #'outside-staff-priority = #1
+  \override TupletNumber.outside-staff-priority = #1
   \times 2/3 { a8\trill a\trill a\trill }
-  \override Script #'outside-staff-priority = #2
+  \override Script.outside-staff-priority = #2
   \times 2/3 { a8\trill a\trill a\trill }
 }
index 3b6d8d98888af0dcc17167ee172bf7dc280d38df..0b2bbd7cdc9877353de22e2d8f7df8f55bd9374d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "Tuplet bracket formatting supports numerous options,
@@ -16,22 +16,22 @@ for instance, bracketed (B) and non-bracketed (NB).
   \times 2/3 { c8^"B"  c[ c] }
   \times 2/4 { r8_"B"  c,[ c'] r8 }
 
-  \override TupletBracket #'bracket-visibility = #'if-no-beam  
+  \override TupletBracket.bracket-visibility = #'if-no-beam  
   \times 2/3 { c8[ c c] }
 
   \tupletUp
-  \override TupletNumber #'stencil = ##f
+  \override TupletNumber.stencil = ##f
   \times 2/3 { c8^""^""^"up, no digit" c[ c] }
-  \revert TupletNumber #'stencil
+  \revert TupletNumber.stencil
 
-  \override TupletBracket #'bracket-visibility = ##t
-  \override TupletBracket #'edge-height = #'(0 . 0)
-  \override TupletBracket #'shorten-pair = #'(2.0 . 2.0)
+  \override TupletBracket.bracket-visibility = ##t
+  \override TupletBracket.edge-height = #'(0 . 0)
+  \override TupletBracket.shorten-pair = #'(2.0 . 2.0)
   \times 4/6 { c_"shorter, no edges" f b  b f c}       
-  \revert TupletBracket #'edge-height
-  \revert TupletBracket #'shorten-pair
+  \revert TupletBracket.edge-height
+  \revert TupletBracket.shorten-pair
 
-  \override TupletBracket #'bracket-flare = #'(0.5 . 0.5)
+  \override TupletBracket.bracket-flare = #'(0.5 . 0.5)
   \times 2/3 { b^""^""^"angled edges" b b }
   \tupletNeutral
   \times 2/3 { b b b }
index 0fae8246675c2c70b0beb0de1cb41061396c5962..5d6dac0cc3887a5ec300d2ffa5f40569357b049f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header{
   texidoc="Non-standard tuplet texts: Printing other tuplet fractions than the ones actually assigned."
 }
@@ -6,10 +6,10 @@
 
 
 \context Voice \relative c'' {
-  \once \override TupletNumber #'text = #(tuplet-number::non-default-tuplet-denominator-text 7)
+  \once \override TupletNumber.text = #(tuplet-number::non-default-tuplet-denominator-text 7)
   \times 2/3  { c4. c4. c4. c4. }
-  \once \override TupletNumber #'text = #(tuplet-number::non-default-tuplet-fraction-text 12 7)
+  \once \override TupletNumber.text = #(tuplet-number::non-default-tuplet-fraction-text 12 7)
   \times 2/3  { c4. c4. c4. c4. }
-  \once \override TupletNumber #'text = #(tuplet-number::append-note-wrapper (tuplet-number::non-default-tuplet-fraction-text 12 7) "8")
+  \once \override TupletNumber.text = #(tuplet-number::append-note-wrapper (tuplet-number::non-default-tuplet-fraction-text 12 7) "8")
   \times 2/3  { c4. c4. c4. c4. }
 }
index 944b592fb79b7e185960bcf6b85bd7711d9f7474..acf002a8960cdd4b9f6cc60d616c05e385e5efbf 100644 (file)
@@ -1,12 +1,12 @@
-\version "2.16.0"
+\version "2.17.6"
 \header{
   texidoc="Non-standard tuplet texts: Printing a tuplet fraction with note durations assigned to both the denominator and the numerator."
 }
 
 
 \context Voice \relative c'' {
-  \once \override TupletNumber #'text = #(tuplet-number::fraction-with-notes "4." "8")
+  \once \override TupletNumber.text = #(tuplet-number::fraction-with-notes "4." "8")
   \times 2/3  { c4. c4. c4. c4. }
-  \once \override TupletNumber #'text = #(tuplet-number::non-default-fraction-with-notes 12 "8" 4 "4")
+  \once \override TupletNumber.text = #(tuplet-number::non-default-fraction-with-notes 12 "8" 4 "4")
   \times 2/3  { c4. c4. c4. c4. }
 }
index 8a53c80e8d84aa5d0f14a7cdb04792c907db9889..aba37347261a5cf69846e56286093962b504a552 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \header{
   texidoc="Non-standard tuplet texts: Appending a note value to the normal text and to the fraction text."
 }
@@ -6,8 +6,8 @@
 
 
 \context Voice \relative c'' {
-  \once \override TupletNumber #'text = #(tuplet-number::append-note-wrapper tuplet-number::calc-denominator-text "4")
+  \once \override TupletNumber.text = #(tuplet-number::append-note-wrapper tuplet-number::calc-denominator-text "4")
   \times 2/3  { c8 c8 c8 c8 c8 c8 }
-  \once \override TupletNumber #'text = #(tuplet-number::append-note-wrapper tuplet-number::calc-fraction-text "4")
+  \once \override TupletNumber.text = #(tuplet-number::append-note-wrapper tuplet-number::calc-fraction-text "4")
   \times 2/3  { c8 c8 c8 c8 c8 c8 }
 }
index dc71b7f2166fe45dfc22a3e4ed2c22be1456ded7..97cfe1491e84ad181857a89396538107b3f3549e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 \header{
   
   texidoc="
@@ -22,7 +22,7 @@ direction as the bracket. The endings can be adjusted with
 \context Voice \relative c'' {
   \times 2/3 { a8 b c }
   \times 2/3 { r8  b[ f] }
-  \override TupletBracket  #'bracket-flare = #'(0.5 . 0.5)
+  \override TupletBracket.bracket-flare = #'(0.5 . 0.5)
   \times 2/3 { r8 b r8 }
   c4 |
   
index 1e8a1acb93f81326544c796413c82a6caaa01e35..a28429b9dbe4e0a1626b8dcaaaaf93431f03e182 100644 (file)
@@ -8,7 +8,7 @@ heavily mutilated Edition Peters Morgenlied by Schubert"
 
 }
 
-\version "2.16.0"
+\version "2.17.6"
 #(ly:expect-warning (_ "(De)crescendo with unspecified starting volume in MIDI."))
 #(ly:expect-warning (_ "(De)crescendo with unspecified starting volume in MIDI."))
 
@@ -77,14 +77,14 @@ secondVerse = \lyricmode {
 }
 
 pianoRH =  \relative c''' \repeat volta 2\new Voice {
-  \accidentalStyle "modern"
+  \accidentalStyle modern
   \voiceOne
   g16( fis a g fis g f e d c b
   \oneVoice
   a ) | 
   <g e>8( <es fis a> <d e bes'> <c e c'>\arpeggio) r8 r | 
   r8 c'( e,) f r a |
-  \once \override DynamicLineSpanner   #'padding =#3
+  \once \override DynamicLineSpanner.padding =#3
   r8
   << { fis( g) } \\
      << { a4 } { s8\> s8\! } >>
@@ -100,7 +100,7 @@ pianoRH =  \relative c''' \repeat volta 2\new Voice {
              }
 
 pianoLH =  \relative c'' \repeat volta 2\new Voice {
-    \accidentalStyle "modern"
+    \accidentalStyle modern
     \voiceTwo
     g16( fis a g fis g
 
@@ -124,9 +124,9 @@ pianoLH =  \relative c'' \repeat volta 2\new Voice {
       << \time 6/8
         \new Staff \with {
           fontSize = #-3
-          \override StaffSymbol #'staff-space = #(magstep -3)
+          \override StaffSymbol.staff-space = #(magstep -3)
         } <<
-          \context Staff \accidentalStyle "modern"
+          \context Staff \accidentalStyle modern
           \melody >>
         \lyricsto "singer" \new Lyrics \firstVerse
         \lyricsto "singer" \new Lyrics \secondVerse
@@ -148,15 +148,15 @@ pianoLH =  \relative c'' \repeat volta 2\new Voice {
       \layout {
        \context {
          \Lyrics
-         \override LyricText #'font-size = #-1
+         \override LyricText.font-size = #-1
        }
        \context {
          \Score
-         \override Beam #'beam-thickness = #0.55
-         \override Beam #'auto-knee-gap = #4.0
-         \override SpacingSpanner #'spacing-increment = #1.0
-         \override Stem #'stemlet-length = #0.5
-         \override Slur #'height-limit = #1.5
+         \override Beam.beam-thickness = #0.55
+         \override Beam.auto-knee-gap = #4.0
+         \override SpacingSpanner.spacing-increment = #1.0
+         \override Stem.stemlet-length = #0.5
+         \override Slur.height-limit = #1.5
        }
       }
       
index b60479dc173875cd5fd8b930457523b81ac95886..09971b0e27381517af4e15604b7fa727c2a40c85 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc = "unpure-pure containers take two arguments: an unpure property and
@@ -17,9 +17,9 @@ of 8.
 \relative c'' {
   \stemUp \autoBeamOff
   d,8 eis'
-  \once \override Flag #'Y-offset =
+  \once \override Flag.Y-offset =
     #(ly:make-unpure-pure-container ly:flag::calc-y-offset 8)
   d,8 eis'!
-  \once \override Flag #'Y-offset = #8
+  \once \override Flag.Y-offset = #8
   d,8 eis'!
 }
diff --git a/input/regression/volta-bracket-add-volta-hook.ly b/input/regression/volta-bracket-add-volta-hook.ly
new file mode 100644 (file)
index 0000000..158c64c
--- /dev/null
@@ -0,0 +1,14 @@
+\version "2.17.5"
+
+\header {
+  texidoc = "Volta bracket end hooks can be added for other bar line types.
+"
+}
+
+#(allow-volta-hook "|")
+
+\new Staff {
+  \repeat volta 2 { c'1 }
+  \alternative { { c'1 } { d'1 } }
+  e'1
+}
\ No newline at end of file
diff --git a/input/regression/volta-bracket-vertical-skylines.ly b/input/regression/volta-bracket-vertical-skylines.ly
new file mode 100644 (file)
index 0000000..40b788d
--- /dev/null
@@ -0,0 +1,13 @@
+\version "2.16.0"
+
+\header {
+  texidoc = "Volta brackets are vertically fit to objects below them.
+"
+}
+
+\new Staff {
+  \repeat volta 3 { r2 a''''4 r4 }
+  \alternative { { r2 d''''4 r4 } { r2 d''''4 r4 } { r2 d''''4 r4 } }
+  \repeat volta 3 { r2 a''''4 r4 }
+  \alternative { { r2 a''''4 r4 } { r2 a''''4 r4 } { r2 a''''4 r4 } }
+}
\ No newline at end of file
index 514f7400794510df064226d749c8f3a4c460ddf3..3b1c30971fc40762dbc3650f6661b973430373c5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header { texidoc = "If the 'whiteout property of a
 grob is set to #t, that part of all objects in lower
@@ -10,11 +10,11 @@ Tie but not the StaffSymbol.
 
 \relative c' {
   \time 3/4
-  \override Staff.StaffSymbol #'layer = #4
-  \once \override Tie #'layer = #2
+  \override Staff.StaffSymbol.layer = #4
+  \once \override Tie.layer = #2
   b'2.~
-  \once \override Staff.TimeSignature #'whiteout = ##t
-  \once \override Staff.TimeSignature #'layer = #3
+  \once \override Staff.TimeSignature.whiteout = ##t
+  \once \override Staff.TimeSignature.layer = #3
   \time 5/4
   b4
 }
index b998e5867b693d9ff0ed9c2a6da7780bcec1c692..c2802628ea9ff2e3895c4099669b451a4e47a65f 100644 (file)
@@ -4,7 +4,7 @@
 markup.  "
 
 }
-\version "2.16.0"
+\version "2.17.6"
 
 \paper
 {
@@ -12,7 +12,7 @@ markup.  "
 }
 
 \relative c'' {
-  \override TextScript #'layer = #'2
-  \override TextScript #'extra-offset = #'(2 . 4)
+  \override TextScript.layer = #'2
+  \override TextScript.extra-offset = #'(2 . 4)
   c4-\markup  { \whiteout \pad-markup #0.5 foo } c
 }
index 65d2eb95debbde3a35d6f3ecf156c86ee6c5b1bf..6e3eb0a42870062c481f2270d54c399dbb7bac66 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 \header {
   texidoc="
@@ -7,9 +7,9 @@ Setting staff-space to 0 does not cause a segmentation fault.
 }
 
 \new Staff \with {
-  \override StaffSymbol #'staff-space = #0
+  \override StaffSymbol.staff-space = #0
   } {
   \relative c' {
-    c1 \bar ":|"
+    c1 \bar ":|."
   }
 }
index 1872af74ce740499b504667e426d916c0935a12c..e67a8836758a4a2f9e578bf0b7427218995ba6de 100644 (file)
@@ -2,7 +2,6 @@
 depth = ..
 
 NAME = lilypond
-SUBDIRS = include
 
 MODULE_LIBS=$(depth)/flower
 MODULE_INCLUDES= $(depth)/flower/include
@@ -78,6 +77,11 @@ endif
 $(outdir)/lexer.cc: $(config_h)
 $(outdir)/parser.cc: $(config_h)
 
+ifneq ($(LILYPOND_EXTERNAL_BINARY),)
+$(outdir)/lilypond.1: $(LILYPOND_EXTERNAL_BINARY) $(buildscript-dir)/help2man
+       $(buildscript-dir)/help2man $(LILYPOND_EXTERNAL_BINARY) > $@
+endif
+
 $(outdir)/general-scheme.o: $(outdir)/version.hh
 $(outdir)/lily-guile.o: $(outdir)/version.hh
 $(outdir)/lily-version.o: $(outdir)/version.hh
index 9c4d8976fe19c43d6dbae0e87b8a1a110e83d459..12b90722380485f7b3c739046395d6a1ae1a4010 100644 (file)
@@ -73,7 +73,7 @@ protected:
   TRANSLATOR_DECLARATIONS (Accidental_engraver);
   void process_music ();
 
-  void acknowledge_tie (Grob_info);
+  void acknowledge_end_tie (Grob_info);
   void acknowledge_arpeggio (Grob_info);
   void acknowledge_rhythmic_head (Grob_info);
   void acknowledge_finger (Grob_info);
@@ -468,7 +468,7 @@ Accidental_engraver::acknowledge_rhythmic_head (Grob_info info)
 }
 
 void
-Accidental_engraver::acknowledge_tie (Grob_info info)
+Accidental_engraver::acknowledge_end_tie (Grob_info info)
 {
   ties_.push_back (dynamic_cast<Spanner *> (info.grob ()));
 }
@@ -502,7 +502,7 @@ Accidental_engraver::process_music ()
 ADD_ACKNOWLEDGER (Accidental_engraver, arpeggio);
 ADD_ACKNOWLEDGER (Accidental_engraver, finger);
 ADD_ACKNOWLEDGER (Accidental_engraver, rhythmic_head);
-ADD_ACKNOWLEDGER (Accidental_engraver, tie);
+ADD_END_ACKNOWLEDGER (Accidental_engraver, tie);
 ADD_ACKNOWLEDGER (Accidental_engraver, note_column);
 
 ADD_TRANSLATOR (Accidental_engraver,
index ff67181434c17525f7f5dc6a0aabc8ebbd1af6e2..169fe39fdd15d3804e6e036874928b7d1ad0a785 100644 (file)
@@ -27,6 +27,7 @@
 #include "pointer-group-interface.hh"
 #include "rhythmic-head.hh"
 #include "skyline.hh"
+#include "skyline-pair.hh"
 #include "stream-event.hh"
 #include "warn.hh"
 
@@ -115,16 +116,14 @@ Accidental_placement::get_relevant_accidentals (vector<Grob *> const &elts, Grob
 
 struct Accidental_placement_entry
 {
-  Skyline left_skyline_;
-  Skyline right_skyline_;
-  Interval vertical_extent_;
-  vector<Box> extents_;
+  Skyline_pair horizontal_skylines_;
   vector<Grob *> grobs_;
 };
 
 Real ape_priority (Accidental_placement_entry const *a)
 {
-  return a->vertical_extent_[UP];
+  // right is up because we're horizontal
+  return a->horizontal_skylines_.right ();
 }
 
 bool ape_less (Accidental_placement_entry *const &a,
@@ -261,17 +260,17 @@ set_ape_skylines (Accidental_placement_entry *ape,
           offset -= a->extent (a, X_AXIS).length () + padding;
         }
 
-      vector<Box> boxes = Accidental_interface::accurate_boxes (a, common);
-      ape->extents_.insert (ape->extents_.end (), boxes.begin (), boxes.end ());
-
-      for (vsize j = boxes.size (); j--;)
-        ape->vertical_extent_.unite (boxes[j][Y_AXIS]);
+      if (Skyline_pair *sky = Skyline_pair::unsmob (a->get_property ("horizontal-skylines")))
+        {
+          Skyline_pair copy (*sky);
+          copy.raise (a->relative_coordinate (common[X_AXIS], X_AXIS));
+          copy.shift (a->relative_coordinate (common[Y_AXIS], Y_AXIS));
+          ape->horizontal_skylines_.merge (copy);
+        }
 
       last_octave = p->get_octave ();
       last_alteration = p->get_alteration ();
     }
-  ape->left_skyline_ = Skyline (ape->extents_, 0, Y_AXIS, LEFT);
-  ape->right_skyline_ = Skyline (ape->extents_, 0, Y_AXIS, RIGHT);
 }
 
 static vector<Grob *>
@@ -350,7 +349,7 @@ build_heads_skyline (vector<Grob *> const &heads_and_stems,
     head_extents.push_back (Box (heads_and_stems[i]->extent (common[X_AXIS], X_AXIS),
                                  heads_and_stems[i]->pure_height (common[Y_AXIS], 0, INT_MAX)));
 
-  return Skyline (head_extents, 0, Y_AXIS, LEFT);
+  return Skyline (head_extents, Y_AXIS, LEFT);
 }
 
 /*
@@ -375,13 +374,13 @@ position_apes (Grob *me,
     {
       Accidental_placement_entry *ape = apes[i];
 
-      Real offset = -ape->right_skyline_.distance (left_skyline);
+      Real offset = -ape->horizontal_skylines_[RIGHT].distance (left_skyline);
       if (isinf (offset))
         offset = last_offset;
       else
         offset -= padding;
 
-      Skyline new_left_skyline = ape->left_skyline_;
+      Skyline new_left_skyline = ape->horizontal_skylines_[LEFT];
       new_left_skyline.raise (offset);
       new_left_skyline.merge (left_skyline);
       left_skyline = new_left_skyline;
@@ -390,8 +389,12 @@ position_apes (Grob *me,
       for (vsize j = ape->grobs_.size (); j--;)
         ape->grobs_[j]->translate_axis (offset, X_AXIS);
 
-      for (vsize j = ape->extents_.size (); j--;)
-        width.unite (offset + ape->extents_[j][X_AXIS]);
+      for (LEFT_and_RIGHT (d))
+        {
+          Real mh = ape->horizontal_skylines_[d].max_height ();
+          if (!isinf (mh))
+            width.add_point (mh);
+        }
 
       last_offset = offset;
     }
index 77129b6f9dc43dfe30e2d7cfd2b98d76cdba492d..0cf270f52aa60124a31fdb836fda1704fb71ec53 100644 (file)
@@ -25,6 +25,7 @@
 #include "paper-column.hh"
 #include "pitch.hh"
 #include "stencil.hh"
+#include "skyline-pair.hh"
 
 Stencil
 parenthesize (Grob *me, Stencil m)
@@ -68,6 +69,53 @@ Accidental_interface::width (SCM smob)
   return get_extent (unsmob_grob (smob), X_AXIS);
 }
 
+MAKE_SCHEME_CALLBACK (Accidental_interface, horizontal_skylines, 1);
+SCM
+Accidental_interface::horizontal_skylines (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+  if (!me->is_live ())
+    return Skyline_pair ().smobbed_copy ();
+
+  /*
+   * Using the print function may trigger a suicide
+   * before line breaking. It is therefore `unpure' (c).
+   * We use the more basic get_stencil.
+   */
+  Stencil *my_stencil = unsmob_stencil (get_stencil (me));
+  Skyline_pair *sky =
+    Skyline_pair::unsmob
+      (Stencil::skylines_from_stencil
+        (my_stencil->smobbed_copy (), 0.0, Y_AXIS));
+
+  if (!sky)
+    return Skyline_pair ().smobbed_copy ();
+
+  SCM alist = me->get_property ("glyph-name-alist");
+  SCM alt = me->get_property ("alteration");
+  string glyph_name = robust_scm2string (ly_assoc_get (alt, alist, SCM_BOOL_F),
+                                                       "");
+  if (glyph_name == "accidentals.flat"
+      || glyph_name == "accidentals.flatflat")
+    {
+      // a bit more padding for the right of the stem
+      // we raise the stem horizontally to a bit less than the average
+      // horizontal "height" of the entire glyph. This will bring flats
+      // closer to doubleflats, which looks better (MS opinion).
+      // this should work for all fonts where the flat is not
+      // completely bizarre
+      Real left = my_stencil->extent (X_AXIS)[LEFT];
+      Real right = my_stencil->extent (X_AXIS)[RIGHT] * 0.375;
+      Real down = my_stencil->extent (Y_AXIS)[DOWN];
+      Real up = my_stencil->extent (Y_AXIS)[UP];
+      vector<Box> boxes;
+      boxes.push_back (Box (Interval (left, right), Interval (down, up)));
+      Skyline merge_with_me (boxes, Y_AXIS, RIGHT);
+      (*sky)[RIGHT].merge (merge_with_me);
+    }
+  return sky->smobbed_copy ();
+}
+
 MAKE_SCHEME_CALLBACK (Accidental_interface, pure_height, 3);
 SCM
 Accidental_interface::pure_height (SCM smob, SCM start_scm, SCM)
@@ -89,85 +137,6 @@ Accidental_interface::pure_height (SCM smob, SCM start_scm, SCM)
   return ly_interval2scm (Interval ());
 }
 
-vector<Box>
-Accidental_interface::accurate_boxes (Grob *me, Grob **common)
-{
-  Box b;
-  b[X_AXIS] = me->extent (me, X_AXIS);
-  b[Y_AXIS] = me->extent (me, Y_AXIS);
-
-  vector<Box> boxes;
-
-  bool parens = to_boolean (me->get_property ("parenthesized"));
-  if (!me->is_live ())
-    return boxes;
-
-  if (!to_boolean (me->get_property ("restore-first"))
-      && !parens)
-    {
-      SCM alist = me->get_property ("glyph-name-alist");
-      SCM alt = me->get_property ("alteration");
-      string glyph_name = robust_scm2string (ly_assoc_get (alt, alist, SCM_BOOL_F),
-                                             "");
-
-      if (glyph_name == "accidentals.flat"
-          || glyph_name == "accidentals.mirroredflat")
-        {
-          Box stem = b;
-          Box bulb = b;
-
-          /*
-            we could make the stem thinner, but that places the flats
-            really close.
-          */
-          Direction bulb_dir
-            = glyph_name == "accidentals.mirroredflat" ? LEFT : RIGHT;
-          stem[X_AXIS][bulb_dir] = stem[X_AXIS].center ();
-
-          /*
-            To prevent vertical alignment for 6ths
-          */
-          stem[Y_AXIS] *= 1.1;
-          bulb[Y_AXIS][UP] *= .35;
-
-          boxes.push_back (bulb);
-          boxes.push_back (stem);
-        }
-      else if (glyph_name == "accidentals.natural")
-        {
-          Box lstem = b;
-          Box rstem = b;
-          Box belly = b;
-
-          lstem[Y_AXIS] *= 1.1;
-          rstem[Y_AXIS] *= 1.1;
-
-          belly[Y_AXIS] *= 0.75;
-          lstem[X_AXIS][RIGHT] *= .33;
-          rstem[X_AXIS][LEFT] = rstem[X_AXIS].linear_combination (1.0 / 3.0);
-          lstem[Y_AXIS][DOWN] = belly[Y_AXIS][DOWN];
-          rstem[Y_AXIS][UP] = belly[Y_AXIS][UP];
-          boxes.push_back (belly);
-          boxes.push_back (lstem);
-          boxes.push_back (rstem);
-        }
-      /*
-        TODO: add support for, double flat.
-      */
-    }
-
-  if (!boxes.size ())
-    boxes.push_back (b);
-
-  Offset o (me->relative_coordinate (common[X_AXIS], X_AXIS),
-            me->relative_coordinate (common[Y_AXIS], Y_AXIS));
-
-  for (vsize i = boxes.size (); i--;)
-    boxes[i].translate (o);
-
-  return boxes;
-}
-
 MAKE_SCHEME_CALLBACK (Accidental_interface, print, 1);
 SCM
 Accidental_interface::print (SCM smob)
@@ -231,6 +200,7 @@ ADD_INTERFACE (Accidental_interface,
                "avoid-slur "
                "forced "
                "glyph-name-alist "
+               "glyph-name "
                "hide-tied-accidental-after-break "
                "parenthesized "
                "restore-first "
index 0e350c142628d8db4eda48664b7a6e554f5443d8..8a2a8d9b819a4469f2b60c73f75f1d0899963d91 100644 (file)
@@ -121,7 +121,7 @@ get_skylines (Grob *me,
                   Box b;
                   b[a] = begin_of_line_extent;
                   b[other_axis (a)] = Interval (-infinity_f, -1);
-                  skylines.insert (b, 0, other_axis (a));
+                  skylines.insert (b, other_axis (a));
                 }
             }
 
@@ -130,7 +130,7 @@ get_skylines (Grob *me,
               Box b;
               b[a] = extent;
               b[other_axis (a)] = Interval (0, infinity_f);
-              skylines.insert (b, 0, other_axis (a));
+              skylines.insert (b, other_axis (a));
             }
         }
 
@@ -185,6 +185,16 @@ Align_interface::internal_get_minimum_translations (Grob *me,
   if (!pure && a == Y_AXIS && dynamic_cast<Spanner *> (me) && !me->get_system ())
     me->programming_error ("vertical alignment called before line-breaking");
 
+  // check the cache
+  if (pure)
+    {
+      SCM fv = ly_assoc_get (scm_cons (scm_from_int (start), scm_from_int (end)),
+                             me->get_property ("minimum-translations-alist"),
+                             SCM_EOL);
+      if (fv != SCM_EOL)
+        return ly_scm2floatvector (fv);
+    }
+
   // If include_fixed_spacing is true, we look at things like system-system-spacing
   // and alignment-distances, which only make sense for the toplevel VerticalAlignment.
   // If we aren't toplevel, we're working on something like BassFigureAlignment
@@ -285,6 +295,15 @@ Align_interface::internal_get_minimum_translations (Grob *me,
           all_translates.push_back (w);
         }
     }
+
+  if (pure)
+    {
+      SCM mta = me->get_property ("minimum-translations-alist");
+      mta = scm_cons (scm_cons (scm_cons (scm_from_int (start), scm_from_int (end)),
+                                ly_floatvector2scm (all_translates)),
+                      mta);
+      me->set_property ("minimum-translations-alist", mta);
+    }
   return all_translates;
 }
 
@@ -312,24 +331,11 @@ Align_interface::align_elements_to_minimum_distances (Grob *me, Axis a)
       all_grobs[j]->translate_axis (translates[j], a);
 }
 
-MAKE_SCHEME_CALLBACK (Align_interface, full_score_pure_minimum_translations, 1);
-SCM
-Align_interface::full_score_pure_minimum_translations (SCM smob)
-{
-  Grob *me = unsmob_grob (smob);
-  extract_grob_set (me, "elements", all_grobs);
-
-  vector<Real> pure_minimum_translations = Align_interface::get_pure_minimum_translations (me, all_grobs, Y_AXIS, 0, INT_MAX);
-  return ly_floatvector2scm (pure_minimum_translations);
-}
-
 Real
 Align_interface::get_pure_child_y_translation (Grob *me, Grob *ch, int start, int end)
 {
   extract_grob_set (me, "elements", all_grobs);
-  vector<Real> translates = start == 0 && end == INT_MAX
-                            ? ly_scm2floatvector (me->get_object ("full-score-pure-minimum-translations"))
-                            : get_pure_minimum_translations (me, all_grobs, Y_AXIS, start, end);
+  vector<Real> translates = get_pure_minimum_translations (me, all_grobs, Y_AXIS, start, end);
 
   if (translates.size ())
     {
@@ -386,8 +392,8 @@ ADD_INTERFACE (Align_interface,
                /* properties */
                "align-dir "
                "axes "
-               "full-score-pure-minimum-translations "
                "elements "
+               "minimum-translations-alist "
                "padding "
                "positioning-done "
                "stacking-dir "
index 07f74e11c78f95ea489d894a23ea2372d7caa600..90344949656a7d01d9d06e72c2c3ff5e6e196ee4 100644 (file)
@@ -38,7 +38,6 @@ articulation_list (vector<Stream_event *> note_events,
                    vector<Stream_event *> articulation_events,
                    char const *articulation_name)
 {
-  vector<Stream_event *> string_events;
   SCM articulations = SCM_EOL;
   vsize j = 0;
 
index febff36afb6462d4b39137d46e1c7c221414ab73..707e045c9b1a13b3127997d8c1ec05fed81467b7 100644 (file)
 
 #include "axis-group-interface.hh"
 
+#include <map>
+
 #include "align-interface.hh"
 #include "directional-element-interface.hh"
 #include "grob-array.hh"
 #include "hara-kiri-group-spanner.hh"
 #include "international.hh"
+#include "interval-set.hh"
 #include "lookup.hh"
 #include "paper-column.hh"
 #include "paper-score.hh"
 static bool
 pure_staff_priority_less (Grob *const &g1, Grob *const &g2);
 
+Real Axis_group_interface::default_outside_staff_padding_ = 0.46;
+
+Real
+Axis_group_interface::get_default_outside_staff_padding ()
+{
+  return default_outside_staff_padding_;
+}
+
 void
 Axis_group_interface::add_element (Grob *me, Grob *e)
 {
@@ -233,7 +244,7 @@ Axis_group_interface::adjacent_pure_heights (SCM smob)
         continue;
 
       bool outside_staff = scm_is_number (g->get_property ("outside-staff-priority"));
-      Real padding = robust_scm2double (g->get_property ("outside-staff-padding"), 0.5);
+      Real padding = robust_scm2double (g->get_property ("outside-staff-padding"), get_default_outside_staff_padding ());
 
       // When we encounter the first outside-staff grob, make a copy
       // of the current heights to use as an estimate for the staff heights.
@@ -381,7 +392,7 @@ SCM
 Axis_group_interface::calc_skylines (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
-  extract_grob_set (me, "elements", elts);
+  extract_grob_set (me, Grob_array::unsmob (me->get_object ("vertical-skyline-elements")) ? "vertical-skyline-elements" : "elements", elts);
   Skyline_pair skylines = skyline_spacing (me, elts);
 
   return skylines.smobbed_copy ();
@@ -603,116 +614,217 @@ pure_staff_priority_less (Grob *const &g1, Grob *const &g2)
 }
 
 static void
-add_boxes (Grob *me, Grob *x_common, Grob *y_common, vector<Box> *const boxes, Skyline_pair *skylines)
+add_interior_skylines (Grob *me, Grob *x_common, Grob *y_common, vector<Skyline_pair> *skylines)
 {
-  /* if a child has skylines, use them instead of the extent box */
-  if (Skyline_pair *pair = Skyline_pair::unsmob (me->get_property ("vertical-skylines")))
-    {
-      Skyline_pair s = *pair;
-      s.shift (me->relative_coordinate (x_common, X_AXIS));
-      s.raise (me->relative_coordinate (y_common, Y_AXIS));
-      skylines->merge (s);
-    }
-  else if (Grob_array *elements = unsmob_grob_array (me->get_object ("elements")))
+  if (Grob_array *elements = unsmob_grob_array (me->get_object ("elements")))
     {
       for (vsize i = 0; i < elements->size (); i++)
-        add_boxes (elements->grob (i), x_common, y_common, boxes, skylines);
+        add_interior_skylines (elements->grob (i), x_common, y_common, skylines);
     }
   else if (!scm_is_number (me->get_property ("outside-staff-priority"))
            && !to_boolean (me->get_property ("cross-staff")))
     {
-      boxes->push_back (Box (me->extent (x_common, X_AXIS),
-                             me->extent (y_common, Y_AXIS)));
+      Skyline_pair *maybe_pair = Skyline_pair::unsmob (me->get_property ("vertical-skylines"));
+      if (!maybe_pair)
+        return;
+      if (maybe_pair->is_empty ())
+        return;
+      skylines->push_back (Skyline_pair (*maybe_pair));
+      skylines->back ().shift (me->relative_coordinate (x_common, X_AXIS));
+      skylines->back ().raise (me->relative_coordinate (y_common, Y_AXIS));
     }
 }
 
-/* We want to avoid situations like this:
-           still more text
-      more text
-   text
-   -------------------
-   staff
-   -------------------
-
-   The point is that "still more text" should be positioned under
-   "more text".  In order to achieve this, we place the grobs in several
-   passes.  We keep track of the right-most horizontal position that has been
-   affected by the current pass so far (actually we keep track of 2
-   positions, one for above the staff, one for below).
-
-   In each pass, we loop through the unplaced grobs from left to right.
-   If the grob doesn't overlap the right-most affected position, we place it
-   (and then update the right-most affected position to point to the right
-   edge of the just-placed grob).  Otherwise, we skip it until the next pass.
-*/
+// Raises the grob elt (whose skylines are given by h_skyline
+// and v_skyline) so that it doesn't intersect with staff_skyline,
+// or with anything in other_h_skylines and other_v_skylines.
+void
+avoid_outside_staff_collisions (Grob *elt,
+                                Skyline_pair *v_skyline,
+                                Real padding,
+                                Real horizon_padding,
+                                vector<Skyline_pair> const &other_v_skylines,
+                                vector<Real> const &other_padding,
+                                vector<Real> const &other_horizon_padding,
+                                Direction const dir)
+{
+  assert (other_v_skylines.size () == other_padding.size ());
+  assert (other_v_skylines.size () == other_horizon_padding.size ());
+  vector<Interval> forbidden_intervals;
+  for (vsize j = 0; j < other_v_skylines.size (); j++)
+    {
+      Skyline_pair const &v_other = other_v_skylines[j];
+      Real pad = (padding + other_padding[j]);
+      Real horizon_pad = (horizon_padding + other_horizon_padding[j]);
+
+      // We need to push elt up by at least this much to be above v_other.
+      Real up = (*v_skyline)[DOWN].distance (v_other[UP], horizon_pad) + pad;
+      // We need to push elt down by at least this much to be below v_other.
+      Real down = (*v_skyline)[UP].distance (v_other[DOWN], horizon_pad) + pad;
+
+      forbidden_intervals.push_back (Interval (-down, up));
+    }
+
+  Interval_set allowed_shifts
+    = Interval_set::interval_union (forbidden_intervals).complement ();
+  Real move = allowed_shifts.nearest_point (0, dir);
+  v_skyline->raise (move);
+  elt->translate_axis (move, Y_AXIS);
+}
+
+SCM
+valid_outside_staff_placement_directive (Grob *me)
+{
+  SCM directive = me->get_property ("outside-staff-placement-directive");
+
+  if ((directive == ly_symbol2scm ("left-to-right-greedy"))
+      || (directive == ly_symbol2scm ("left-to-right-polite"))
+      || (directive == ly_symbol2scm ("right-to-left-greedy"))
+      || (directive == ly_symbol2scm ("right-to-left-polite")))
+    return directive;
+
+  me->warning (_f ("\"%s\" is not a valid outside-staff-placement-directive",
+                   robust_symbol2string (directive, "").c_str ()));
+
+  return ly_symbol2scm ("left-to-right-polite");
+}
+
+// Shifts the grobs in elements to ensure that they (and any
+// connected riders) don't collide with the staff skylines
+// or anything in all_X_skylines.  Afterwards, the skylines
+// of the grobs in elements will be added to all_v_skylines.
 static void
-add_grobs_of_one_priority (Skyline_pair *const skylines,
+add_grobs_of_one_priority (Grob *me,
+                           Drul_array<vector<Skyline_pair> > *all_v_skylines,
+                           Drul_array<vector<Real> > *all_paddings,
+                           Drul_array<vector<Real> > *all_horizon_paddings,
                            vector<Grob *> elements,
                            Grob *x_common,
-                           Grob *y_common)
+                           Grob *y_common,
+                           multimap<Grob *, Grob *> const &riders)
 {
-  vector<Box> boxes;
-  Drul_array<Real> last_affected_position;
 
-  reverse (elements);
+  SCM directive
+    = valid_outside_staff_placement_directive (me);
+
+  bool l2r = ((directive == ly_symbol2scm ("left-to-right-greedy"))
+              || (directive == ly_symbol2scm ("left-to-right-polite")));
+
+  bool polite = ((directive == ly_symbol2scm ("left-to-right-polite"))
+                 || (directive == ly_symbol2scm ("right-to-left-polite")));
+
+  vector<Box> boxes;
+  vector<Skyline_pair> skylines_to_merge;
+
+  // We want to avoid situations like this:
+  //           still more text
+  //      more text
+  //   text
+  //   -------------------
+  //   staff
+  //   -------------------
+
+  // The point is that "still more text" should be positioned under
+  // "more text".  In order to achieve this, we place the grobs in several
+  // passes.  We keep track of the right-most horizontal position that has been
+  // affected by the current pass so far (actually we keep track of 2
+  // positions, one for above the staff, one for below).
+
+  // In each pass, we loop through the unplaced grobs from left to right.
+  // If the grob doesn't overlap the right-most affected position, we place it
+  // (and then update the right-most affected position to point to the right
+  // edge of the just-placed grob).  Otherwise, we skip it until the next pass.
   while (!elements.empty ())
     {
-      last_affected_position[UP] = -infinity_f;
-      last_affected_position[DOWN] = -infinity_f;
-      /* do one pass */
-      for (vsize i = elements.size (); i--;)
+      Drul_array<Real> last_end (-infinity_f, -infinity_f);
+      vector<Grob *> skipped_elements;
+      for (vsize i = l2r ? 0 : elements.size ();
+           l2r ? i < elements.size () : i--;
+           l2r ? i++ : 0)
         {
-          Direction dir = get_grob_direction (elements[i]);
+          Grob *elt = elements[i];
+          Real padding
+            = robust_scm2double (elt->get_property ("outside-staff-padding"), 0.25);
+          Real horizon_padding
+            = robust_scm2double (elt->get_property ("outside-staff-horizontal-padding"), 0.0);
+          Interval x_extent = elt->extent (x_common, X_AXIS);
+          x_extent.widen (horizon_padding);
+
+          Direction dir = get_grob_direction (elt);
           if (dir == CENTER)
             {
               warning (_ ("an outside-staff object should have a direction, defaulting to up"));
               dir = UP;
             }
 
-          Box b (elements[i]->extent (x_common, X_AXIS),
-                 elements[i]->extent (y_common, Y_AXIS));
-          SCM horizon_padding_scm = elements[i]->get_property ("outside-staff-horizontal-padding");
-          Real horizon_padding = robust_scm2double (horizon_padding_scm, 0.0);
+          if (x_extent[LEFT] <= last_end[dir] && polite)
+            {
+              skipped_elements.push_back (elt);
+              continue;
+            }
+          last_end[dir] = x_extent[RIGHT];
 
-          if (b[X_AXIS][LEFT] - 2 * horizon_padding < last_affected_position[dir])
+          Skyline_pair *v_orig = Skyline_pair::unsmob (elt->get_property ("vertical-skylines"));
+          if (v_orig->is_empty ())
             continue;
 
-          if (!b[X_AXIS].is_empty () && !b[Y_AXIS].is_empty ())
+          // Find the riders associated with this grob, and merge their
+          // skylines with elt's skyline.
+          typedef multimap<Grob *, Grob *>::const_iterator GrobMapIterator;
+          pair<GrobMapIterator, GrobMapIterator> range = riders.equal_range (elt);
+          vector<Skyline_pair> rider_v_skylines;
+          for (GrobMapIterator j = range.first; j != range.second; j++)
             {
-              boxes.clear ();
-              boxes.push_back (b);
-              Skyline other = Skyline (boxes, horizon_padding, X_AXIS, -dir);
-              Real padding = robust_scm2double (elements[i]->get_property ("outside-staff-padding"), 0.5);
-              Real dist = (*skylines)[dir].distance (other) + padding;
-
-              if (dist > 0)
+              Grob *rider = j->second;
+              Skyline_pair *v_rider = Skyline_pair::unsmob (rider->get_property ("vertical-skylines"));
+              if (v_rider)
                 {
-                  b.translate (Offset (0, dir * dist));
-                  elements[i]->translate_axis (dir * dist, Y_AXIS);
+                  Skyline_pair copy (*v_rider);
+                  copy.shift (rider->relative_coordinate (x_common, X_AXIS));
+                  copy.raise (rider->relative_coordinate (y_common, Y_AXIS));
+                  rider_v_skylines.push_back (copy);
                 }
-              skylines->insert (b, 0, X_AXIS);
-              elements[i]->set_property ("outside-staff-priority", SCM_BOOL_F);
-              last_affected_position[dir] = b[X_AXIS][RIGHT];
             }
-
-          /*
-            Ugh: quadratic. --hwn
-           */
-          elements.erase (elements.begin () + i);
+          Skyline_pair v_skylines (*v_orig);
+          v_skylines.shift (elt->relative_coordinate (x_common, X_AXIS));
+          v_skylines.raise (elt->relative_coordinate (y_common, Y_AXIS));
+          v_skylines.merge (Skyline_pair (rider_v_skylines));
+
+          avoid_outside_staff_collisions (elt,
+                                          &v_skylines,
+                                          padding,
+                                          horizon_padding,
+                                          (*all_v_skylines)[dir],
+                                          (*all_paddings)[dir],
+                                          (*all_horizon_paddings)[dir],
+                                          dir);
+
+          elt->set_property ("outside-staff-priority", SCM_BOOL_F);
+          (*all_v_skylines)[dir].push_back (v_skylines);
+          (*all_paddings)[dir].push_back (padding);
+          (*all_horizon_paddings)[dir].push_back (horizon_padding);
         }
+      swap (elements, skipped_elements);
+      skipped_elements.clear ();
     }
 }
 
-bool
-Axis_group_interface::has_outside_staff_parent (Grob *me)
+// If the Grob has a Y-ancestor with outside-staff-priority, return it.
+// Otherwise, return 0.
+Grob *
+Axis_group_interface::outside_staff_ancestor (Grob *me)
 {
-  return (me
-          ? (scm_is_number (me->get_property ("outside-staff-priority"))
-             || has_outside_staff_parent (me->get_parent (Y_AXIS)))
-          : false);
+  Grob *parent = me->get_parent (Y_AXIS);
+  if (!parent)
+    return 0;
+
+  if (scm_is_number (parent->get_property ("outside-staff-priority")))
+    return parent;
+
+  return outside_staff_ancestor (parent);
 }
 
-// TODO: it is tricky to correctly handle skyline placement of cross-staff grobs.
+// It is tricky to correctly handle skyline placement of cross-staff grobs.
 // For example, cross-staff beams cannot be formatted until the distance between
 // staves is known and therefore any grobs that depend on the beam cannot be placed
 // until the skylines are known. On the other hand, the distance between staves should
@@ -724,6 +836,19 @@ Axis_group_interface::has_outside_staff_parent (Grob *me)
 Skyline_pair
 Axis_group_interface::skyline_spacing (Grob *me, vector<Grob *> elements)
 {
+  for (vsize i = 0; i < elements.size (); i++)
+    /*
+      As a sanity check, we make sure that no grob with an outside staff priority
+      has a Y-parent that also has an outside staff priority, which would result
+      in two movings.
+    */
+    if (scm_is_number (elements[i]->get_property ("outside-staff-priority"))
+        && outside_staff_ancestor (elements[i]))
+      {
+        elements[i]->warning ("Cannot set outside-staff-priority for element and elements' Y parent.");
+        elements[i]->set_property ("outside-staff-priority", SCM_BOOL_F);
+      }
+
   /* For grobs with an outside-staff-priority, the sorting function might
      call extent and cause suicide. This breaks the contract that is required
      for the STL sort function. To avoid this, we make sure that any suicides
@@ -739,23 +864,44 @@ Axis_group_interface::skyline_spacing (Grob *me, vector<Grob *> elements)
 
   assert (y_common == me);
 
-  vsize i = 0;
-  vector<Box> boxes;
+  // A rider is a grob that is not outside-staff, but has an outside-staff
+  // ancestor.  In that case, the rider gets moved along with its ancestor.
+  multimap<Grob *, Grob *> riders;
 
-  Skyline_pair skylines;
+  vsize i = 0;
+  vector<Skyline_pair> inside_staff_skylines;
   for (i = 0; i < elements.size ()
        && !scm_is_number (elements[i]->get_property ("outside-staff-priority")); i++)
-    if (!(to_boolean (elements[i]->get_property ("cross-staff")) || has_outside_staff_parent (elements[i])))
-      add_boxes (elements[i], x_common, y_common, &boxes, &skylines);
+    {
+      Grob *elt = elements[i];
+      Grob *ancestor = outside_staff_ancestor (elt);
+      if (!(to_boolean (elt->get_property ("cross-staff")) || ancestor))
+        add_interior_skylines (elt, x_common, y_common, &inside_staff_skylines);
+      if (ancestor)
+        riders.insert (pair<Grob *, Grob *> (ancestor, elt));
+    }
+
+  Skyline_pair skylines (inside_staff_skylines);
+
+  // These are the skylines of all outside-staff grobs
+  // that have already been processed.  We keep them around in order to
+  // check them for collisions with the currently active outside-staff grob.
+  Drul_array<vector<Skyline_pair> > all_v_skylines;
+  Drul_array<vector<Real> > all_paddings;
+  Drul_array<vector<Real> > all_horizon_paddings;
+  for (UP_and_DOWN (d))
+    {
+      all_v_skylines[d].push_back (skylines);
+      all_paddings[d].push_back (0);
+      all_horizon_paddings[d].push_back (0);
+    }
 
-  SCM padding_scm = me->get_property ("skyline-horizontal-padding");
-  Real padding = robust_scm2double (padding_scm, 0.1);
-  skylines.merge (Skyline_pair (boxes, padding, X_AXIS));
   for (; i < elements.size (); i++)
     {
       if (to_boolean (elements[i]->get_property ("cross-staff")))
         continue;
 
+      // Collect all the outside-staff grobs that have a particular priority.
       SCM priority = elements[i]->get_property ("outside-staff-priority");
       vector<Grob *> current_elts;
       current_elts.push_back (elements[i]);
@@ -767,9 +913,26 @@ Axis_group_interface::skyline_spacing (Grob *me, vector<Grob *> elements)
           ++i;
         }
 
-      add_grobs_of_one_priority (&skylines, current_elts, x_common, y_common);
+      add_grobs_of_one_priority (me,
+                                 &all_v_skylines,
+                                 &all_paddings,
+                                 &all_horizon_paddings,
+                                 current_elts,
+                                 x_common,
+                                 y_common,
+                                 riders);
     }
+
+  // Now everything in all_v_skylines has been shifted appropriately; merge
+  // them all into skylines to get the complete outline.
+  Skyline_pair other_skylines (all_v_skylines[UP]);
+  other_skylines.merge (Skyline_pair (all_v_skylines[DOWN]));
+  skylines.merge (other_skylines);
+
+  // We began by shifting my skyline to be relative to the common refpoint; now
+  // shift it back.
   skylines.shift (-me->relative_coordinate (x_common, X_AXIS));
+
   return skylines;
 }
 
@@ -845,6 +1008,7 @@ ADD_INTERFACE (Axis_group_interface,
                "nonstaff-nonstaff-spacing "
                "nonstaff-relatedstaff-spacing "
                "nonstaff-unrelatedstaff-spacing "
+               "outside-staff-placement-directive "
                "pure-relevant-grobs "
                "pure-relevant-items "
                "pure-relevant-spanners "
@@ -853,7 +1017,7 @@ ADD_INTERFACE (Axis_group_interface,
                "staff-grouper "
                "staff-staff-spacing "
                "system-Y-offset "
-               "vertical-skylines "
+               "vertical-skyline-elements "
                "X-common "
                "Y-common "
               );
index b700dc733d39c1ac25d8905186eb8194582139bb..364d725c9afab0383163eb3de61ac72e135230e2 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -34,6 +34,7 @@ protected:
   DECLARE_ACKNOWLEDGER (stem);
   DECLARE_ACKNOWLEDGER (accidental);
   DECLARE_ACKNOWLEDGER (clef);
+  DECLARE_ACKNOWLEDGER (octavate_eight);
   DECLARE_ACKNOWLEDGER (key_signature);
   DECLARE_ACKNOWLEDGER (time_signature);
   DECLARE_ACKNOWLEDGER (beam);
@@ -165,6 +166,12 @@ Beam_collision_engraver::acknowledge_key_signature (Grob_info i)
   covered_grobs_.push_back (i);
 }
 
+void
+Beam_collision_engraver::acknowledge_octavate_eight (Grob_info i)
+{
+  covered_grobs_.push_back (i);
+}
+
 void
 Beam_collision_engraver::acknowledge_time_signature (Grob_info i)
 {
@@ -192,6 +199,7 @@ ADD_ACKNOWLEDGER (Beam_collision_engraver, accidental);
 ADD_ACKNOWLEDGER (Beam_collision_engraver, clef);
 ADD_ACKNOWLEDGER (Beam_collision_engraver, key_signature);
 ADD_ACKNOWLEDGER (Beam_collision_engraver, time_signature);
+ADD_ACKNOWLEDGER (Beam_collision_engraver, octavate_eight);
 ADD_ACKNOWLEDGER (Beam_collision_engraver, flag);
 ADD_ACKNOWLEDGER (Beam_collision_engraver, beam);
 
index d73169a917181d046e8dfc50f9bd9cbc40b9d112..4a2e752947bcf753815e151e207f1cae6f7b562d 100644 (file)
@@ -49,6 +49,7 @@
 #include "lookup.hh"
 #include "main.hh"
 #include "misc.hh"
+#include "note-column.hh"
 #include "note-head.hh"
 #include "output-def.hh"
 #include "pointer-group-interface.hh"
@@ -141,6 +142,92 @@ Beam::get_beam_count (Grob *me)
   return m;
 }
 
+//------ for whole note chord tremolos
+
+bool
+Beam::whole_note_close_chord_tremolo (Grob *me)
+{
+  if (!scm_is_integer (me->get_property ("gap-count")))
+    return false;
+
+  extract_grob_set (me, "stems", stems);
+  for (vsize i = 0; i < stems.size (); i++)
+    if (Stem::duration_log (stems[i]))
+      return false;
+
+  Grob *staff = Staff_symbol_referencer::get_staff_symbol (me);
+  if (staff)
+    {
+      Grob *outside_stems[2] = {Stem::extremal_heads (stems[0])[DOWN],
+                                Stem::extremal_heads (stems.back ())[DOWN]};
+
+      Interval lines = Staff_symbol::line_span (staff);
+      for (int i = 0; i < 2; i++)
+        {
+          Real my_pos = Staff_symbol_referencer::get_position (outside_stems[i]);
+          if (my_pos > lines[UP] + 1)
+            return false;
+          else if (my_pos < lines[DOWN] - 1)
+            return false;
+        }
+    }
+
+  return (Staff_symbol_referencer::get_position (Stem::extremal_heads (stems.back ())[DOWN])
+          - Staff_symbol_referencer::get_position (Stem::extremal_heads (stems[0])[DOWN]))
+         < 2;
+}
+
+MAKE_SCHEME_CALLBACK (Beam, calc_beam_gap, 1);
+SCM
+Beam::calc_beam_gap (SCM smob)
+{
+  Spanner *me = unsmob_spanner (smob);
+  SCM default_value = scm_cons (scm_from_double (0.8), scm_from_double (0.8));
+  if (!whole_note_close_chord_tremolo (me))
+    return default_value;
+
+  Interval left = Note_column::accidental_width
+                    (me->get_bound (RIGHT)->get_parent (X_AXIS));
+
+  if (left.length () > 0.4)
+    return scm_cons (scm_from_double (0.8), scm_from_double (1.3 + left.length ()));
+  else
+    return default_value;
+}
+
+MAKE_SCHEME_CALLBACK (Beam, calc_springs_and_rods, 1);
+SCM
+Beam::calc_springs_and_rods (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+
+  if (!whole_note_close_chord_tremolo (me))
+    return SCM_BOOL_F;
+
+  return scm_call_1 (Spanner::set_spacing_rods_proc, smob);
+}
+
+MAKE_SCHEME_CALLBACK (Beam, calc_minimum_length, 1);
+SCM
+Beam::calc_minimum_length (SCM smob)
+{
+  Spanner *me = unsmob_spanner (smob);
+  SCM default_value = scm_from_double (0.0);
+
+  if (!whole_note_close_chord_tremolo (me))
+    return SCM_BOOL_F;
+
+  Interval left = Note_column::accidental_width
+                    (me->get_bound (RIGHT)->get_parent (X_AXIS));
+
+  if (left.length () > 0.4)
+    return scm_from_double (left.length () + 4.0);
+  else
+    return default_value;
+}
+
+//------ and everything else
+
 MAKE_SCHEME_CALLBACK (Beam, calc_normal_stems, 1);
 SCM
 Beam::calc_normal_stems (SCM smob)
@@ -197,6 +284,18 @@ Beam::calc_direction (SCM smob)
             dir = to_dir (stem->get_property_data ("direction"));
           else
             dir = to_dir (stem->get_property ("default-direction"));
+
+          extract_grob_set (stem, "note-heads", heads);
+          /* default position of Kievan heads with beams is down
+             placing this here avoids warnings downstream */
+          if (heads.size())
+            {
+               if (heads[0]->get_property ("style") == ly_symbol2scm ("kievan"))
+                 {
+                    if (dir == CENTER)
+                      dir = DOWN;
+                 }
+            }
         }
     }
 
@@ -353,7 +452,7 @@ Beam::calc_beam_segments (SCM smob)
     commonx = me->get_bound (d)->common_refpoint (commonx, X_AXIS);
 
   int gap_count = robust_scm2int (me->get_property ("gap-count"), 0);
-  Real gap_length = robust_scm2double (me->get_property ("gap"), 0.0);
+  Interval gap_lengths = robust_scm2interval (me->get_property ("beam-gap"), Interval (0.0, 0.0));
 
   Position_stem_segments_map stem_segments;
   Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
@@ -509,7 +608,7 @@ Beam::calc_beam_segments (SCM smob)
                   current.horizontal_[event_dir] += event_dir * seg.width_ / 2;
                   if (seg.gapped_)
                     {
-                      current.horizontal_[event_dir] -= event_dir * gap_length;
+                      current.horizontal_[event_dir] -= event_dir * gap_lengths[event_dir];
 
                       if (Stem::is_invisible (seg.stem_))
                         {
@@ -522,7 +621,7 @@ Beam::calc_beam_segments (SCM smob)
                           for (vsize k = 0; k < heads.size (); k++)
                             current.horizontal_[event_dir]
                               = event_dir * min (event_dir * current.horizontal_[event_dir],
-                                                 - gap_length / 2
+                                                 - gap_lengths[event_dir] / 2
                                                  + event_dir
                                                  * heads[k]->extent (commonx,
                                                                      X_AXIS)[-event_dir]);
@@ -541,16 +640,14 @@ Beam::calc_beam_segments (SCM smob)
     }
 
   SCM segments_scm = SCM_EOL;
-  SCM *tail = &segments_scm;
 
-  for (vsize i = 0; i < segments.size (); i++)
+  for (vsize i = segments.size (); i--;)
     {
-      *tail = scm_cons (scm_list_2 (scm_cons (ly_symbol2scm ("vertical-count"),
-                                              scm_from_int (segments[i].vertical_count_)),
-                                    scm_cons (ly_symbol2scm ("horizontal"),
-                                              ly_interval2scm (segments[i].horizontal_))),
-                        SCM_EOL);
-      tail = SCM_CDRLOC (*tail);
+      segments_scm = scm_cons (scm_list_2 (scm_cons (ly_symbol2scm ("vertical-count"),
+                                                    scm_from_int (segments[i].vertical_count_)),
+                                          scm_cons (ly_symbol2scm ("horizontal"),
+                                                    ly_interval2scm (segments[i].horizontal_))),
+                              segments_scm);
     }
 
   return segments_scm;
@@ -848,9 +945,7 @@ Beam::consider_auto_knees (Grob *me)
   if (!scm_is_number (scm))
     return;
 
-  Interval_set gaps;
-
-  gaps.set_full ();
+  vector<Interval> forbidden_intervals;
 
   extract_grob_set (me, "normal-stems", stems);
 
@@ -884,15 +979,17 @@ Beam::consider_auto_knees (Grob *me)
         }
       head_extents_array.push_back (head_extents);
 
-      gaps.remove_interval (head_extents);
+      forbidden_intervals.push_back (head_extents);
     }
 
   Interval max_gap;
   Real max_gap_len = 0.0;
 
-  for (vsize i = gaps.allowed_regions_.size () - 1; i != VPOS; i--)
+  vector<Interval> allowed_regions
+    = Interval_set::interval_union (forbidden_intervals).complement ().intervals ();
+  for (vsize i = allowed_regions.size () - 1; i != VPOS; i--)
     {
-      Interval gap = gaps.allowed_regions_[i];
+      Interval gap = allowed_regions[i];
 
       /*
         the outer gaps are not knees.
@@ -1361,6 +1458,12 @@ Beam::pure_rest_collision_callback (SCM smob,
                     rest_max_pos[UP]
                    ) * ss / 2.0
                - previous;
+
+  // So that ceil below kicks in for rests that would otherwise brush
+  // up against a beam quanted to a ledger line, add a bit of space
+  // between the beam and the rest.
+  shift += (0.01 * beamdir);
+
   /* Always move by a whole number of staff spaces */
   shift = ceil (fabs (shift / ss)) * ss * sign (shift);
 
@@ -1475,6 +1578,7 @@ ADD_INTERFACE (Beam,
                "auto-knee-gap "
                "beamed-stem-shorten "
                "beaming "
+               "beam-gap "
                "beam-segments "
                "beam-thickness "
                "break-overshoot "
@@ -1486,7 +1590,6 @@ ADD_INTERFACE (Beam,
                "damping "
                "details "
                "direction "
-               "gap "
                "gap-count "
                "grow-direction "
                "inspect-quants "
index c4cdbb1c7b6c07d41bb338767994eef1bccc2ae4..d9267124037f329b37c6a9d2c7a5e68ad521fcfe 100644 (file)
@@ -140,6 +140,24 @@ Bezier::curve_point (Real t) const
   return o;
 }
 
+Real
+Bezier::slope_at_point (Real t) const
+{
+  Offset second_order[3];
+  Offset third_order[2];
+
+  for (vsize i = 0; i < 3; i++)
+    second_order[i] = ((control_[i + 1] - control_[i]) * t) + control_[i];
+
+  for (vsize i = 0; i < 2; i++)
+    third_order[i] = ((second_order[i + 1] - second_order[i]) * t) + second_order[i];
+
+  if (third_order[1][X_AXIS] - third_order[0][X_AXIS] == 0)
+    return infinity_f;
+
+  return (third_order[1][Y_AXIS] - third_order[0][Y_AXIS]) / (third_order[1][X_AXIS] - third_order[0][X_AXIS]);
+}
+
 /*
   Cache binom (3, j) t^j (1-t)^{3-j}
 */
index df4770ff7861eada58715e88cea9be1c74ae92da..52af33a142362dc26bcf3f9c94727d7e930d1f3c 100644 (file)
@@ -33,6 +33,13 @@ Box::unite (Box b)
     interval_a_[i].unite (b[i]);
 }
 
+Real
+Box::area () const
+{
+  return interval_a_[X_AXIS].length ()
+         * interval_a_[Y_AXIS].length ();
+}
+
 Box::Box ()
 {
 }
index 02b29858af1465d042c0c16d6f57c967e82f0f27..e568e358e9ce14071e3970f56e64f188e0f6a3b8 100644 (file)
@@ -76,22 +76,65 @@ Breathing_sign::divisio_maior (SCM smob)
   Real blotdiameter = me->layout ()->get_dimension (ly_symbol2scm ("blot-diameter"));
 
   /*
-   * Draw a vertical line that is vertically centered in the staff
-   * (just like a bar).  The height of this line should be a little
-   * more than half the size of the staff, such that the endings of
-   * the line are in the middle of a staff space.
-   */
-  Interval ydim = Staff_symbol_referencer::staff_span (me);
-  ydim.widen (-0.25 * ydim.delta ());
-  for (UP_and_DOWN (i))
+    Draw a vertical line that is roughly centered vertically in
+    the staff (just like a bar) with the following requirements:
+    1. length should be at least half the size of the staff
+    2. both ends should be in the middle of a staff space.
+
+    These two requirements contradict if the first or last space is
+    larger than half of the whole staff (e.g. the staff consists of
+    two lines only); in such cases the first prescription wins.
+  */
+  Interval ydim (0.0, 0.0);
+  if (Grob *staff = Staff_symbol_referencer::get_staff_symbol (me))
     {
-      int const int_dim = (int) ydim[i];
-      if (int_dim == ydim[i]
-          && Staff_symbol_referencer::on_staff_line (me, int_dim))
-        ydim[i] += i;
+      std::vector<Real> line_pos = Staff_symbol::line_positions (staff);
+      if (!line_pos.empty ())
+        {
+          std::sort (line_pos.begin (), line_pos.end ());
+          ydim[DOWN] = line_pos.front ();
+          ydim[UP] = line_pos.back ();
+          if (Real const height = ydim.length ())
+            {
+              ydim.widen (-0.25 * height);
+
+              /*
+                ydim has now the required height; to satisfy req. 2
+                find the staff spaces containing current endpoints.
+
+                standard algorithms are suitable to find the upper
+                line of these spaces; we must choose between
+                upper_bound and lower_bound considering that if
+                there's a line exactly at quarter of the staff (the
+                lower end) then we need the space below it, while if
+                there's a line exactly at three quarters of the staff
+                (upper end) then we need the space above it.
+
+                if the middle of the space found is not low/high
+                enough, take the next space (if there are no more
+                spaces, ydim won't be enlarged further).
+              */
+              std::vector<Real>::const_iterator it
+                = std::lower_bound (line_pos.begin (), line_pos.end (),
+                                    ydim[DOWN]);
+              assert (line_pos.begin () < it);
+              double val = (it[-1] + it[0]) / 2;
+              if (ydim[DOWN] < val && line_pos.begin () < it + 1)
+                val = (it[-2] + it[-1]) / 2;
+              ydim.add_point (val);
+
+              it = std::upper_bound (line_pos.begin (), line_pos.end (),
+                                     ydim[UP]);
+              assert (it < line_pos.end ());
+              val = (it[-1] + it[0]) / 2;
+              if (val < ydim[UP] && it + 1 < line_pos.end ())
+                val = (it[0] + it[1]) / 2;
+              ydim.add_point (val);
+            }
+        }
     }
 
-  ydim *= 1.0 / Staff_symbol_referencer::staff_space (me);
+  ydim *= Staff_symbol_referencer::staff_space (me) / 2;
 
   Interval xdim (0, thickness);
   Box b (xdim, ydim);
index eab4d94d075c52ef95f0ae09449d6d9d184585c5..26b4a607bb13bb39fbcd6954da896ab293161625 100644 (file)
@@ -71,12 +71,21 @@ Chord_name_engraver::Chord_name_engraver ()
 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));
+
   SCM markup;
-  SCM bass = SCM_EOL;
-  SCM inversion = SCM_EOL;
-  SCM pitches = SCM_EOL;
 
-  if (rest_event_)
+  if (rest_event_ && !make_markup) { }
+  else if (rest_event_)
     {
       SCM no_chord_markup = get_property ("noChordSymbol");
       if (!Text_interface::is_markup (no_chord_markup))
@@ -85,8 +94,9 @@ Chord_name_engraver::process_music ()
     }
   else
     {
-      if (!notes_.size ())
-        return;
+      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++)
@@ -125,24 +135,24 @@ Chord_name_engraver::process_music ()
       pitches = scm_sort_list (pitches, Pitch::less_p_proc);
 
       SCM name_proc = get_property ("chordNameFunction");
-      markup = scm_call_4 (name_proc, pitches, bass, inversion,
-                           context ()->self_scm ());
+      if (make_markup)
+        markup = scm_call_4 (name_proc, pitches, bass, inversion,
+                             context ()->self_scm ());
     }
   /*
     Ugh.
   */
-  SCM chord_as_scm = scm_cons (pitches, scm_cons (bass, inversion));
-
-  chord_name_ = make_item ("ChordName",
-                           rest_event_ ? rest_event_->self_scm () : notes_[0]->self_scm ());
-  chord_name_->set_property ("text", markup);
+  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");
   if (to_boolean (chord_changes) && scm_is_pair (last_chord_)
-      && ly_is_equal (chord_as_scm, last_chord_))
+      && ly_is_equal (markup, last_chord_))
     chord_name_->set_property ("begin-of-line-visible", SCM_BOOL_T);
 
-  last_chord_ = chord_as_scm;
+  last_chord_ = markup;
 }
 
 IMPLEMENT_TRANSLATOR_LISTENER (Chord_name_engraver, note);
index 00c345771728f4e46a06ed75ce08c023b0740f1c..1471c481b2d0805b1958b45be89d15a7954f07d7 100644 (file)
@@ -119,9 +119,12 @@ Clef_engraver::create_clef ()
           SCM txt = scm_number_to_string (scm_from_int (abs_oct),
                                           scm_from_int (10));
 
-          g->set_property ("text",
-                           scm_list_n (ly_lily_module_constant ("vcenter-markup"),
-                                       txt, SCM_UNDEFINED));
+          SCM style = get_property ("clefOctavationStyle");
+
+          SCM formatter = get_property ("clefOctavationFormatter");
+          if (ly_is_procedure (formatter))
+            g->set_property ("text", scm_call_2 (formatter, txt, style));
+
           Side_position_interface::add_support (g, clef_);
 
           g->set_parent (clef_, Y_AXIS);
@@ -212,6 +215,7 @@ ADD_TRANSLATOR (Clef_engraver,
                 /* read */
                 "clefGlyph "
                 "clefOctavation "
+                "clefOctavationStyle "
                 "clefPosition "
                 "explicitClefVisibility "
                 "forceClef ",
index 3c1ca3752537c9fe61ee4501dd333988c160d6db..b58bef99871b15efeccf97dffba8095aa203fc3f 100644 (file)
@@ -63,6 +63,7 @@ Clef::print (SCM smob)
   Stencil out = fm->find_by_name (glyph);
   if (out.is_empty ())
     me->warning (_f ("clef `%s' not found", glyph.c_str ()));
+
   return out.smobbed_copy ();
 }
 
index d0451afa92c51e26cb4e5719844141269fcde551..843c5208c0dfd78b570c9ebbe41d4427a16bee9f 100644 (file)
@@ -131,13 +131,14 @@ Coherent_ligature_engraver::move_related_items_to_column
  * occurs within the broken ligatures any more.
  */
 void
-Coherent_ligature_engraver::collect_accidentals (Spanner *, vector<Grob_info>)
+Coherent_ligature_engraver::collect_accidentals (Spanner *,
+                                                 vector<Grob_info> const &)
 {
   /* TODO */
 }
 
 void
-compute_delta_pitches (vector<Grob_info> primitives)
+compute_delta_pitches (vector<Grob_info> const &primitives)
 {
   int prev_pitch = 0;
   int delta_pitch = 0;
@@ -162,7 +163,7 @@ compute_delta_pitches (vector<Grob_info> primitives)
 
 void
 Coherent_ligature_engraver::typeset_ligature (Spanner *ligature,
-                                              vector<Grob_info> primitives)
+                                              vector<Grob_info> const &primitives)
 {
   // compute some commonly needed context info stored as grob
   // properties
index 5d04d258fe8fab77519367679f0544edd0561b38..ec677ec68ca2128c5a346a2f2b485a3fb329a9b6 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
index c8b7fc1d748bc06ae2074d33d436d77ab1bdd2e5..ee8b28906c5f6d476e82b49cb3afeba92974b833 100644 (file)
@@ -202,8 +202,10 @@ Constrained_breaking::solve (vsize start, vsize end, vsize sys_count)
         }
     }
   /* if we get to here, just put everything on one line */
-  warning (_ ("cannot find line breaking that satisfies constraints"));
-  ret.push_back (space_line (0, end_brk));
+  if (sys_count > 0) {
+    warning (_ ("cannot find line breaking that satisfies constraints"));
+    ret.push_back (space_line (0, end_brk));
+  }
   return ret;
 }
 
@@ -291,9 +293,11 @@ Constrained_breaking::line_details (vsize start, vsize end, vsize sys_count)
     }
 
   /* if we get to here, just put everything on one line */
-  Line_details details;
-  fill_line_details (&details, 0, end_brk);
-  ret.push_back (details);
+  if (sys_count > 0) {
+    Line_details details;
+    fill_line_details (&details, 0, end_brk);
+    ret.push_back (details);
+  }
   return ret;
 }
 
index b4e1e2567cc19397940b58e41a4852a1b9bb9ca2..1f823bf50368f747aff414b68bd6e8181c6b9b7c 100644 (file)
@@ -93,6 +93,9 @@ Context_def::print_smob (SCM smob, SCM port, scm_print_state *)
 
   scm_puts ("#<Context_def ", port);
   scm_display (me->context_name_, port);
+  scm_puts (" ", port);
+  string loc = me->origin ()->location_string ();
+  scm_puts (loc.c_str (), port);
   scm_puts (">", port);
   return 1;
 }
index 1ccfe5a970973e7ce3be409406985dcafd0e42f7..0c5e1ec55d689850efeeaf7eef209c4d2c4c3f32 100644 (file)
@@ -230,33 +230,25 @@ apply_property_operations (Context *tg, SCM pre_init_ops)
       SCM entry = scm_car (s);
       SCM type = scm_car (entry);
       entry = scm_cdr (entry);
-      if (!scm_is_pair (entry))
-        continue;
-      SCM context_prop = scm_car (entry);
-      if (scm_is_pair (context_prop))
-        {
-          if (tg->is_alias (scm_car (context_prop)))
-            context_prop = scm_cdr (context_prop);
-          else
-            continue;
-        }
 
       if (type == ly_symbol2scm ("push"))
         {
+          SCM context_prop = scm_car (entry);
           SCM val = scm_cadr (entry);
           SCM grob_prop_path = scm_cddr (entry);
           sloppy_general_pushpop_property (tg, context_prop, grob_prop_path, val);
         }
       else if (type == ly_symbol2scm ("pop"))
         {
+          SCM context_prop = scm_car (entry);
           SCM val = SCM_UNDEFINED;
           SCM grob_prop_path = scm_cdr (entry);
           sloppy_general_pushpop_property (tg, context_prop, grob_prop_path, val);
         }
       else if (type == ly_symbol2scm ("assign"))
-        tg->set_property (context_prop, scm_cadr (entry));
+        tg->set_property (scm_car (entry), scm_cadr (entry));
       else if (type == ly_symbol2scm ("apply"))
-        scm_apply_1 (context_prop, tg->self_scm (), scm_cdr (entry));
+       scm_apply_1 (scm_car (entry), tg->self_scm (), scm_cdr (entry));
     }
 }
 
index dad382a27a64d9c85612ad67d7e7f753daa8f166..1723964266001d47bd26fe0c05771505d03e9338 100644 (file)
@@ -113,9 +113,12 @@ Cue_clef_engraver::create_octavate_eight (SCM oct)
       SCM txt = scm_number_to_string (scm_from_int (abs_oct),
                                       scm_from_int (10));
 
-      g->set_property ("text",
-                       scm_list_n (ly_lily_module_constant ("vcenter-markup"),
-                                   txt, SCM_UNDEFINED));
+      SCM style = get_property ("cueClefOctavationStyle");
+
+      SCM formatter = get_property ("cueClefOctavationFormatter");
+      if (ly_is_procedure (formatter))
+        g->set_property ("text", scm_call_2 (formatter, txt, style));
+
       Side_position_interface::add_support (g, clef_);
 
       g->set_parent (clef_, Y_AXIS);
@@ -219,6 +222,7 @@ ADD_TRANSLATOR (Cue_clef_engraver,
                 /* read */
                 "cueClefGlyph "
                 "cueClefOctavation "
+                "cueClefOctavationStyle "
                 "cueClefPosition "
                 "explicitCueClefVisibility "
                 "middleCCuePosition "
index 1aa0b728c0657618f6839be6818691cee898848a..6cba432639deb7f8fd899a53a577987253787762 100644 (file)
@@ -187,7 +187,8 @@ Dot_column::calc_positioning_done (SCM smob)
 
       cfg.remove_collision (p);
       cfg[p] = dp;
-      if (Staff_symbol_referencer::on_line (dp.dot_, p))
+      if (Staff_symbol_referencer::on_line (dp.dot_, p) &&
+          dp.dot_->get_property ("style") != ly_symbol2scm ("kievan"))
         cfg.remove_collision (p);
     }
 
index be375b540d96db2eee758c7b77b0b72560add285..863aa5fc0242395b646abc2365ee6c96246a0670 100644 (file)
@@ -45,7 +45,7 @@ Dot_formatting_problem::best () const
 
 Dot_formatting_problem::Dot_formatting_problem (vector<Box> const &boxes,
                                                 Interval base_x)
-  : head_skyline_ (boxes, 0.2, Y_AXIS, RIGHT)
+  : head_skyline_ (boxes, Y_AXIS, RIGHT)
 {
   best_ = 0;
   head_skyline_.set_minimum_height (base_x[RIGHT]);
index 5fa27a69cbe40819c1f0146c56fdd1579ada4a90..9b55e04f49cd83360dfbff36c6f8ed6530a4467f 100644 (file)
@@ -39,7 +39,7 @@ protected:
   DECLARE_ACKNOWLEDGER (note_column);
   DECLARE_ACKNOWLEDGER (slur);
   DECLARE_END_ACKNOWLEDGER (slur);
-  DECLARE_ACKNOWLEDGER (tie);
+  DECLARE_END_ACKNOWLEDGER (tie);
   DECLARE_ACKNOWLEDGER (bass_figure_alignment);
   DECLARE_END_ACKNOWLEDGER (bass_figure_alignment);
 
@@ -106,7 +106,7 @@ Figured_bass_position_engraver::acknowledge_slur (Grob_info info)
 }
 
 void
-Figured_bass_position_engraver::acknowledge_tie (Grob_info info)
+Figured_bass_position_engraver::acknowledge_end_tie (Grob_info info)
 {
   support_.push_back (info.grob ());
 }
@@ -142,7 +142,7 @@ ADD_ACKNOWLEDGER (Figured_bass_position_engraver, note_column);
 ADD_ACKNOWLEDGER (Figured_bass_position_engraver, slur);
 ADD_END_ACKNOWLEDGER (Figured_bass_position_engraver, slur);
 
-ADD_ACKNOWLEDGER (Figured_bass_position_engraver, tie);
+ADD_END_ACKNOWLEDGER (Figured_bass_position_engraver, tie);
 ADD_ACKNOWLEDGER (Figured_bass_position_engraver, bass_figure_alignment);
 ADD_END_ACKNOWLEDGER (Figured_bass_position_engraver, bass_figure_alignment);
 
diff --git a/lily/fingering-column-engraver.cc b/lily/fingering-column-engraver.cc
new file mode 100644 (file)
index 0000000..bff3d7c
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 2012 Mike Solomon <mike@mikesolomon.org>
+
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "engraver.hh"
+#include "side-position-interface.hh"
+#include "pointer-group-interface.hh"
+#include "fingering-column.hh"
+#include "item.hh"
+
+#include "translator.icc"
+
+/**
+   Find potentially colliding scripts, and put them in a
+   Fingering_column, that will fix the collisions.  */
+class Fingering_column_engraver : public Engraver
+{
+  Drul_array<Grob *> fingering_columns_;
+  Drul_array<vector<Grob *> > scripts_;
+  vector<Grob *> possibles_;
+
+public:
+  TRANSLATOR_DECLARATIONS (Fingering_column_engraver);
+protected:
+  DECLARE_ACKNOWLEDGER (finger);
+  void process_acknowledged ();
+  void stop_translation_timestep ();
+};
+
+Fingering_column_engraver::Fingering_column_engraver ()
+{
+  for (LEFT_and_RIGHT (d))
+    fingering_columns_[d] = 0;
+}
+
+void
+Fingering_column_engraver::stop_translation_timestep ()
+{
+  for (vsize i = 0; i < possibles_.size (); i++)
+    if (!Item::is_non_musical (possibles_[i]))
+      {
+        if (Side_position_interface::get_axis (possibles_[i]) == X_AXIS)
+          {
+            Direction d = robust_scm2dir (possibles_[i]->get_property ("direction"), CENTER);
+            if (d)
+              scripts_[d].push_back (possibles_[i]);
+            else
+              possibles_[i]->warning ("Cannot add a fingering without a direction.");
+          }
+      }
+
+  for (LEFT_and_RIGHT (d))
+    {
+      if (scripts_[d].size () < 2 && fingering_columns_[d])
+        {
+          fingering_columns_[d]->suicide ();
+          fingering_columns_[d] = 0;
+        }
+      if (fingering_columns_[d])
+        {
+          for (vsize i = 0; i < scripts_[d].size (); i++)
+            Fingering_column::add_fingering (fingering_columns_[d], scripts_[d][i]);
+
+        }
+      scripts_[d].clear ();
+      fingering_columns_[d] = 0;
+    }
+  possibles_.clear ();
+}
+
+void
+Fingering_column_engraver::acknowledge_finger (Grob_info inf)
+{
+  Item *thing = dynamic_cast<Item *> (inf.grob ());
+  if (thing)
+    possibles_.push_back (thing);
+}
+
+void
+Fingering_column_engraver::process_acknowledged ()
+{
+  for (LEFT_and_RIGHT (d))
+    {
+      if (possibles_.size () > 1 && !fingering_columns_[d])
+        fingering_columns_[d] = make_item ("FingeringColumn", SCM_EOL);
+    }
+}
+
+ADD_ACKNOWLEDGER (Fingering_column_engraver, finger);
+ADD_TRANSLATOR (Fingering_column_engraver,
+                /* doc */
+                "Find potentially colliding scripts and put them into a"
+                " @code{FingeringColumn} object; that will fix the collisions.",
+
+                /* create */
+                "FingeringColumn ",
+
+                /* read */
+                "",
+
+                /* write */
+                ""
+               );
diff --git a/lily/fingering-column.cc b/lily/fingering-column.cc
new file mode 100644 (file)
index 0000000..d027dfa
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 2012 Mike Solomon <mike@mikesolomon.org>
+
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "grob.hh"
+#include "fingering-column.hh"
+#include "pointer-group-interface.hh"
+#include "staff-symbol-referencer.hh"
+#include "item.hh"
+#include "paper-column.hh"
+
+#include <map>
+
+MAKE_SCHEME_CALLBACK (Fingering_column, calc_positioning_done, 1);
+SCM
+Fingering_column::calc_positioning_done (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+  Real padding = robust_scm2double (me->get_property ("padding"), 0.0);
+  if (!me->is_live ())
+    return SCM_BOOL_T;
+
+  map<Grob *, bool> shifted;
+
+  Real ss = Staff_symbol_referencer::staff_space (me);
+
+  me->set_property ("positioning-done", SCM_BOOL_T);
+
+  extract_grob_set (me, "fingerings", const_fingerings);
+
+  if (const_fingerings.size () < 2)
+    {
+      me->programming_error ("This FingeringColumn should have never been created.");
+      return SCM_BOOL_T;
+    }
+
+  // order the fingerings from bottom to top
+  vector<Grob *> fingerings;
+  for (vsize i = 0; i < const_fingerings.size (); i++)
+    fingerings.push_back (const_fingerings[i]);
+
+  vector_sort (fingerings, pure_position_less);
+
+  Grob *common[2] = {common_refpoint_of_array (fingerings, me, X_AXIS),
+                     common_refpoint_of_array (fingerings, me, Y_AXIS)};
+
+  for (vsize i = 0; i < fingerings.size (); i++)
+    fingerings[i]->translate_axis (-fingerings[i]->extent (common[Y_AXIS], Y_AXIS).length () / 2, Y_AXIS);
+
+  for (vsize i = min (fingerings.size () - 1, fingerings.size () / 2 + 1); i >= 1; i--)
+    for (vsize j = i; j--;)
+      {
+        Interval ex_i = fingerings[i]->extent (common[X_AXIS], X_AXIS);
+        Interval ex_j = fingerings[j]->extent (common[X_AXIS], X_AXIS);
+        Interval ey_i = fingerings[i]->extent (common[Y_AXIS], Y_AXIS);
+        Interval ey_j = fingerings[j]->extent (common[Y_AXIS], Y_AXIS);
+        Real tval = min (0.0, (ey_i[DOWN] - ey_j[UP] - padding) / 2);
+        if (tval != 0.0 && !intersection (ex_i, ex_j).is_empty ())
+          {
+            if (shifted[fingerings[i]] || shifted[fingerings[j]])
+              fingerings[j]->translate_axis (tval * 2, Y_AXIS);
+            else
+              {
+                fingerings[i]->translate_axis (-tval, Y_AXIS);
+                fingerings[j]->translate_axis (tval, Y_AXIS);
+              }
+            shifted[fingerings[i]] = true;
+            shifted[fingerings[j]] = true;
+          }
+      }
+
+  for (vsize i = fingerings.size () / 2 - 1; i < fingerings.size () - 1; i++)
+    for (vsize j = i + 1; j < fingerings.size (); j++)
+      {
+        Interval ex_i = fingerings[i]->extent (common[X_AXIS], X_AXIS);
+        Interval ex_j = fingerings[j]->extent (common[X_AXIS], X_AXIS);
+        Interval ey_i = fingerings[i]->extent (common[Y_AXIS], Y_AXIS);
+        Interval ey_j = fingerings[j]->extent (common[Y_AXIS], Y_AXIS);
+        Real tval = max (0.0, (ey_i[UP] - ey_j[DOWN] + padding) / 2);
+        if (tval != 0.0 && !intersection (ex_i, ex_j).is_empty ())
+          {
+            if (shifted[fingerings[i]] || shifted[fingerings[j]])
+              fingerings[j]->translate_axis (tval * 2, Y_AXIS);
+            else
+              {
+                fingerings[i]->translate_axis (-tval, Y_AXIS);
+                fingerings[j]->translate_axis (tval, Y_AXIS);
+              }
+            shifted[fingerings[i]] = true;
+            shifted[fingerings[j]] = true;
+          }
+      }
+
+
+  return SCM_BOOL_T;
+}
+
+void
+Fingering_column::add_fingering (Grob *fc, Grob *f)
+{
+  Pointer_group_interface::add_grob (fc, ly_symbol2scm ("fingerings"), f);
+  f->set_parent (fc, X_AXIS);
+  f->set_property ("Y-offset", Grob::x_parent_positioning_proc);
+}
+
+ADD_INTERFACE (Fingering_column,
+               "Makes sure that fingerings placed laterally"
+               " do not collide.",
+
+               /* properties */
+               "padding "
+               "positioning-done "
+              );
index f997d6fe457f44626cddc7bec2579788b4046a69..31ddf349c92cf1098836fa98b11252ea19cf2b00 100644 (file)
@@ -33,6 +33,7 @@ class Flag
 {
 public:
   DECLARE_SCHEME_CALLBACK (print, (SCM));
+  DECLARE_SCHEME_CALLBACK (glyph_name, (SCM));
   DECLARE_SCHEME_CALLBACK (width, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_y_offset, (SCM));
   DECLARE_SCHEME_CALLBACK (pure_calc_y_offset, (SCM, SCM, SCM));
@@ -61,9 +62,10 @@ Flag::width (SCM smob)
 
   return ly_interval2scm (sten->extent (X_AXIS) - stem->extent (stem, X_AXIS)[RIGHT]);
 }
-MAKE_SCHEME_CALLBACK (Flag, print, 1);
+
+MAKE_SCHEME_CALLBACK (Flag, glyph_name, 1);
 SCM
-Flag::print (SCM smob)
+Flag::glyph_name (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
   Grob *stem = me->get_parent (X_AXIS);
@@ -76,9 +78,6 @@ Flag::print (SCM smob)
   if (scm_is_symbol (flag_style_scm))
     flag_style = ly_symbol2string (flag_style_scm);
 
-  if (flag_style == "no-flag")
-    return Stencil ().smobbed_copy ();
-
   bool adjust = true;
 
   string staffline_offs;
@@ -107,8 +106,30 @@ Flag::print (SCM smob)
   char dir = (d == UP) ? 'u' : 'd';
   string font_char = flag_style
                      + to_string (dir) + staffline_offs + to_string (log);
+  return ly_string2scm ("flags." + font_char);
+}
+
+MAKE_SCHEME_CALLBACK (Flag, print, 1);
+SCM
+Flag::print (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+  Grob *stem = me->get_parent (X_AXIS);
+
+  Direction d = get_grob_direction (stem);
+  string flag_style;
+
+  SCM flag_style_scm = me->get_property ("style");
+  if (scm_is_symbol (flag_style_scm))
+    flag_style = ly_symbol2string (flag_style_scm);
+
+  if (flag_style == "no-flag")
+    return Stencil ().smobbed_copy ();
+
+  char dir = (d == UP) ? 'u' : 'd';
   Font_metric *fm = Font_interface::get_default_font (me);
-  Stencil flag = fm->find_by_name ("flags." + font_char);
+  string font_char = robust_scm2string (me->get_property ("glyph-name"), "");
+  Stencil flag = fm->find_by_name (font_char);
   if (flag.is_empty ())
     me->warning (_f ("flag `%s' not found", font_char));
 
@@ -165,11 +186,13 @@ Flag::internal_calc_y_offset (SCM smob, bool pure)
   Real blot
     = me->layout ()->get_dimension (ly_symbol2scm ("blot-diameter"));
 
-  Real y2 = pure
-            ? stem->pure_height (stem, 0, INT_MAX)[d]
-            : stem->extent (stem, Y_AXIS)[d];
+  Interval stem_extent = pure
+                         ? stem->pure_height (stem, 0, INT_MAX)
+                         : stem->extent (stem, Y_AXIS);
 
-  return scm_from_double (y2 - d * blot / 2);
+  return scm_from_double (stem_extent.is_empty ()
+                          ? 0.0
+                          : stem_extent[d] - d * blot / 2);
 }
 
 MAKE_SCHEME_CALLBACK (Flag, calc_x_offset, 1);
@@ -190,6 +213,7 @@ ADD_INTERFACE (Flag,
                " @code{'no-flag}, which switches off the flag.",
 
                /* properties */
+               "glyph-name "
                "style "
                "stroke-style "
               );
index efa7900b00d5f570130f0dd279278c435e0b138a..39e18cd57c897db66fb029fdd4bf7d4f5e375664 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -33,45 +33,22 @@ class Footnote_engraver : public Engraver
 {
   TRANSLATOR_DECLARATIONS (Footnote_engraver);
 
-  DECLARE_TRANSLATOR_LISTENER (footnote);
   DECLARE_ACKNOWLEDGER (grob);
   DECLARE_END_ACKNOWLEDGER (grob);
-  vector<Stream_event *> events_;
+
   vector<Drul_array<Spanner *> > annotated_spanners_;
 
-  void stop_translation_timestep ();
   void finalize ();
-  virtual void derived_mark () const;
 
   void footnotify (Grob *, SCM);
 };
 
-IMPLEMENT_TRANSLATOR_LISTENER (Footnote_engraver, footnote);
-void
-Footnote_engraver::listen_footnote (Stream_event *ev)
-{
-  events_.push_back (ev);
-}
-
-void
-Footnote_engraver::stop_translation_timestep ()
-{
-  events_.clear ();
-}
-
 void
 Footnote_engraver::finalize ()
 {
   annotated_spanners_.clear ();
 }
 
-void
-Footnote_engraver::derived_mark () const
-{
-  for (vsize i = 0; i < events_.size (); ++i)
-    scm_gc_mark (events_[i]->self_scm ());
-}
-
 Footnote_engraver::Footnote_engraver ()
 {
 }
@@ -115,24 +92,8 @@ Footnote_engraver::acknowledge_grob (Grob_info info)
 
       // This grob has exhausted its footnote
       info.grob ()->set_property ("footnote-music", SCM_EOL);
-      return;
-    }
 
-  if (!events_.empty ())
-    {
-      string grobname = info.grob ()->name ();
-
-      for (vsize i = 0; i < events_.size (); i++)
-        {
-          SCM name = events_[i]->get_property ("symbol");
-          if (scm_is_symbol (name)
-              && grobname == ly_symbol2string (name))
-            {
-              footnotify (info.grob (), events_[i]->self_scm ());
-              // Event has exhausted its footnote
-              events_[i]->set_property ("symbol", SCM_EOL);
-            }
-        }
+      return;
     }
 }
 
index f19b1649686225c8bc4f67b5bcf555d5a24096da..c48ef614c6dc0cc56049f4e6a59cf8d622b15a4e 100644 (file)
@@ -20,6 +20,9 @@
 #include "freetype.hh"
 #include "warn.hh"
 
+#include <freetype/ftoutln.h>
+#include <freetype/ftbbox.h>
+
 FT_Library freetype2_library;
 
 void
@@ -30,3 +33,172 @@ init_freetype ()
     error ("cannot initialize FreeType");
 }
 
+Box
+ly_FT_get_unscaled_indexed_char_dimensions (FT_Face const &face, size_t signed_idx)
+{
+  FT_UInt idx = FT_UInt (signed_idx);
+  FT_Load_Glyph (face, idx, FT_LOAD_NO_SCALE);
+
+  FT_Glyph_Metrics m = face->glyph->metrics;
+  FT_Pos hb = m.horiBearingX;
+  FT_Pos vb = m.horiBearingY;
+
+  // is this viable for all grobs?
+  return Box (Interval (Real (hb), Real (hb + m.width)),
+              Interval (Real (vb - m.height), Real (vb)));
+}
+
+SCM
+box_to_scheme_lines (Box b)
+{
+  return scm_list_4 (scm_list_4 (scm_from_double (b[X_AXIS][LEFT]),
+                                 scm_from_double (b[Y_AXIS][DOWN]),
+                                 scm_from_double (b[X_AXIS][RIGHT]),
+                                 scm_from_double (b[Y_AXIS][DOWN])),
+                     scm_list_4 (scm_from_double (b[X_AXIS][RIGHT]),
+                                 scm_from_double (b[Y_AXIS][DOWN]),
+                                 scm_from_double (b[X_AXIS][RIGHT]),
+                                 scm_from_double (b[Y_AXIS][UP])),
+                     scm_list_4 (scm_from_double (b[X_AXIS][RIGHT]),
+                                 scm_from_double (b[Y_AXIS][UP]),
+                                 scm_from_double (b[X_AXIS][LEFT]),
+                                 scm_from_double (b[Y_AXIS][UP])),
+                     scm_list_4 (scm_from_double (b[X_AXIS][LEFT]),
+                                 scm_from_double (b[Y_AXIS][UP]),
+                                 scm_from_double (b[X_AXIS][LEFT]),
+                                 scm_from_double (b[Y_AXIS][DOWN])));
+}
+
+Box
+ly_FT_get_glyph_outline_bbox (FT_Face const &face, size_t signed_idx)
+{
+  FT_UInt idx = FT_UInt (signed_idx);
+  FT_Load_Glyph (face, idx, FT_LOAD_NO_SCALE);
+
+  if (!(face->glyph->format == FT_GLYPH_FORMAT_OUTLINE))
+    {
+#if 0
+      // will generate a lot of warnings
+      warning ("Cannot make glyph outline");
+#endif
+      return Box (Interval (infinity_f, -infinity_f), Interval (infinity_f, -infinity_f));
+    }
+  FT_Outline *outline;
+  outline = &(face->glyph->outline);
+
+  FT_BBox bbox;
+  FT_Outline_Get_BBox (outline, &bbox);
+
+  return Box (Interval (bbox.xMin, bbox.xMax), Interval (bbox.yMin, bbox.yMax));
+}
+
+SCM
+ly_FT_get_glyph_outline (FT_Face const &face, size_t signed_idx)
+{
+  FT_UInt idx = FT_UInt (signed_idx);
+  FT_Load_Glyph (face, idx, FT_LOAD_NO_SCALE);
+
+  if (!(face->glyph->format == FT_GLYPH_FORMAT_OUTLINE))
+    {
+#if 0
+      // will generate a lot of warnings
+      warning ("Cannot make glyph outline");
+#endif
+      return box_to_scheme_lines (ly_FT_get_unscaled_indexed_char_dimensions (face, signed_idx));
+    }
+
+  FT_Outline *outline;
+  outline = &(face->glyph->outline);
+  SCM out = SCM_EOL;
+  Offset lastpos;
+  Offset firstpos;
+  vsize j = 0;
+  while (j < outline->n_points)
+    {
+      if (j == 0)
+        {
+          firstpos = Offset (outline->points[j].x, outline->points[j].y);
+          lastpos = firstpos;
+          j++;
+        }
+      else if (outline->tags[j] & 1)
+        {
+          // it is a line
+          out = scm_cons (scm_list_4 (scm_from_double (lastpos[X_AXIS]),
+                                      scm_from_double (lastpos[Y_AXIS]),
+                                      scm_from_double (outline->points[j].x),
+                                      scm_from_double (outline->points[j].y)),
+                          out);
+          lastpos = Offset (outline->points[j].x, outline->points[j].y);
+          j++;
+        }
+      else if (outline->tags[j] & 2)
+        {
+          // it is a third order bezier
+          out = scm_cons (scm_list_n (scm_from_double (lastpos[X_AXIS]),
+                                      scm_from_double (lastpos[Y_AXIS]),
+                                      scm_from_double (outline->points[j].x),
+                                      scm_from_double (outline->points[j].y),
+                                      scm_from_double (outline->points[j + 1].x),
+                                      scm_from_double (outline->points[j + 1].y),
+                                      scm_from_double (outline->points[j + 2].x),
+                                      scm_from_double (outline->points[j + 2].y),
+                                      SCM_UNDEFINED),
+                          out);
+          lastpos = Offset (outline->points[j + 2].x, outline->points[j + 2].y);
+          j += 3;
+        }
+      else
+        {
+          // it is a second order bezier
+          Real x0 = lastpos[X_AXIS];
+          Real x1 = outline->points[j].x;
+          Real x2 = outline->points[j + 1].x;
+
+          Real y0 = lastpos[Y_AXIS];
+          Real y1 = outline->points[j].y;
+          Real y2 = outline->points[j + 1].y;
+
+          Real qx2 = x0 + x2 - (2 * x1);
+          Real qx1 = (2 * x1) - (2 * x0);
+          Real qx0 = x0;
+
+          Real qy2 = y0 + y2 - (2 * y1);
+          Real qy1 = (2 * y1) - (2 * y0);
+          Real qy0 = y0;
+
+          Real cx0 = qx0;
+          Real cx1 = qx0 + (qx1 / 3);
+          Real cx2 = qx0 + (2 * qx1 / 3) + (qx2 / 3);
+          Real cx3 = qx0 + qx1 + qx2;
+
+          Real cy0 = qy0;
+          Real cy1 = qy0 + (qy1 / 3);
+          Real cy2 = qy0 + (2 * qy1 / 3) + (qy2 / 3);
+          Real cy3 = qy0 + qy1 + qy2;
+
+          out = scm_cons (scm_list_n (scm_from_double (cx0),
+                                      scm_from_double (cy0),
+                                      scm_from_double (cx1),
+                                      scm_from_double (cy1),
+                                      scm_from_double (cx2),
+                                      scm_from_double (cy2),
+                                      scm_from_double (cx3),
+                                      scm_from_double (cy3),
+                                      SCM_UNDEFINED),
+                          out);
+          lastpos = Offset (outline->points[j + 1].x, outline->points[j + 1].y);
+          j += 2;
+        }
+    }
+
+  // just in case, close the figure
+  out = scm_cons (scm_list_4 (scm_from_double (lastpos[X_AXIS]),
+                              scm_from_double (lastpos[Y_AXIS]),
+                              scm_from_double (firstpos[X_AXIS]),
+                              scm_from_double (firstpos[Y_AXIS])),
+                  out);
+
+  out = scm_reverse_x (out, SCM_EOL);
+  return out;
+}
index 1267793cf3564b3e3198aeffe3b235a7ef3e2528..86ee2b05b963132936020f212fa5ef09a613b5c6 100644 (file)
@@ -90,8 +90,7 @@ LY_DEFINE (ly_interpret_music_expression, "ly:interpret-music-expression",
   LY_ASSERT_TYPE (unsmob_global_context, ctx, 2);
 
   Music *music = unsmob_music (mus);
-  if (!music
-      || !music->get_length ().to_bool ())
+  if (!music)
     {
       warning (_ ("no music found in score"));
       return SCM_BOOL_F;
diff --git a/lily/global-vars.cc b/lily/global-vars.cc
new file mode 100644 (file)
index 0000000..f12e957
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "file-path.hh"
+#include "main.hh"
+
+/*
+ * Global options that can be overridden through command line.
+ */
+
+/* Names of header fields to be dumped to a separate file. */
+vector<string> dump_header_fieldnames_global;
+
+/* Name of initialisation file. */
+string init_name_global;
+
+/* Output formats to generate.  */
+string output_format_global = "";
+
+/* Current output name. */
+string output_name_global;
+
+/* Run in safe mode? */
+bool be_safe_global = false;
+
+/* Scheme code to execute before parsing, after .scm init.
+   This is where -e arguments are appended to.  */
+string init_scheme_code_global;
+string init_scheme_variables_global;
+
+bool relocate_binary = true;
+
+/*
+ * Miscellaneous global stuff.
+ */
+File_path global_path;
+
+/* Where the init files live.  Typically:
+   LILYPOND_DATADIR = /usr/share/lilypond
+*/
+string lilypond_datadir;
+
+vector<string> start_environment_global;
index 6ab68c8c9bd264b2a90db3719296faa2f4caf7e9..bfc7bfd8833674df2a5716e44c6709d0de60a910 100644 (file)
@@ -93,7 +93,7 @@ void fix_prefix_set (int *current_set, int min_set, int max_set, Grob *primitive
   fix_prefix ("pes_or_flexa", LINEA, current_set, min_set, max_set, primitive);
 }
 
-void check_and_fix_all_prefixes (vector<Grob_info> primitives)
+void check_and_fix_all_prefixes (vector<Grob_info> const &primitives)
 {
   /* Check for invalid head modifier combinations */
   for (vsize i = 0; i < primitives.size (); i++)
@@ -204,7 +204,7 @@ void check_and_fix_all_prefixes (vector<Grob_info> primitives)
  * Marks those heads that participate in a pes or flexa.
  */
 void
-provide_context_info (vector<Grob_info> primitives)
+provide_context_info (vector<Grob_info> const &primitives)
 {
   Grob *prev_primitive = 0;
   int prev_prefix_set = 0;
@@ -253,7 +253,7 @@ provide_context_info (vector<Grob_info> primitives)
 
 void
 Gregorian_ligature_engraver::build_ligature (Spanner *ligature,
-                                             vector<Grob_info> primitives)
+                                             vector<Grob_info> const &primitives)
 {
   // apply style-independent checking and transformation
   check_and_fix_all_prefixes (primitives);
index 22c5fe2e7198e644d9001d8144587043671dbcbc..3afe182c0ef07793ecf1fd0d09a5ea147c9bd4e1 100644 (file)
@@ -241,17 +241,12 @@ Grob::try_callback_on_alist (SCM *alist, SCM sym, SCM proc)
     grob_property_callback_stack = scm_cdr (grob_property_callback_stack);
 #endif
 
-  /*
-    If the function returns SCM_UNSPECIFIED, we assume the
-    property has been set with an explicit set_property ()
-    call.
-  */
   if (value == SCM_UNSPECIFIED)
     {
       value = get_property_data (sym);
       assert (value == SCM_EOL || value == marker);
       if (value == marker)
-        *alist = scm_assq_remove_x (*alist, marker);
+        *alist = scm_assq_remove_x (*alist, sym);
     }
   else
     {
index 81ff7864ff36b4b4ff972bb0fc3051d8700f60e5..e5976a569b799b4db7a4fa6562afe6ee4953cb0f 100644 (file)
@@ -66,7 +66,7 @@ LY_DEFINE (ly_grob_set_nested_property_x, "ly:grob-set-nested-property!",
 
   LY_ASSERT_SMOB (Grob, grob, 1);
 
-  bool type_ok = ly_cheap_is_list (symlist);
+  bool type_ok = scm_is_pair (symlist);
 
   if (type_ok)
     for (SCM s = symlist; scm_is_pair (s) && type_ok; s = scm_cdr (s))
@@ -74,7 +74,10 @@ LY_DEFINE (ly_grob_set_nested_property_x, "ly:grob-set-nested-property!",
 
   SCM_ASSERT_TYPE (type_ok, symlist, SCM_ARG2, __FUNCTION__, "list of symbols");
 
-  set_nested_property (sc, symlist, val);
+  if (scm_is_pair (scm_cdr (symlist)))
+    set_nested_property (sc, symlist, val);
+  else
+    ly_grob_set_property_x (grob, scm_car (symlist), val);
   return SCM_UNSPECIFIED;
 }
 
@@ -466,3 +469,15 @@ LY_DEFINE (ly_grob_vertical_less_p, "ly:grob-vertical<?",
 
   return ly_bool2scm (Grob::vertical_less (ga, gb));
 }
+
+LY_DEFINE (ly_grob_get_vertical_axis_group_index, "ly:grob-get-vertical-axis-group-index",
+           1, 0, 0, (SCM grob),
+           "Get the index of the vertical axis group the grob @var{grob} belongs to;"
+           " return @code{-1} if none is found.")
+{
+  Grob *gr = unsmob_grob (grob);
+
+  LY_ASSERT_SMOB (Grob, grob, 1);
+
+  return scm_from_int (Grob::get_vertical_axis_group_index (gr));
+}
index 828ae7f07b40687457f8031475f0a42d9992dc67..031af32636878b3a163bb0ea483bca2e0d0fcdc5 100644 (file)
@@ -20,6 +20,7 @@
 #include "grob.hh"
 
 #include <cstring>
+#include <set>
 
 #include "align-interface.hh"
 #include "axis-group-interface.hh"
@@ -79,6 +80,10 @@ Grob::Grob (SCM basicprops)
     set_property ("X-extent", Grob::stencil_width_proc);
   if (get_property_data ("Y-extent") == SCM_EOL)
     set_property ("Y-extent", Grob::stencil_height_proc);
+  if (get_property_data ("vertical-skylines") == SCM_EOL)
+    set_property ("vertical-skylines", Grob::simple_vertical_skylines_from_stencil_proc);
+  if (get_property_data ("horizontal-skylines") == SCM_EOL)
+    set_property ("horizontal-skylines", Grob::simple_horizontal_skylines_from_stencil_proc);
 }
 
 Grob::Grob (Grob const &s)
@@ -467,9 +472,11 @@ Grob::extent (Grob *refp, Axis a) const
     }
 
   // We never want nan, so we avoid shifting infinite values.
-  for (LEFT_and_RIGHT (d))
-    if (!isinf (real_ext[d]))
-      real_ext[d] += offset;
+    if(!isinf (offset))
+      real_ext.translate(offset);
+    else
+      this->warning(_f ("ignored infinite %s-offset",
+                        a == X_AXIS ? "X" : "Y"));
 
   return real_ext;
 }
@@ -799,11 +806,10 @@ ADD_INTERFACE (Grob,
                "color "
                "cross-staff "
                "id "
-               "extra-X-extent "
-               "extra-Y-extent "
                "extra-offset "
                "footnote-music "
                "forced-spacing "
+               "horizontal-skylines "
                "interfaces "
                "layer "
                "meta "
@@ -814,10 +820,12 @@ ADD_INTERFACE (Grob,
                "outside-staff-priority "
                "pure-Y-offset-in-progress "
                "rotation "
+               "skyline-horizontal-padding "
                "springs-and-rods "
                "staff-symbol "
                "stencil "
                "transparent "
+               "vertical-skylines "
                "whiteout "
               );
 
@@ -903,6 +911,20 @@ common_refpoint_of_array (vector<Grob *> const &arr, Grob *common, Axis a)
   return common;
 }
 
+Grob *
+common_refpoint_of_array (set<Grob *> const &arr, Grob *common, Axis a)
+{
+  set<Grob *>::iterator it;
+
+  for (it = arr.begin (); it != arr.end (); it++)
+    if (common)
+      common = common->common_refpoint (*it, a);
+    else
+      common = *it;
+
+  return common;
+}
+
 Interval
 robust_relative_extent (Grob *me, Grob *refpoint, Axis a)
 {
index cacfb0f51c148968f015fec995ef17d742ba24b3..40e165dd6d0ffe35c9cfff0051e19133129037ed 100644 (file)
@@ -127,14 +127,16 @@ Hairpin::print (SCM smob)
       broken[d] = bounds[d]->break_status_dir () != CENTER;
     }
 
-  broken[RIGHT] = broken[RIGHT] && me->broken_neighbor (RIGHT);
-  broken[RIGHT] = broken[RIGHT] && me->broken_neighbor (RIGHT)->is_live ();
-
   if (broken[RIGHT])
     {
       Spanner *next = me->broken_neighbor (RIGHT);
-      Stencil *s = next->get_stencil ();
-      if (!s || s->is_empty ())
+      // Hairpin-parts suicide in after-line-breaking if they need not be drawn
+      if (next)
+        {
+          (void) next->get_property ("after-line-breaking");
+          broken[RIGHT] = next->is_live ();
+        }
+      else
         broken[RIGHT] = false;
     }
 
diff --git a/lily/include/GNUmakefile b/lily/include/GNUmakefile
deleted file mode 100644 (file)
index ae2bfb6..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# lily/include/Makefile
-
-depth = ../..
-STEPMAKE_TEMPLATES=c++
-
-include $(depth)/make/stepmake.make
-
-
index bf4bfb7a58b51adef7e586ad95810c2fceee9d3a..9c9b97b580e432086e7d1eb79b6f9b7afbcdd482 100644 (file)
@@ -32,11 +32,11 @@ public:
   DECLARE_SCHEME_CALLBACK (print, (SCM));
   DECLARE_SCHEME_CALLBACK (height, (SCM));
   DECLARE_SCHEME_CALLBACK (width, (SCM));
+  DECLARE_SCHEME_CALLBACK (horizontal_skylines, (SCM));
   DECLARE_SCHEME_CALLBACK (pure_height, (SCM, SCM, SCM));
 
   DECLARE_GROB_INTERFACE ();
   static string get_fontcharname (string style, int alteration);
-  static vector<Box> accurate_boxes (Grob *me, Grob **common);
   static SCM get_stencil (Grob *me);
 };
 
index 19bdc1e2ee9b85018f5d3bf93cb5647429fdb66d..4098a19514b6efe4f7c04f660d7cd6d06f6e0cfa 100644 (file)
 #include "grob-interface.hh"
 #include "skyline.hh"
 
-struct Axis_group_interface
+class Axis_group_interface
 {
+  static Real default_outside_staff_padding_;
+  public
+:
   static SCM generic_group_extent (Grob *me, Axis a);
+  static Real get_default_outside_staff_padding ();
   static Interval generic_bound_extent (Grob *me, Grob *common, Axis a);
   static Interval pure_group_height (Grob *me, int start, int end);
   DECLARE_SCHEME_CALLBACK (width, (SCM smob));
@@ -57,7 +61,7 @@ struct Axis_group_interface
   static Interval rest_of_line_pure_height (Grob *me, int, int);
   static Interval part_of_line_pure_height (Grob *me, bool begin, int, int);
 
-  static bool has_outside_staff_parent (Grob *me);
+  static Grob *outside_staff_ancestor (Grob *me);
   static Skyline_pair skyline_spacing (Grob *me, vector<Grob *> elements);
   static void add_element (Grob *me, Grob *);
   static void set_axes (Grob *, Axis, Axis);
index 6e2302d19a8811960ccb9c30c0a7b7d8ebd7724e..7e77d6794d9bea907c8afa293da73a0eab27a5b2 100644 (file)
@@ -190,7 +190,7 @@ private:
   void score_slope_direction (Beam_configuration *config) const;
   void score_slope_musical (Beam_configuration *config) const;
   void score_stem_lengths (Beam_configuration *config) const;
-  void generate_quants (vector<Beam_configuration *>scores) const;
+  void generate_quants (vector<Beam_configuration *> *scores) const;
   void score_collisions (Beam_configuration *config) const;
 };
 
index 116ae6aa5730a72ad616594c69bc89bb34991672..c26d8d213785f770a29cff6a7072fe54d1a500fb 100644 (file)
@@ -72,6 +72,9 @@ public:
   DECLARE_SCHEME_CALLBACK (rest_collision_callback, (SCM element, SCM prev_off));
   DECLARE_SCHEME_CALLBACK (pure_rest_collision_callback, (SCM element, SCM, SCM, SCM prev_off));
   DECLARE_SCHEME_CALLBACK (print, (SCM));
+  DECLARE_SCHEME_CALLBACK (calc_beam_gap, (SCM));
+  DECLARE_SCHEME_CALLBACK (calc_springs_and_rods, (SCM));
+  DECLARE_SCHEME_CALLBACK (calc_minimum_length, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_beaming, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_stem_shorten, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_direction, (SCM));
@@ -89,6 +92,7 @@ public:
 private:
   friend class Beam_scoring_problem;
 
+  static bool whole_note_close_chord_tremolo (Grob *me);
   static Direction get_default_dir (Grob *);
   static vector<Beam_segment> get_beam_segments (Grob *);
   static void set_stem_directions (Grob *, Direction);
index 1e88dbb76499080680f30459562c4912c9086155..d09c0ac8bee4a7870d319ab1b64a240278bbcfbf 100644 (file)
@@ -48,6 +48,7 @@ public:
 
   Polynomial polynomial (Axis)const;
   Offset curve_point (Real t) const;
+  Real slope_at_point (Real t) const;
   Real curve_coordinate (Real t, Axis) const;
 
   static const int CONTROL_COUNT = 4;
index af5695b3bce8f64978a623c4d16b56dea054b7a4..ab0d3f5300b614211adf9c8f0a18a91f2e3e686c 100644 (file)
@@ -20,6 +20,7 @@ public:
   Interval y () const {return interval_a_[Y_AXIS]; }
   Interval operator [] (Axis a) const;
   Interval &operator [] (Axis a);
+  Real area () const;
 
   Offset center () const;
 
@@ -36,4 +37,6 @@ public:
   Box (Interval ix, Interval iy);
 };
 
+DECLARE_UNSMOB (Box, box);
+
 #endif
index cc3ed8d6951fa115b0fab960fab9583725fb81e3..bf422c40d1b4d1e108bc6d692f84e03a264d7693 100644 (file)
@@ -29,12 +29,12 @@ public:
 
 protected:
   virtual void build_ligature (Spanner *ligature,
-                               vector<Grob_info> primitives) = 0;
+                               vector<Grob_info> const &primitives) = 0;
   virtual void typeset_ligature (Spanner *ligature,
-                                 vector<Grob_info> primitives);
+                                 vector<Grob_info> const &primitives);
   virtual void move_related_items_to_column (Item *, Paper_column *, Real);
 private:
-  void collect_accidentals (Spanner *, vector<Grob_info>);
+  void collect_accidentals (Spanner *, vector<Grob_info> const &);
 };
 
 #endif // COHERENT_LIGATURE_ENGRAVER_HH
index 731e20c1e3dca00feab28d8e4ce9ed3af1ffc0fe..cb4c4f70be28a7ac56e72e8e98291b6bf7d62b14 100644 (file)
@@ -203,6 +203,6 @@ private:
   Real combine_demerits (Real force, Real prev_force);
 
   bool calc_subproblem (vsize start, vsize systems, vsize max_break_index);
-  void fill_line_details (Line_details *const, vsize, vsize);
+  void fill_line_details (Line_details *, vsize, vsize);
 };
 #endif /* CONSTRAINED_BREAKING_HH */
index 297ec4bb39822beec2d2020c804ac5e1bb4f93b9..d384d73a0481d2563700014974912d3817db0e37 100644 (file)
@@ -42,8 +42,6 @@ public:
   void add_context_mod (SCM);
   void add_context_mods (SCM);
 
-  VIRTUAL_COPY_CONSTRUCTOR (Context_mod, Context_mod);
-
   SCM get_mods () const;
 
   Context_mod ();
diff --git a/lily/include/fingering-column.hh b/lily/include/fingering-column.hh
new file mode 100644 (file)
index 0000000..6d6bef2
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 1999--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef FINGERING_COLUMN_HH
+#define FINGERING_COLUMN_HH
+
+#include "lily-proto.hh"
+#include "grob-interface.hh"
+#include "std-vector.hh"
+
+struct Fingering_column
+{
+  static void add_fingering (Grob *, Grob *);
+  DECLARE_SCHEME_CALLBACK (calc_positioning_done, (SCM));
+  DECLARE_GROB_INTERFACE ();
+};
+
+#endif /* FINGERING_COLUMN_HH */
index 3ddc07e67fceb620856e6ad085758a148f9761c6..14f14d92c0317248e97f12c221bfc69d985a31e5 100644 (file)
 #include FT_FREETYPE_H
 
 #include "std-string.hh"
+#include "box.hh"
 
 void init_freetype ();
 extern FT_Library freetype2_library;
 
 string freetype_error_string (FT_Error code);
 
+SCM box_to_scheme_lines (Box b);
+Box ly_FT_get_unscaled_indexed_char_dimensions (FT_Face const &face, size_t signed_idx);
+Box ly_FT_get_glyph_outline_bbox (FT_Face const &face, size_t signed_idx);
+SCM ly_FT_get_glyph_outline (FT_Face const &face, size_t signed_idx);
+
 #endif /* FREETYPE_HH */
index 3ebf372eedb25876ad2dc422c0370ade43d70926..a65d54f67bd8f975db35479413fe618d8c54a9e4 100644 (file)
@@ -33,9 +33,10 @@ protected:
   Gregorian_ligature_engraver ();
 
   virtual void listen_pes_or_flexa (Stream_event *ev);
-  virtual void build_ligature (Spanner *ligature, vector<Grob_info> primitives);
+  virtual void build_ligature (Spanner *ligature,
+                               vector<Grob_info> const &primitives);
   virtual void transform_heads (Spanner *ligature,
-                                vector<Grob_info> primitives) = 0;
+                                vector<Grob_info> const &primitives) = 0;
   void stop_translation_timestep ();
 };
 
index fd55dbf20968baba7b9c52be139fa3b6425e2e9f..09cd566ad335b39708990d05ab74894ff2099af1 100644 (file)
@@ -25,6 +25,8 @@
 #include "dimension-cache.hh"
 #include "grob-interface.hh"
 
+#include <set>
+
 class Grob
 {
 private:
@@ -69,6 +71,12 @@ public:
   DECLARE_SCHEME_CALLBACK (y_parent_positioning, (SCM));
   DECLARE_SCHEME_CALLBACK (stencil_height, (SCM smob));
   DECLARE_SCHEME_CALLBACK (stencil_width, (SCM smob));
+  DECLARE_SCHEME_CALLBACK (simple_vertical_skylines_from_stencil, (SCM smob));
+  DECLARE_SCHEME_CALLBACK (vertical_skylines_from_stencil, (SCM smob));
+  DECLARE_SCHEME_CALLBACK (vertical_skylines_from_element_stencils, (SCM smob));
+  DECLARE_SCHEME_CALLBACK (simple_horizontal_skylines_from_stencil, (SCM smob));
+  DECLARE_SCHEME_CALLBACK (horizontal_skylines_from_stencil, (SCM smob));
+  DECLARE_SCHEME_CALLBACK (horizontal_skylines_from_element_stencils, (SCM smob));
 
   /* R/O access */
   Output_def *layout () const { return layout_; }
@@ -141,17 +149,20 @@ public:
   void fixup_refpoint ();
 
   /* vertical ordering */
+  static bool internal_vertical_less (Grob *g1, Grob *g2, bool pure);
   static Grob *get_root_vertical_alignment (Grob *g);
   static Grob *get_vertical_axis_group (Grob *g);
   static bool vertical_less (Grob *g1, Grob *g2);
   static bool pure_vertical_less (Grob *g1, Grob *g2);
-  static bool internal_vertical_less (Grob *g1, Grob *g2, bool pure);
   static int get_vertical_axis_group_index (Grob *g);
 
+  /* skylines */
   virtual Interval_t<int> spanned_rank_interval () const;
   virtual bool pure_is_visible (int start, int end) const;
   bool check_cross_staff (Grob *common);
   static bool less (Grob *g1, Grob *g2);
+  static SCM internal_simple_skylines_from_stencil (SCM, Axis);
+  static SCM internal_skylines_from_element_stencils (SCM, Axis);
 };
 
 /* smob utilities */
@@ -162,6 +173,7 @@ Item *unsmob_item (SCM);
 /* refpoints */
 Grob *common_refpoint_of_list (SCM elt_list, Grob *, Axis a);
 Grob *common_refpoint_of_array (vector<Grob *> const &, Grob *, Axis a);
+Grob *common_refpoint_of_array (set<Grob *> const &, Grob *, Axis a);
 System *get_root_system (Grob *me);
 
 /* extents */
index b618b94720ca780ebee5aea040e8bf2c662591e8..e7e237e9497c971f3b9fdcea1e32271712627fa0 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
   Jan Nieuwenhuizen <janneke@gnu.org>
 
   LilyPond is free software: you can redistribute it and/or modify
index afb349980f266ccc8e21a31187147024f9990281..1ad21499b86120345ebf6fbbf18d5dca86b8c0e5 100644 (file)
@@ -36,7 +36,7 @@ protected:
   void process_music ();
   virtual Spanner *create_ligature_spanner () = 0;
   virtual void typeset_ligature (Spanner *ligature,
-                                 vector<Grob_info> primitives) = 0;
+                                 vector<Grob_info> const &primitives) = 0;
   virtual Spanner *current_ligature ();
   SCM brew_ligature_primitive_proc;
 
index caa3b4b44b5987f5c094b74a8ad96606a8c4b7d7..8da28072660aebb6b30aebc0063ba5e46f63f864 100644 (file)
@@ -54,9 +54,10 @@ private:
 public:
   SCM eval_scm_token (SCM sval) { return eval_scm (sval, '#'); }
   SCM extra_tokens_;
-  YYSTYPE *lexval_;
+  SCM *lexval_;
   Input *lexloc_;
   bool is_main_input_;
+  vsize main_input_level_;
 
   Sources *sources_;
 
@@ -91,7 +92,7 @@ public:
   SCM keyword_list () const;
   SCM lookup_identifier (string s);
   SCM lookup_identifier_symbol (SCM s);
-  void push_extra_token (int token_type, SCM scm = SCM_UNDEFINED);
+  void push_extra_token (int token_type, SCM scm = SCM_UNSPECIFIED);
   void push_chord_state (SCM alist);
   void push_figuredbass_state ();
   void push_lyric_state ();
index 2e065ff31d70dd3b38e204ade3088484699ad6b2..810076c8a241a7e3d9e0b42ae3acf7a82dbddb7e 100644 (file)
@@ -60,7 +60,7 @@ public:
 
   void clear ();
   void do_init_file ();
-  void do_yyparse ();
+  SCM do_yyparse ();
   void include_string (string ly_code);
   void parse_file (string init, string name, string out_name);
   void parse_string (string ly_code);
@@ -68,7 +68,7 @@ public:
   void parser_error (string);
   void parser_error (Input const &, string);
   // The following is called as yyerror
-  static void parser_error (Input const *i, Lily_parser *parser, string s);
+  static void parser_error (Input const *i, Lily_parser *parser, SCM *, string s);
   void set_yydebug (bool);
 
   SCM make_scope () const;
index b70d2c2ce2e2d15dad2b95973af7cf47fca62007..511fc0545f8fd51ca377551b8fe47bb7aa0801e1 100644 (file)
@@ -61,6 +61,7 @@ normalize (Real x, Real x1, Real x2)
 
 Real directed_round (Real f, Direction d);
 
+Offset get_point_in_y_direction (Offset orig, Real slope, Real dist, Direction dir);
 Real peak_around (Real epsilon, Real threshold, Real x);
 Real convex_amplifier (Real standard_x, Real increase_factor, Real x);
 string camel_case_to_lisp_identifier (string in);
index cd5cd6116fc0979748af39a66618861c7451a07b..6bf2d8d6d0e9f9e3c4c61236c128f4918726fec4 100644 (file)
@@ -27,6 +27,7 @@ struct Modified_font_metric : public Font_metric
 {
 public:
   Stencil text_stencil (Output_def *output_state, string, bool) const;
+  Real get_magnification () const;
 
   static SCM make_scaled_font_metric (Font_metric *fm, Real magnification);
   size_t count () const;
index ae0f3271b0ce9bfe0fabe1705bfeb021b946084f..db192bf19a7fc9c97c3fe13e8742fd3de8baa690 100644 (file)
@@ -40,6 +40,7 @@ public:
   static SCM automatic_shift (Grob *, Drul_array<vector<Grob *> >);
   static SCM forced_shift (Grob *);
 
+  static vector<int> note_head_positions (Grob *me);
   static Drul_array<vector<Grob *> > get_clash_groups (Grob *me);
   DECLARE_SCHEME_CALLBACK (calc_positioning_done, (SCM smob));
   static void add_column (Grob *me, Grob *ncol);
index 280a5c969f474c1c3996fe42365025a224678e19..874b54207539a8238cfcd7d777a74c0c14e3e516 100644 (file)
@@ -43,6 +43,7 @@ public:
   static bool has_rests (Grob *me);
   static Grob *dot_column (Grob *me);
   static Interval cross_staff_extent (Grob *me, Grob *refp);
+  static Interval accidental_width (Grob *me);
   DECLARE_GROB_INTERFACE ();
 
   static Item *get_stem (Grob *);
index 6ee62823ec4928001b7391d26bf062d5f606d270..e3789d0685944c4cace45635f1d571e9e5315dbe 100644 (file)
@@ -41,11 +41,13 @@ class Open_type_font : public Font_metric
 
   DECLARE_CLASSNAME (Open_type_font);
 public:
+  Real get_units_per_EM () const;
   SCM get_subfonts () const;
   SCM get_global_table () const;
   SCM get_char_table () const;
   SCM glyph_list () const;
-
+  SCM get_glyph_outline (size_t signed_idx) const;
+  Box get_glyph_outline_bbox (size_t signed_idx) const;
   string get_otf_table (string tag) const;
   static SCM make_otf (string);
   string font_name () const;
@@ -53,6 +55,7 @@ public:
   Offset attachment_point (string) const;
   size_t count () const;
   Box get_indexed_char_dimensions (size_t) const;
+  Box get_unscaled_indexed_char_dimensions (size_t) const;
   size_t name_to_index (string) const;
   //size_t glyph_name_to_charcode (string) const;
   size_t index_to_charcode (size_t) const;
index 6b4ad4b68f9646196d774216b0d27330d2892e0f..f57b5d5b762eb83a945c4599ec5a4338d5d7c5f5 100644 (file)
@@ -50,6 +50,12 @@ public:
   SCM font_file_name () const;
   void register_font_file (string, string, int);
 
+  size_t name_to_index (string) const;
+  SCM get_glyph_outline (size_t signed_idx) const;
+  Box get_glyph_outline_bbox (size_t signed_idx) const;
+  Box get_unscaled_indexed_char_dimensions (size_t) const;
+  Box get_scaled_indexed_char_dimensions (size_t) const;
+
   Stencil pango_item_string_stencil (PangoGlyphItem const *) const;
 
   virtual Stencil text_stencil (Output_def *output_state,
index 015ea1948b7952d3a95fd672a1d073ffbff5091a..5cf10fee35bbf25ac961bb3d19f8992e31560a66 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
index f639a1c051bd375a7eccc7867d787207f0570437..c2a5f851fc7c24b32f097ef34b5ac3dfe35d23f8 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2012 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
index 22dd6393324b1a3de3557cd4a3fec55b9bc5c337..566b9be3f74c74d94e8619500b77bb8815e07468 100644 (file)
@@ -30,11 +30,17 @@ private:
   DECLARE_SIMPLE_SMOBS (Skyline_pair);
 public:
   Skyline_pair ();
-  Skyline_pair (vector<Box> const &boxes, Real horizon_padding, Axis a);
-  Skyline_pair (Box const &, Real horizon_padding, Axis a);
+  Skyline_pair (vector<Box> const &boxes, Axis a);
+  Skyline_pair (vector<Drul_array<Offset> > const &buildings, Axis a);
+  Skyline_pair (vector<Skyline_pair> const &skypairs);
+  Skyline_pair (Box const &, Axis a);
+
+  Real left () const;
+  Real right () const;
   void raise (Real);
   void shift (Real);
-  void insert (Box const &, Real horizon_padding, Axis);
+  void deholify ();
+  void insert (Box const &, Axis);
   void merge (Skyline_pair const &other);
   Skyline &operator [] (Direction d);
   Skyline const &operator [] (Direction d) const;
index 0715c545a635a7f6af70ea85e8520c0804506338..c300895fee11bed4e109a896bb3989529b2b59c1 100644 (file)
 
 struct Building
 {
+  Real start_;
   Real end_;
   Real y_intercept_;
   Real slope_;
 
   void precompute (Real start, Real start_height, Real end_height, Real end);
   Building (Real start, Real start_height, Real end_height, Real end);
-  Building (Box const &b, Real horizon_padding, Axis a, Direction d);
+  Building (Box const &b, Axis a, Direction d);
   void print () const;
 
   Real height (Real x) const;
   Real intersection_x (Building const &other) const;
   void leading_part (Real chop);
   bool conceals (Building const &other, Real x) const;
-  Building sloped_neighbour (Real start, Real horizon_padding, Direction d) const;
+  Real shift_to_intersect (Real x, Real y) const;
 };
 
 class Skyline
@@ -54,44 +55,53 @@ private:
   list<Building> buildings_;
   Direction sky_;
 
-  void internal_merge_skyline (list<Building>*, list<Building>*,
-                               list<Building> *const result);
-  list<Building> internal_build_skyline (list<Box>*, Real, Axis, Direction);
+  void internal_merge_skyline (list<Building> *, list<Building> *,
+                               list<Building> *result) const;
+  list<Building> internal_build_skyline (list<Building> *) const;
+  Real internal_distance (Skyline const &, Real horizon_padding, Real *touch_point) const;
+  Real internal_distance (Skyline const &, Real *touch_point) const;
+  void normalize ();
 
   DECLARE_SIMPLE_SMOBS (Skyline);
 
 public:
   Skyline ();
   Skyline (Skyline const &src);
-  Skyline (Skyline const &src, Real horizon_padding, Axis a);
   Skyline (Direction sky);
-  Skyline (vector<Box> const &bldgs, Real horizon_padding, Axis a, Direction sky);
-  Skyline (Box const &b, Real horizon_padding, Axis a, Direction sky);
+  Skyline (vector<Box> const &bldgs, Axis a, Direction sky);
+  Skyline (vector<Drul_array<Offset> > const &bldgs, Axis a, Direction sky);
+  Skyline (vector<Skyline_pair> const &skypairs, Direction sky);
+  Skyline (Box const &b, Axis a, Direction sky);
 
   vector<Offset> to_points (Axis) const;
+  void deholify ();
   void merge (Skyline const &);
-  void insert (Box const &, Real horizon_padding, Axis);
+  void insert (Box const &, Axis);
   void print () const;
   void print_points () const;
   void raise (Real);
   void shift (Real);
   Real distance (Skyline const &, Real horizon_padding = 0) const;
   Real touching_point (Skyline const &, Real horizon_padding = 0) const;
+  Real shift_to_avoid (Skyline const &other, Real, Direction d, Real horizon_padding = 0);
+  Real raise_to_avoid (Skyline const &other, Real, Direction d, Real horizon_padding = 0);
+  Drul_array<Real> shifts_to_avoid_intersection (Skyline const &, Real horizon_padding = 0) const;
+  Interval raises_to_avoid_intersection (Skyline const &, Real horizon_padding = 0) const;
   Real height (Real airplane) const;
   Real max_height () const;
   Real max_height_position () const;
+  Real left () const;
+  Real right () const;
   void set_minimum_height (Real height);
   void clear ();
   bool is_empty () const;
+  Skyline padded (Real horizon_padding) const;
 
   DECLARE_SCHEME_CALLBACK (get_touching_point, (SCM, SCM, SCM));
   DECLARE_SCHEME_CALLBACK (get_distance, (SCM, SCM, SCM));
   DECLARE_SCHEME_CALLBACK (get_max_height, (SCM));
   DECLARE_SCHEME_CALLBACK (get_max_height_position, (SCM));
   DECLARE_SCHEME_CALLBACK (get_height, (SCM, SCM));
-
-protected:
-  Real internal_distance (Skyline const &, Real horizon_padding, Real *touch_point) const;
 };
 
 extern bool debug_skylines;
index d1f743ca8e2b51f34a8a50f3f358014a387ade0d..b20311785d2d1870c23075cc28e4645f4ea70c4d 100644 (file)
@@ -30,7 +30,7 @@ public:
   static void add_column (Grob *me, Grob *col);
   static void add_extra_encompass (Grob *me, Grob *col);
   static void replace_breakable_encompass_objects (Grob *me);
-  static void auxiliary_acknowledge_extra_object (Grob_info const &, vector<Grob *>&, vector<Grob *>&);
+  static void auxiliary_acknowledge_extra_object (Grob_info const &, vector<Grob *> &, vector<Grob *> &);
   DECLARE_SCHEME_CALLBACK (print, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_control_points, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_direction, (SCM));
index 03a6f8c90886fc8dea0a7252c7713182206ec4dc..7137046d302e08e41c22e9eaa5dcd444afcbe2ab 100644 (file)
@@ -35,6 +35,7 @@ public:
   DECLARE_SCHEME_CALLBACK (print, (SCM));
   DECLARE_SCHEME_CALLBACK (width, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_style, (SCM));
+  DECLARE_SCHEME_CALLBACK (calc_direction, (SCM));
   DECLARE_SCHEME_CALLBACK (pure_height, (SCM, SCM, SCM));
   static Stencil raw_stencil (Grob *, Real slope, Direction stemdir);
   static Real y_offset (Grob *, bool pure);
index de1b7d6c9a7b3ee8047737cddb8cdb2e06ff580b..101c00341af9eb48929dcc1dd258832de9d383c2 100644 (file)
@@ -67,6 +67,8 @@ public:
   DECLARE_SCHEME_CALLBACK (offset_callback, (SCM element));
   DECLARE_SCHEME_CALLBACK (calc_direction, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_beaming, (SCM));
+  DECLARE_SCHEME_CALLBACK (calc_length, (SCM));
+  DECLARE_SCHEME_CALLBACK (pure_calc_length, (SCM, SCM, SCM));
   DECLARE_SCHEME_CALLBACK (calc_stem_begin_position, (SCM));
   DECLARE_SCHEME_CALLBACK (pure_calc_stem_begin_position, (SCM, SCM, SCM));
   DECLARE_SCHEME_CALLBACK (calc_stem_end_position, (SCM));
index 00c295316c16615e7f0eed3a0c2a6ffcbc945c14..65c0b7a0f1e295e0523b3f035c4b7ad8fa8bdd30 100644 (file)
@@ -85,6 +85,7 @@ public:
   Box extent_box () const;
   bool is_empty () const;
   Stencil in_color (Real r, Real g, Real b) const;
+  static SCM skylines_from_stencil (SCM, Real, Axis);
 };
 
 DECLARE_UNSMOB (Stencil, stencil);
index 453e48234deb3248544f5ed139ede07605f347e3..a5efe750adf0f976b8189b1bb53e14ef51cf76ad 100644 (file)
@@ -39,7 +39,6 @@ class System : public Spanner
 
 public:
   Paper_score *paper_score () const;
-  Grob *get_vertical_alignment ();
   Grob *get_extremal_staff (Direction dir, Interval const &);
   Grob *get_neighboring_staff (Direction dir, Grob *vertical_axis_group, Interval_t<int> bounds);
   Grob *get_pure_bound (Direction dir, int start, int end);
@@ -59,12 +58,14 @@ public:
 
   DECLARE_SCHEME_CALLBACK (footnotes_before_line_breaking, (SCM));
   DECLARE_SCHEME_CALLBACK (footnotes_after_line_breaking, (SCM));
+  DECLARE_SCHEME_CALLBACK (vertical_skyline_elements, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_pure_relevant_grobs, (SCM));
   DECLARE_SCHEME_CALLBACK (height, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_pure_height, (SCM, SCM, SCM));
   DECLARE_SCHEME_CALLBACK (get_staves, (SCM));
   DECLARE_SCHEME_CALLBACK (get_spaceable_staves, (SCM));
   DECLARE_SCHEME_CALLBACK (get_nonspaceable_staves, (SCM));
+  DECLARE_SCHEME_CALLBACK (get_vertical_alignment, (SCM));
 
   System (SCM);
   System (System const &);
index ffe784fae81ca4eb8fca4b81f88e62b8e8b15eea..b0f67afa747296db7645cc02d6e700e3d28c5f64 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
   Jan Nieuwenhuizen <janneke@gnu.org>
 
   LilyPond is free software: you can redistribute it and/or modify
index a7b65530fc28ffad5f4afabc2c1a51b95fb0afc1..fb691c00d806b60948cb187f44ad166ce4e7c80a 100644 (file)
@@ -58,7 +58,7 @@ Key_signature_interface::print (SCM smob)
     the cancellation signature.
   */
 
-  int last_pos = -1000;
+  Slice pos, overlapping_pos;
   SCM last_glyph_name = SCM_BOOL_F;
   SCM padding_pairs = me->get_property ("padding-pairs");
 
@@ -87,13 +87,17 @@ Key_signature_interface::print (SCM smob)
         me->warning (_ ("alteration not found"));
       else
         {
-          SCM what = scm_caar (s);
-
-          SCM proc = ly_lily_module_constant ("key-signature-interface::alteration-position");
-
-          int pos = scm_to_int (scm_call_3 (proc, what, scm_cdar (s), c0s));
-          acc.translate_axis (pos * inter, Y_AXIS);
-
+          SCM proc = ly_lily_module_constant ("key-signature-interface::alteration-positions");
+
+          pos.set_empty ();
+          Stencil column;
+          for (SCM pos_list = scm_call_3 (proc, scm_car (s), c0s, smob);
+               scm_is_pair (pos_list); pos_list = scm_cdr (pos_list))
+            {
+              int p = scm_to_int (scm_car (pos_list));
+              pos.add_point (p);
+              column.add_stencil (acc.translated (Offset (0, p * inter)));
+            }
           /*
             The natural sign (unlike flat & sharp)
             has vertical edges on both sides. A little padding is
@@ -106,13 +110,13 @@ Key_signature_interface::print (SCM smob)
           if (scm_is_pair (handle))
             padding = robust_scm2double (scm_cdr (handle), 0.0);
           else if (glyph_name == "accidentals.natural"
-                   && last_pos < pos + 2
-                   && last_pos > pos - 6)
+                   && !intersection (overlapping_pos, pos).is_empty ())
             padding += 0.3;
 
-          mol.add_at_edge (X_AXIS, LEFT, acc, padding);
+          mol.add_at_edge (X_AXIS, LEFT, column, padding);
 
-          last_pos = pos;
+          pos.widen (4);
+          overlapping_pos = pos + 2;
           last_glyph_name = glyph_name_scm;
         }
     }
@@ -129,6 +133,8 @@ ADD_INTERFACE (Key_signature_interface,
                "alteration-alist "
                "c0-position "
                "glyph-name-alist "
+               "flat-positions "
+               "sharp-positions "
                "padding "
                "padding-pairs "
               );
index 614874a8e83fa74c7220cbb097458160e7552220..2bb12c9cdcbb7c0c7e6d0ca3c696d0e47ac5b745 100644 (file)
@@ -95,7 +95,6 @@ Ledger_line_engraver::stop_spanner ()
   if (span_)
     {
       span_->set_bound (RIGHT, unsmob_grob (get_property ("currentCommandColumn")));
-      Pointer_group_interface::set_ordered (span_, ly_symbol2scm ("elements"), false);
       span_ = 0;
     }
 }
index 114ddb3f02c0e5f98f314848cdae8d0be87495e2..d36f908b2c81d78aae69d3b1b8136500350b961d 100644 (file)
@@ -40,20 +40,15 @@ set_rods (Drul_array<Interval> const &current_extents,
           Drul_array<Interval> const &previous_extents,
           Item *current_column,
           Item *previous_column,
-          Real min_length_fraction)
+          Real min_length)
 {
-  Direction d = UP;
-  do
+  for (UP_and_DOWN (d))
     {
       if (!current_extents[d].is_empty ()
           && !previous_extents[d].is_empty ())
         {
-          Real total_head_length = previous_extents[d].length ()
-                                   + current_extents[d].length ();
-
           Rod rod;
-          rod.distance_ = total_head_length
-                          * (3 / 2 * min_length_fraction)
+          rod.distance_ = 2 * min_length
                           /*
                             we go from right to left.
                           */
@@ -65,7 +60,6 @@ set_rods (Drul_array<Interval> const &current_extents,
           rod.add_to_cols ();
         }
     }
-  while (flip (&d) != DOWN);
 }
 
 MAKE_SCHEME_CALLBACK (Ledger_line_spanner, set_spacing_rods, 1);
@@ -87,6 +81,7 @@ Ledger_line_spanner::set_spacing_rods (SCM smob)
 
   Drul_array<Interval> current_extents;
   Drul_array<Interval> previous_extents;
+  Real current_head_width = 0.0;
   Item *previous_column = 0;
   Item *current_column = 0;
 
@@ -108,12 +103,17 @@ Ledger_line_spanner::set_spacing_rods (SCM smob)
       if (staff_extent.contains (pos))
         continue;
 
+      /* Ambitus heads can appear out-of-order in heads[],
+       * but as part of prefatory matter, they need no rods */
+      if (h->internal_has_interface (ly_symbol2scm ("ambitus-interface")))
+        continue;
+
       Item *column = h->get_column ();
       if (current_column != column)
         {
           set_rods (current_extents, previous_extents,
                     current_column, previous_column,
-                    min_length_fraction);
+                    current_head_width * min_length_fraction);
 
           previous_column = current_column;
           current_column = column;
@@ -121,6 +121,7 @@ Ledger_line_spanner::set_spacing_rods (SCM smob)
 
           current_extents[DOWN].set_empty ();
           current_extents[UP].set_empty ();
+          current_head_width = 0.0;
         }
 
       Interval head_extent = h->extent (column, X_AXIS);
@@ -129,12 +130,13 @@ Ledger_line_spanner::set_spacing_rods (SCM smob)
         continue;
 
       current_extents[vdir].unite (head_extent);
+      current_head_width = max (current_head_width, head_extent.length ());
     }
 
   if (previous_column && current_column)
     set_rods (current_extents, previous_extents,
               current_column, previous_column,
-              min_length_fraction);
+              current_head_width * min_length_fraction);
 
   return SCM_UNSPECIFIED;
 }
index 9fb4cb6d558429e8d76811d6cb2922ab1da9f6d0..e74dced0885534a2bee9ad22115dec42d60b4ef5 100644 (file)
@@ -1,4 +1,4 @@
-%{ // -*- mode: c++; c-file-style: "linux" -*-
+%{ // -*- mode: c++; c-file-style: "linux"; indent-tabs-mode: t -*-
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
@@ -86,13 +86,10 @@ SCM lookup_markup_list_command (string s);
 bool is_valid_version (string s);
 
 
-#define start_quote()  \
-       yy_push_state (quote);\
-       yylval.string = new string
-
-#define start_lyric_quote()    \
-       yy_push_state (lyric_quote);\
-       yylval.string = new string
+#define start_quote() do {                      \
+                yy_push_state (quote);          \
+                yylval = SCM_EOL;               \
+        } while (0)
 
 #define yylval (*lexval_)
 
@@ -122,7 +119,6 @@ SCM (* scm_parse_error_handler) (void *);
 %x figures
 %x incl
 %x lyrics
-%x lyric_quote
 %x longcomment
 %x markup
 %x notes
@@ -151,10 +147,6 @@ A          [a-zA-Z\200-\377]
 AA             {A}|_
 N              [0-9]
 ANY_CHAR       (.|\n)
-PUNCT          [][()?!:'`]
-SPECIAL_CHAR           [&@]
-NATIONAL       [\001-\006\021-\027\031\036]
-TEX            {AA}|-|{PUNCT}|{NATIONAL}|{SPECIAL_CHAR}
 WORD           {A}([-_]{A}|{A})*
 COMMAND                \\{WORD}
 
@@ -167,8 +159,7 @@ WHITE               [ \n\t\f\r]
 HORIZONTALWHITE                [ \t]
 BLACK          [^ \n\t\f\r]
 RESTNAME       [rs]
-LYRICS         ({AA}|{TEX})[^0-9 \t\n\r\f]*
-ESCAPED                [nt\\'"]
+ESCAPED                [nt\\''""]
 EXTENDER       __
 HYPHEN         --
 BOM_UTF8       \357\273\277
@@ -189,7 +180,7 @@ BOM_UTF8    \357\273\277
 
   /* produce requested token */
   int type = scm_to_int (scm_caar (extra_tokens_));
-  yylval.scm = scm_cdar (extra_tokens_);
+  yylval = scm_cdar (extra_tokens_);
   extra_tokens_ = scm_cdr (extra_tokens_);
   if (scm_is_null (extra_tokens_))
     yy_pop_state ();
@@ -202,7 +193,7 @@ BOM_UTF8    \357\273\277
 
   /* produce requested token */
   int type = scm_to_int (scm_caar (extra_tokens_));
-  yylval.scm = scm_cdar (extra_tokens_);
+  yylval = scm_cdar (extra_tokens_);
   extra_tokens_ = scm_cdr (extra_tokens_);
   if (scm_is_null (extra_tokens_))
     yy_pop_state ();
@@ -256,7 +247,7 @@ BOM_UTF8    \357\273\277
 <INITIAL,chords,lyrics,notes,figures>\\sourcefileline{WHITE}*  {
        yy_push_state (sourcefileline);
 }
-<version>\"[^"]*\"     { /* got the version number */
+<version>\"[^""]*\"     { /* got the version number */
        string s (YYText_utf8 () + 1);
        s = s.substr (0, s.rfind ('\"'));
 
@@ -265,10 +256,10 @@ BOM_UTF8  \357\273\277
        SCM top_scope = scm_car (scm_last_pair (scopes_));
        scm_module_define (top_scope, ly_symbol2scm ("version-seen"), SCM_BOOL_T);
 
-       if (!is_valid_version (s))
+       if (!is_valid_version (s)) {
+                yylval = SCM_UNSPECIFIED;
                return INVALID;
-
-
+        }
 }
 <sourcefilename>\"[^""]*\"     {
        string s (YYText_utf8 () + 1);
@@ -321,6 +312,7 @@ BOM_UTF8    \357\273\277
        if (!is_main_input_)
        {
                start_main_input ();
+               main_input_level_ = include_stack_.size ();
                is_main_input_ = true;
        }
        else
@@ -397,16 +389,18 @@ BOM_UTF8  \357\273\277
 <chords,notes,figures>{RESTNAME}/[-_]  |  // pseudo backup rule
 <chords,notes,figures>{RESTNAME}       {
        char const *s = YYText ();
-       yylval.scm = scm_from_locale_string (s);
+       yylval = scm_from_locale_string (s);
        return RESTNAME;
 }
 <chords,notes,figures>q/[-_]   | // pseudo backup rule
 <chords,notes,figures>q        {
+        yylval = SCM_UNSPECIFIED;
        return CHORD_REPETITION;
 }
 
 <chords,notes,figures>R/[-_]   | // pseudo backup rule
 <chords,notes,figures>R                {
+        yylval = SCM_UNSPECIFIED;
        return MULTI_MEASURE_REST;
 }
 <INITIAL,chords,figures,lyrics,markup,notes>#  { //embedded scm
@@ -425,7 +419,7 @@ BOM_UTF8    \357\273\277
        }
        char_count_stack_.back () += n;
 
-       yylval.scm = sval;
+       yylval = sval;
        return SCM_TOKEN;
 }
 
@@ -445,36 +439,43 @@ BOM_UTF8  \357\273\277
        sval = eval_scm (sval, '$');
 
        int token = scan_scm_id (sval);
-       if (!scm_is_eq (yylval.scm, SCM_UNSPECIFIED))
+       if (!scm_is_eq (yylval, SCM_UNSPECIFIED))
                return token;
 }
 
 <INITIAL,notes,lyrics>{ 
        \<\<    {
+                yylval = SCM_UNSPECIFIED;
                return DOUBLE_ANGLE_OPEN;
        }
        \>\>    {
+                yylval = SCM_UNSPECIFIED;
                return DOUBLE_ANGLE_CLOSE;
        }
 }
 
 <INITIAL,notes>{
        \<      {
+                yylval = SCM_UNSPECIFIED;
                return ANGLE_OPEN;
        }
        \>      {
+                yylval = SCM_UNSPECIFIED;
                return ANGLE_CLOSE;
        }
 }
 
 <figures>{
        _       {
+                yylval = SCM_UNSPECIFIED;
                return FIGURE_SPACE;
        }
        \>              {
+                yylval = SCM_UNSPECIFIED;
                return FIGURE_CLOSE;
        }
        \<      {
+                yylval = SCM_UNSPECIFIED;
                return FIGURE_OPEN;
        }
 }
@@ -490,79 +491,87 @@ BOM_UTF8  \357\273\277
                return scan_escaped_word (YYText_utf8 () + 1); 
        }
        {FRACTION}      {
-               yylval.scm =  scan_fraction (YYText ());
+               yylval =  scan_fraction (YYText ());
                return FRACTION;
        }
        {UNSIGNED}/\/   | // backup rule
        {UNSIGNED}              {
-               yylval.scm = scm_c_read_string (YYText ());
+               yylval = scm_c_read_string (YYText ());
                return UNSIGNED;
        }
        {E_UNSIGNED}    {
-               yylval.i = String_convert::dec2int (string (YYText () +1));
+               yylval = scm_c_read_string (YYText () + 1);
                return E_UNSIGNED;
        }
 }
 
-<quote,lyric_quote>{
+<quote>{
        \\{ESCAPED}     {
-               *yylval.string += to_string (escaped_char (YYText ()[1]));
+                char c = escaped_char (YYText ()[1]);
+               yylval = scm_cons (scm_from_locale_stringn (&c, 1),
+                                   yylval);
        }
        [^\\""]+        {
-               *yylval.string += YYText_utf8 ();
+                yylval = scm_cons (scm_from_locale_string (YYText_utf8 ()),
+                                   yylval);
        }
        \"      {
 
                yy_pop_state ();
 
                /* yylval is union. Must remember STRING before setting SCM*/
-               string *sp = yylval.string;
-               yylval.scm = ly_string2scm (*sp);
-               delete sp;
+
+                yylval = scm_string_concatenate_reverse (yylval,
+                                                         SCM_UNDEFINED,
+                                                         SCM_UNDEFINED);
+
                return is_lyric_state () ? LYRICS_STRING : STRING;
        }
        \\      {
-               *yylval.string += YYText ();
+                yylval = scm_cons (scm_from_locale_string (YYText ()),
+                                   yylval);
        }
 }
 
 <lyrics>{
        \" {
-               start_lyric_quote ();
+               start_quote ();
        }
        {FRACTION}      {
-               yylval.scm =  scan_fraction (YYText ());
+               yylval =  scan_fraction (YYText ());
                return FRACTION;
        }
        {UNSIGNED}/\/   | // backup rule
        {UNSIGNED}              {
-               yylval.scm = scm_c_read_string (YYText ());
+               yylval = scm_c_read_string (YYText ());
                return UNSIGNED;
        }
        {COMMAND}/[-_]  | // backup rule
        {COMMAND}       {
                return scan_escaped_word (YYText_utf8 () + 1);
        }
-       {LYRICS} {
+       /* Characters needed to express durations, assignments, barchecks */
+       [*.=|]  {
+                yylval = SCM_UNSPECIFIED;
+               return YYText ()[0];
+       }
+       [^$#{}\"\\ \t\n\r\f0-9]+ {
                /* ugr. This sux. */
-               string s (YYText_utf8 ()); 
+               string s (YYText_utf8 ());
+                yylval = SCM_UNSPECIFIED;
                if (s == "__")
-                       return yylval.i = EXTENDER;
+                       return EXTENDER;
                if (s == "--")
-                       return yylval.i = HYPHEN;
+                       return HYPHEN;
                s = lyric_fudge (s);
-
-               char c = s[s.length () - 1];
-               if (c == '{' ||  c == '}') // brace open is for not confusing dumb tools.
-                       here_input ().warning (
-                               _ ("Brace found at end of lyric.  Did you forget a space?"));
-               yylval.scm = ly_string2scm (s);
-
+               yylval = ly_string2scm (s);
 
                return LYRICS_STRING;
        }
+       /* This should really just cover {} */
        . {
-               return YYText ()[0]; // LYRICS already catches all multibytes.
+                yylval = SCM_UNSPECIFIED;
+               return YYText ()[0]; // above catches all multibytes.
        }
 }
 <chords>{
@@ -575,30 +584,36 @@ BOM_UTF8  \357\273\277
                return scan_escaped_word (YYText_utf8 () + 1);
        }
        {FRACTION}      {
-               yylval.scm =  scan_fraction (YYText ());
+               yylval =  scan_fraction (YYText ());
                return FRACTION;
        }
        {UNSIGNED}/\/   | // backup rule
        {UNSIGNED}              {
-               yylval.scm = scm_c_read_string (YYText ());
+               yylval = scm_c_read_string (YYText ());
                return UNSIGNED;
        }
        -  {
+                yylval = SCM_UNSPECIFIED;
                return CHORD_MINUS;
        }
        :  {
+                yylval = SCM_UNSPECIFIED;
                return CHORD_COLON;
        }
        \/\+ {
+                yylval = SCM_UNSPECIFIED;
                return CHORD_BASS;
        }
        \/  {
+                yylval = SCM_UNSPECIFIED;
                return CHORD_SLASH;
        }
        \^  {
+                yylval = SCM_UNSPECIFIED;
                return CHORD_CARET;
        }
        . {
+                yylval = SCM_UNSPECIFIED;
                return YYText ()[0]; // WORD catches all multibyte.
        }
 }
@@ -606,6 +621,7 @@ BOM_UTF8    \357\273\277
 
 <markup>{
        \\score {
+                yylval = SCM_UNSPECIFIED;
                return SCORE;
        }
        {COMMAND}/[-_]  | // backup rule
@@ -639,7 +655,7 @@ BOM_UTF8    \357\273\277
                // in reverse order, so the first token pushed in the
                // loop will be EXPECT_NO_MORE_ARGS.
 
-               yylval.scm = scm_car(s);
+               yylval = scm_car(s);
 
                // yylval now contains the function to call as token
                // value (for token type MARKUP_FUNCTION or
@@ -659,41 +675,33 @@ BOM_UTF8  \357\273\277
                }
                return token_type;
        }
-       [{}]    {
-               return YYText ()[0];
-       }
        [^$#{}\"\\ \t\n\r\f]+ {
                string s (YYText_utf8 ()); 
 
-               char c = s[s.length () - 1];
-               /* brace open is for not confusing dumb tools.  */
-               if (c == '{' ||  c == '}')
-                       here_input ().warning (
-                               _ ("Brace found at end of markup.  Did you forget a space?"));
-               yylval.scm = ly_string2scm (s);
-
-
+               yylval = ly_string2scm (s);
                return STRING;
        }
        .  {
-               return YYText()[0];  // Above is catchall for multibyte
+                yylval = SCM_UNSPECIFIED;
+               return YYText ()[0];  // Above is catchall for multibyte
        }
 }
 
 <longcomment><<EOF>> {
                LexerError (_ ("EOF found inside a comment").c_str ());
                is_main_input_ = false; // should be safe , can't have \include in --safe.
+                yylval = SCM_UNSPECIFIED;
                if (!close_input ())
                  yyterminate (); // can't move this, since it actually rets a YY_NULL
        }
 
-<<EOF>> { if (is_main_input_)
+<<EOF>> {
+        yylval = SCM_UNSPECIFIED;
+        if (is_main_input_)
        {
-               /* 2 = init.ly + current file.
-                  > because we're before closing, but is_main_input_ should
-                  reflect after.
-               */ 
-               is_main_input_ = include_stack_.size () > 2;
+               is_main_input_ = include_stack_.size () > main_input_level_;
+               if (!is_main_input_)
+                       main_input_level_ = 0;
                if (!close_input () || !is_main_input_)
                /* Returns YY_NULL */
                        yyterminate ();
@@ -715,40 +723,41 @@ BOM_UTF8  \357\273\277
 }
 
 {FRACTION}     {
-       yylval.scm =  scan_fraction (YYText ());
+       yylval =  scan_fraction (YYText ());
        return FRACTION;
 }
 
 -{UNSIGNED}    | // backup rule
 {REAL}         {
-       yylval.scm = scm_c_read_string (YYText ());
+       yylval = scm_c_read_string (YYText ());
        return REAL;
 }
 
 {UNSIGNED}/\/  | // backup rule
 {UNSIGNED}     {
-       yylval.scm = scm_c_read_string (YYText ());
+       yylval = scm_c_read_string (YYText ());
        return UNSIGNED;
 }
 
 
 [{}]   {
-
+        yylval = SCM_UNSPECIFIED;
        return YYText ()[0];
 }
 
 -/\.   | // backup rule
 [*:=]          {
-       char c = YYText ()[0];
-
-       return c;
+        yylval = SCM_UNSPECIFIED;
+       return YYText ()[0];
 }
 
 <INITIAL,notes,figures>.       {
+        yylval = SCM_UNSPECIFIED;
        return YYText ()[0];
 }
 
 <INITIAL,lyrics,notes,figures>\\. {
+    yylval = SCM_UNSPECIFIED;
     char c = YYText ()[1];
 
     switch (c) {
@@ -781,6 +790,7 @@ BOM_UTF8    \357\273\277
 <*>.[\200-\277]*       {
        string msg = _f ("invalid character: `%s'", YYText_utf8 ());
        LexerError (msg.c_str ());
+        yylval = SCM_UNSPECIFIED;
        return '%';  // Better not return half a utf8 character.
 }
 
@@ -878,7 +888,7 @@ Lily_lexer::pop_state ()
 int
 Lily_lexer::identifier_type (SCM sid)
 {
-       int k = try_special_identifiers (&yylval.scm , sid);
+       int k = try_special_identifiers (&yylval , sid);
        return k >= 0  ? k : SCM_IDENTIFIER;
 }
 
@@ -890,6 +900,7 @@ Lily_lexer::scan_escaped_word (string str)
 
 //     SCM sym = ly_symbol2scm (str.c_str ());
 
+        yylval = SCM_UNSPECIFIED;
        int i = lookup_keyword (str);
        if (i == MARKUP && is_lyric_state ())
                return LYRIC_MARKUP;
@@ -903,7 +914,7 @@ Lily_lexer::scan_escaped_word (string str)
        string msg (_f ("unknown escaped string: `\\%s'", str));        
        LexerError (msg.c_str ());
 
-       yylval.scm = ly_string2scm (str);
+       yylval = ly_string2scm (str);
 
        return STRING;
 }
@@ -915,7 +926,7 @@ Lily_lexer::scan_scm_id (SCM sid)
        {
                int funtype = SCM_FUNCTION;
 
-               yylval.scm = sid;
+               yylval = sid;
 
                SCM s = get_music_function_signature (sid);
                SCM cs = scm_car (s);
@@ -961,7 +972,7 @@ Lily_lexer::scan_scm_id (SCM sid)
                }
                return funtype;
        }
-       yylval.scm = sid;
+       yylval = sid;
        return identifier_type (sid);
 }
 
@@ -975,20 +986,20 @@ Lily_lexer::scan_bare_word (string str)
                        handle = scm_hashq_get_handle (scm_cdar (pitchname_tab_stack_), sym);
                
                if (scm_is_pair (handle)) {
-                       yylval.scm = scm_cdr (handle);
-                       if (unsmob_pitch (yylval.scm)) 
+                       yylval = scm_cdr (handle);
+                       if (unsmob_pitch (yylval))
                            return (YYSTATE == notes) ? NOTENAME_PITCH : TONICNAME_PITCH;
-                       else if (scm_is_symbol (yylval.scm))
+                       else if (scm_is_symbol (yylval))
                            return DRUM_PITCH;
                }
                else if ((YYSTATE == chords)
                        && (handle = scm_hashq_get_handle (chordmodifier_tab_, sym))!= SCM_BOOL_F)
                {
-                   yylval.scm = scm_cdr (handle);
+                   yylval = scm_cdr (handle);
                    return CHORD_MODIFIER;
                }
        }
-       yylval.scm = ly_string2scm (str);
+       yylval = ly_string2scm (str);
        return STRING;
 }
 
@@ -1064,8 +1075,8 @@ Lily_lexer::eval_scm (SCM readerdata, char extra_token)
                                switch (extra_token) {
                                case '$':
                                        token = scan_scm_id (scm_car (v));
-                                       if (!scm_is_eq (yylval.scm, SCM_UNSPECIFIED))
-                                               push_extra_token (token, yylval.scm);
+                                       if (!scm_is_eq (yylval, SCM_UNSPECIFIED))
+                                               push_extra_token (token, yylval);
                                        break;
                                case '#':
                                        push_extra_token (SCM_IDENTIFIER, scm_car (v));
index 39aeb78dd14c0fe9cd9bce93f50cb365f748e5c3..c529da7c43a1efaa97d41b1ec336185b44358ccc 100644 (file)
@@ -96,6 +96,7 @@ Lily_lexer::Lily_lexer (Sources *sources, Lily_parser *parser)
   scopes_ = SCM_EOL;
   error_level_ = 0;
   is_main_input_ = false;
+  main_input_level_ = 0;
   start_module_ = SCM_EOL;
   extra_tokens_ = SCM_EOL;
   smobify_self ();
@@ -118,6 +119,7 @@ Lily_lexer::Lily_lexer (Lily_lexer const &src, Lily_parser *parser)
 
   error_level_ = 0;
   is_main_input_ = src.is_main_input_;
+  main_input_level_ = 0;
 
   extra_tokens_ = SCM_EOL;
 
index 833fe6e1588fc7feea90375adfe1a16f18f06579..550f6fb84743f298cbfd1da60ab1e23bcaa67b06 100644 (file)
@@ -120,9 +120,11 @@ Lily_parser::parse_file (string init, string name, string out_name)
      OUT_FILE (unless IN_FILE redefines output file name).  */
 
   SCM mod = lexer_->set_current_scope ();
-  do {
-    do_yyparse ();
-  } while (!lexer_->is_clean ());
+  do
+    {
+      do_yyparse ();
+    }
+  while (!lexer_->is_clean ());
 
   /*
     Don't mix cyclic pointers with weak tables.
@@ -141,7 +143,6 @@ void
 Lily_parser::parse_string (string ly_code)
 {
   lexer_->main_input_name_ = "<string>";
-  lexer_->is_main_input_ = true;
   lexer_->new_input (lexer_->main_input_name_, ly_code, sources_);
 
   SCM mod = lexer_->set_current_scope ();
@@ -159,7 +160,6 @@ Lily_parser::parse_string_expression (string ly_code, string filename,
                                       int line)
 {
   lexer_->main_input_name_ = filename;
-  lexer_->is_main_input_ = true;
   lexer_->new_input (lexer_->main_input_name_, ly_code, sources_);
   if (line)
     {
@@ -169,9 +169,7 @@ Lily_parser::parse_string_expression (string ly_code, string filename,
   SCM parser = lexer_->lookup_identifier_symbol (ly_symbol2scm ("parser"));
   lexer_->set_identifier (ly_symbol2scm ("parser"), self_scm ());
   lexer_->push_extra_token (EMBEDDED_LILY);
-  do_yyparse ();
-  SCM result = lexer_->lookup_identifier_symbol (ly_symbol2scm ("parseStringResult"));
-  // parseStringResult is set in the grammar rule for embedded_lilypond
+  SCM result = do_yyparse ();
 
   lexer_->set_identifier (ly_symbol2scm ("parser"), parser);
   scm_set_current_module (mod);
index 2d43a71fa4f0006943990e89e390fcdf4c71b28b..f80d58132d5fc1a71067c6c44fcbce3d8b06b2d4 100644 (file)
@@ -355,9 +355,9 @@ Line_spanner::print (SCM smob)
     }
 
   Offset adjust = dz.direction () * Staff_symbol_referencer::staff_space (me);
-
   Offset line_left = span_points[LEFT] + (arrows[LEFT] ? adjust * 1.4 : Offset (0, 0));
   Offset line_right = span_points[RIGHT] - (arrows[RIGHT] ? adjust * 0.55 : Offset (0, 0));
+
   if (line_right[X_AXIS] > line_left[X_AXIS])
     {
       line.add_stencil (Line_interface::line (me, line_left, line_right));
index 1acb34f783cf83dab6b0cc503f8d55fb47852a0e..e903d5a9a403b18f1ce1192642f8f769619b741e 100644 (file)
@@ -27,6 +27,7 @@ using namespace std;
 
 #include "line-interface.hh"
 #include "warn.hh"
+#include "international.hh"
 #include "dimensions.hh"
 #include "bezier.hh"
 #include "file-path.hh"
@@ -169,10 +170,18 @@ Lookup::filled_box (Box b)
 Stencil
 Lookup::round_filled_box (Box b, Real blotdiameter)
 {
-  if (b.x ().length () < blotdiameter)
-    blotdiameter = b.x ().length ();
-  if (b.y ().length () < blotdiameter)
-    blotdiameter = b.y ().length ();
+  Real width = b.x ().delta ();
+  blotdiameter = min (blotdiameter, width);
+  Real height = b.y ().delta ();
+  blotdiameter = min (blotdiameter, height);
+
+  if (blotdiameter < 0.0)
+    {
+      if (!isinf (blotdiameter))
+        warning (_f ("Not drawing a box with negative dimension, %.2f by %.2f.",
+                     width, height));
+      return Stencil (b, SCM_EOL);
+    }
 
   SCM at = (scm_list_n (ly_symbol2scm ("round-filled-box"),
                         scm_from_double (-b[X_AXIS][LEFT]),
index 48c8af205e1a16741b44405850279773869fd07e..3c47335b3572f8deebbcae629d13b6a6cbcf43b2 100644 (file)
@@ -110,14 +110,14 @@ Lyric_combine_music_iterator::set_music_context (Context *to)
   if (music_context_)
     {
       music_context_->event_source ()->
-      remove_listener (GET_LISTENER (set_busy), ly_symbol2scm ("music-event"));
+      remove_listener (GET_LISTENER (set_busy), ly_symbol2scm ("rhythmic-event"));
     }
 
   music_context_ = to;
   if (to)
     {
       to->event_source ()->add_listener (GET_LISTENER (set_busy),
-                                         ly_symbol2scm ("music-event"));
+                                         ly_symbol2scm ("rhythmic-event"));
     }
 }
 
index 239ff1b39dc245f4507e4469558b083d5067393b..d4016e21f7e38bafa1fbafab1f98e5993030046b 100644 (file)
@@ -55,37 +55,6 @@ using namespace std;
 #include "version.hh"
 #include "warn.hh"
 
-/*
- * Global options that can be overridden through command line.
- */
-
-/* Names of header fields to be dumped to a separate file. */
-vector<string> dump_header_fieldnames_global;
-
-/* Name of initialisation file. */
-string init_name_global;
-
-/* Output formats to generate.  */
-string output_format_global = "";
-
-/* Current output name. */
-string output_name_global;
-
-/* Run in safe mode? */
-bool be_safe_global = false;
-
-/* Scheme code to execute before parsing, after .scm init.
-   This is where -e arguments are appended to.  */
-string init_scheme_code_global;
-string init_scheme_variables_global;
-
-bool relocate_binary = true;
-
-/*
- * Miscellaneous global stuff.
- */
-File_path global_path;
-
 /*
  * File globals.
  */
@@ -119,13 +88,8 @@ static char const *WARRANTY
         "the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
         "Boston, MA 02111-1307, USA.\n");
 
-/* Where the init files live.  Typically:
-   LILYPOND_DATADIR = /usr/share/lilypond
-*/
-string lilypond_datadir;
-
 /* The jail specification: USER, GROUP, JAIL, DIR. */
-string jail_spec;
+static string jail_spec;
 
 /*  The option parser */
 static Getopt_long *option_parser = 0;
@@ -605,8 +569,6 @@ setup_guile_env ()
                "104857600", overwrite);
 }
 
-vector<string> start_environment_global;
-
 int
 main (int argc, char **argv, char **envp)
 {
index 35b8614b0d62fa2a657510c68b9ac3fc35e37144..8f70fa4e487a0a84d1b0d436e0d8e77851269409 100644 (file)
@@ -57,16 +57,20 @@ class Mensural_ligature_engraver : public Coherent_ligature_engraver
 
 protected:
   virtual Spanner *create_ligature_spanner ();
-  virtual void build_ligature (Spanner *ligature, vector<Grob_info> primitives);
+  virtual void build_ligature (Spanner *ligature,
+                               vector<Grob_info> const &primitives);
   DECLARE_TRANSLATOR_LISTENER (ligature);
 
 public:
   TRANSLATOR_DECLARATIONS (Mensural_ligature_engraver);
 
 private:
-  void transform_heads (vector<Grob_info> primitives);
-  void propagate_properties (Spanner *ligature, vector<Grob_info> primitives);
-  void fold_up_primitives (vector<Grob_info> primitives);
+  void transform_heads (vector<Grob_info> const &primitives);
+  void propagate_properties (Spanner *ligature,
+                             vector<Grob_info> const &primitives,
+                             Real &min_length);
+  void fold_up_primitives (vector<Grob_info> const &primitives,
+                           Real &min_length);
 };
 
 IMPLEMENT_TRANSLATOR_LISTENER (Mensural_ligature_engraver, ligature);
@@ -89,7 +93,7 @@ Mensural_ligature_engraver::create_ligature_spanner ()
 }
 
 void
-Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
+Mensural_ligature_engraver::transform_heads (vector<Grob_info> const &primitives)
 {
   if (primitives.size () < 2)
     {
@@ -336,7 +340,8 @@ Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
  */
 void
 Mensural_ligature_engraver::propagate_properties (Spanner *ligature,
-                                                  vector<Grob_info> primitives)
+                                                  vector<Grob_info> const &primitives,
+                                                  Real &min_length)
 {
   Real thickness
     = robust_scm2double (ligature->get_property ("thickness"), 1.3);
@@ -350,6 +355,7 @@ Mensural_ligature_engraver::propagate_properties (Spanner *ligature,
     = Font_interface::get_default_font (ligature)->
       find_by_name ("noteheads.sM3ligmensural").extent (X_AXIS).length ();
 
+  min_length = 0.0;
   Item *prev_primitive = NULL;
   for (vsize i = 0; i < primitives.size (); i++)
     {
@@ -362,9 +368,11 @@ Mensural_ligature_engraver::propagate_properties (Spanner *ligature,
         {
         case MLP_BREVIS:
         case MLP_LONGA:
+          min_length += head_width;
           primitive->set_property ("head-width", scm_from_double (head_width));
           break;
         case MLP_MAXIMA:
+          min_length += maxima_head_width;
           primitive->set_property ("head-width",
                                    scm_from_double (maxima_head_width));
           break;
@@ -377,6 +385,7 @@ Mensural_ligature_engraver::propagate_properties (Spanner *ligature,
           {
             SCM flexa_scm = primitive->get_property ("flexa-width");
             Real const flexa_width = robust_scm2double (flexa_scm, 2.0);
+            min_length += flexa_width + thickness;
             SCM head_width = scm_from_double (0.5 * (flexa_width + thickness));
             primitive->set_property ("head-width", head_width);
             prev_primitive->set_property ("head-width", head_width);
@@ -393,7 +402,8 @@ Mensural_ligature_engraver::propagate_properties (Spanner *ligature,
 }
 
 void
-Mensural_ligature_engraver::fold_up_primitives (vector<Grob_info> primitives)
+Mensural_ligature_engraver::fold_up_primitives (vector<Grob_info> const &primitives,
+                                                Real &min_length)
 {
   Item *first = 0;
   Real distance = 0.0;
@@ -416,7 +426,7 @@ Mensural_ligature_engraver::fold_up_primitives (vector<Grob_info> primitives)
       Real head_width = scm_to_double (current->get_property ("head-width"));
       distance += head_width - thickness;
 
-      if (Rhythmic_head::dot_count (current) > 0)
+      if (size_t const dot_count = Rhythmic_head::dot_count (current))
         /*
           Move dots above/behind the ligature.
           dots should also avoid staff lines.
@@ -452,6 +462,8 @@ Mensural_ligature_engraver::fold_up_primitives (vector<Grob_info> primitives)
               else if (delta == 1 || delta == -1)
                 vert_shift -= delta * staff_space;
             }
+          else
+            min_length += head_width * dot_count;
 
           dot_gr->translate_axis (vert_shift, Y_AXIS);
 
@@ -466,11 +478,21 @@ Mensural_ligature_engraver::fold_up_primitives (vector<Grob_info> primitives)
 
 void
 Mensural_ligature_engraver::build_ligature (Spanner *ligature,
-                                            vector<Grob_info> primitives)
+                                            vector<Grob_info> const &primitives)
 {
+  /*
+    the X extent of the actual graphics representing the ligature;
+    less space than that means collision
+  */
+  Real min_length;
+
   transform_heads (primitives);
-  propagate_properties (ligature, primitives);
-  fold_up_primitives (primitives);
+  propagate_properties (ligature, primitives, min_length);
+  fold_up_primitives (primitives, min_length);
+
+  if (robust_scm2double (ligature->get_property ("minimum-length"), 0.0)
+      < min_length)
+    ligature->set_property ("minimum-length", scm_from_double (min_length));
 }
 
 ADD_ACKNOWLEDGER (Mensural_ligature_engraver, rest);
index 801266d79b07ff6a8114c572b00f29f51a186259..f90d641a6040fc3c047d67c9609dfb65860a19b3 100644 (file)
   along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#include <complex>
+
 #include "misc.hh"
+#include "offset.hh"
 #include "warn.hh"
 
 /*
@@ -94,3 +97,20 @@ camel_case_to_lisp_identifier (string in)
 
   return result;
 }
+
+Offset
+get_point_in_y_direction (Offset orig, Real slope, Real dist, Direction dir)
+{
+  if (slope == infinity_f)
+    return orig + Offset (dir * dist, 0.0);
+
+  Real x = slope == 0.0 ? 1.0 * dir : 1.0 * sign (slope) * dir;
+  Real y = slope * x;
+  Real angle = atan2 (y, x);
+
+  complex<Real> orig_c (orig[X_AXIS], orig[Y_AXIS]);
+  complex<Real> to_move = polar (dist, angle);
+  complex<Real> res = orig_c + to_move;
+
+  return Offset (real (res), imag (res));
+}
\ No newline at end of file
index 0acee126497e8435a74efdac94ce0fe3b8f8acd3..7a54948fed13a96882fc40d0567cd34de9708d09 100644 (file)
@@ -61,6 +61,12 @@ Modified_font_metric::get_indexed_char_dimensions (vsize i) const
   return b;
 }
 
+Real
+Modified_font_metric::get_magnification () const
+{
+  return magnification_;
+}
+
 vsize
 Modified_font_metric::count () const
 {
index 4fc43ca32b8c8f846d5373673615ae23a7a9eca8..0da0445c9cd49ae514780795b10d718288d9e386 100644 (file)
@@ -17,8 +17,7 @@
   along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "ly-module.hh"
-
+#include "ly-module.hh" // pulls in lily-guile.hh and guile-compatibility.hh
 #include "warn.hh"
 #include "main.hh"
 #include "std-string.hh"
@@ -52,14 +51,31 @@ LY_DEFINE (ly_module_copy, "ly:module-copy",
   return SCM_UNSPECIFIED;
 }
 
-/* Lookup SYM, but don't give error when it is not defined.  */
+
+
+/* Lookup SYM, but don't give error when it is not defined.
+   N.B. this is only needed when running with Guile versions
+   prior to V2.0.3, when calls to ly_module_lookup can be replaced
+   with direct calls to the Guile API scm_module_variable in the
+   LilyPond codebase.
+*/
 SCM
 ly_module_lookup (SCM module, SCM sym)
 {
 #define FUNC_NAME __FUNCTION__
   SCM_VALIDATE_MODULE (1, module);
-
+/*
+  Issue 2758:
+    Guile V2 onward has a scm_module_variable API module.
+    Guile V1.8.7 only has a (module-variable) REPL function, however
+    using ly_lily_module_constant ("module-variable") and calling
+    the memoized result is slow.
+ */
+#if GUILEV1
   return scm_sym2var (sym, scm_module_lookup_closure (module), SCM_BOOL_F);
+#else
+  return scm_module_variable (module, sym);
+#endif
 #undef FUNC_NAME
 }
 
index 3ab245ca5e84591fd924d65cf3334f5b7082e481..aad09a95a99ee64069f3fdca24441b06b096d709 100644 (file)
@@ -231,7 +231,8 @@ check_meshing_chords (Grob *me,
 
       /* If possible, don't wipe any heads.  Else, wipe shortest head,
          or head with smallest amount of dots.  Note: when merging
-         different heads, dots on the smaller one disappear. */
+         different heads, dots on the smaller one disappear; and when
+         merging identical heads, dots on the down-stem head disappear */
       Grob *wipe_ball = 0;
       Grob *dot_wipe_head = head_up;
 
@@ -248,7 +249,7 @@ check_meshing_chords (Grob *me,
               wipe_ball = head_up;
             }
           else
-            dot_wipe_head = head_up;
+            dot_wipe_head = head_down;
         }
       else if (down_ball_type > up_ball_type)
         {
@@ -593,6 +594,22 @@ Note_collision_interface::add_column (Grob *me, Grob *ncol)
   Axis_group_interface::add_element (me, ncol);
 }
 
+vector<int>
+Note_collision_interface::note_head_positions (Grob *me)
+{
+  vector<int> out;
+  extract_grob_set (me, "elements", elts);
+  for (vsize i = 0; i < elts.size (); i++)
+    if (Grob *stem = unsmob_grob (elts[i]->get_object ("stem")))
+      {
+        vector<int> nhp = Stem::note_head_positions (stem);
+        out.insert (out.end (), nhp.begin (), nhp.end ());
+      }
+
+  vector_sort (out, less<int> ());
+  return out;
+}
+
 ADD_INTERFACE (Note_collision_interface,
                "An object that handles collisions between notes with"
                " different stem directions and horizontal shifts.  Most of"
index da52093797fb1f3b98c91f42c07ad0835f70a441..7f9bac8eca3bb4305b68278b8eaa07cb9a2f3e96 100644 (file)
@@ -40,6 +40,31 @@ using namespace std;
   annoying layer between (rest)collision & (note-head + stem)
 */
 
+Interval
+Note_column::accidental_width (Grob *me)
+{
+  extract_grob_set (me, "note-heads", nhs);
+  vector<Grob *> accs;
+  for (vsize i = 0; i < nhs.size (); i++)
+    if (Grob *acc = unsmob_grob (nhs[i]->get_object ("accidental-grob")))
+      accs.push_back (acc);
+
+  Grob *common = common_refpoint_of_array (accs, me, X_AXIS);
+  common = common_refpoint_of_array (nhs, common, X_AXIS);
+
+  Interval nhs_ex = Axis_group_interface::relative_group_extent (nhs, common, X_AXIS);
+  Interval accs_ex = Axis_group_interface::relative_group_extent (accs, common, X_AXIS);
+
+  if (nhs_ex.is_empty ())
+    return accs_ex;
+
+  // want an empty interval here
+  if (accs_ex.is_empty ())
+    return Interval ();
+
+  return Interval (accs_ex[LEFT], nhs_ex[LEFT]);
+}
+
 bool
 Note_column::has_rests (Grob *me)
 {
index 477236775d553d750f40e4d795e1f52aa71dcccb..1d0d21fbbb502e5ae977c0e90781cfe63233aca2 100644 (file)
@@ -79,7 +79,7 @@ Note_spacing::get_spacing (Grob *me, Item *right_col,
     adjust things so there are no collisions.
   */
   Drul_array<Skyline> skys = Spacing_interface::skylines (me, right_col);
-  Real distance = skys[LEFT].distance (skys[RIGHT]);
+  Real distance = skys[LEFT].distance (skys[RIGHT], robust_scm2double (right_col->get_property ("skyline-vertical-padding"), 0.0));
   Real min_dist = max (0.0, distance);
   Real min_desired_space = left_head_end + (min_dist - left_head_end + base_space - increment) / 2;
   Real ideal = base_space - increment + left_head_end;
index fc97b99687b4a96a5dfa58cd831d2cdbb7d9bbd5..680dfe92348f364f5cc154772220556dc17003a7 100644 (file)
@@ -26,6 +26,7 @@ using namespace std;
 #include <freetype/tttables.h>
 
 #include "dimensions.hh"
+#include "freetype.hh"
 #include "international.hh"
 #include "modified-font-metric.hh"
 #include "warn.hh"
@@ -213,19 +214,18 @@ Open_type_font::get_indexed_char_dimensions (size_t signed_idx) const
         }
     }
 
-  FT_UInt idx = FT_UInt (signed_idx);
-  FT_Load_Glyph (face_, idx, FT_LOAD_NO_SCALE);
-
-  FT_Glyph_Metrics m = face_->glyph->metrics;
-  FT_Pos hb = m.horiBearingX;
-  FT_Pos vb = m.horiBearingY;
-  Box b (Interval (Real (-hb), Real (m.width - hb)),
-         Interval (Real (-vb), Real (m.height - vb)));
+  Box b = get_unscaled_indexed_char_dimensions (signed_idx);
 
   b.scale (design_size () / Real (face_->units_per_EM));
   return b;
 }
 
+Real
+Open_type_font::get_units_per_EM () const
+{
+  return face_->units_per_EM;
+}
+
 size_t
 Open_type_font::name_to_index (string nm) const
 {
@@ -236,6 +236,24 @@ Open_type_font::name_to_index (string nm) const
   return (size_t) - 1;
 }
 
+Box
+Open_type_font::get_unscaled_indexed_char_dimensions (size_t signed_idx) const
+{
+  return ly_FT_get_unscaled_indexed_char_dimensions (face_, signed_idx);
+}
+
+Box
+Open_type_font::get_glyph_outline_bbox (size_t signed_idx) const
+{
+  return ly_FT_get_glyph_outline_bbox (face_, signed_idx);
+}
+
+SCM
+Open_type_font::get_glyph_outline (size_t signed_idx) const
+{
+  return ly_FT_get_glyph_outline (face_, signed_idx);
+}
+
 size_t
 Open_type_font::index_to_charcode (size_t i) const
 {
index 2b0910f8873600feebf136424c8ffa823d0f93d6..3bddcad4ba66815806fa1e691a2c2f229e1fc8f9 100644 (file)
@@ -64,12 +64,19 @@ Optimal_page_breaking::solve ()
       best = space_systems_on_best_pages (0, first_page_num);
 
       page_count = best.systems_per_page_.size ();
-      min_sys_count = ideal_sys_count - best.systems_per_page_.back ();
+      if (page_count == 0)
+        {
+          min_sys_count = 0;
+        }
+      else
+        {
+          min_sys_count = ideal_sys_count - best.systems_per_page_.back ();
 
-      if (page_count > 1 && best.systems_per_page_[page_count - 2] > 1)
-        min_sys_count -= best.systems_per_page_[page_count - 2];
+          if (page_count > 1 && best.systems_per_page_[page_count - 2] > 1)
+            min_sys_count -= best.systems_per_page_[page_count - 2];
 
-      min_sys_count = max (min_sys_count, (vsize)1);
+          min_sys_count = max (min_sys_count, (vsize)1);
+        }
     }
   else
     {
@@ -103,7 +110,7 @@ Optimal_page_breaking::solve ()
 
   if (page_count == 1)
     message (_ ("Fitting music on 1 page..."));
-  else if (scm_is_integer (forced_page_count))
+  else if (scm_is_integer (forced_page_count) || page_count == 0)
     message (_f ("Fitting music on %d pages...", (int)page_count));
   else
     message (_f ("Fitting music on %d or %d pages...", (int)page_count - 1, (int)page_count));
index 692244b897063daab340b814da73529beee58642..9a6f8f40f25c0edbe47f45ecde1780c2babc89b6 100644 (file)
@@ -504,7 +504,7 @@ Page_breaking::page_height (int page_num, bool last) const
   // This means that we won't cache properly if page_num is negative or
   // if calc_height returns a negative number.  But that's likely to
   // be rare, so it shouldn't affect performance.
-  vector<Real>cache = last ? last_page_height_cache_ : page_height_cache_;
+  vector<Real> &cache = last ? last_page_height_cache_ : page_height_cache_;
   if (page_num >= 0 && (int) cache.size () > page_num && cache[page_num] >= 0)
     return cache[page_num];
   else
@@ -1224,11 +1224,11 @@ Page_breaking::blank_page_penalty () const
   SCM penalty_sym;
 
   if (is_last ())
-    penalty_sym = ly_symbol2scm ("blank-last-page-force");
+    penalty_sym = ly_symbol2scm ("blank-last-page-penalty");
   else if (ends_score ())
-    penalty_sym = ly_symbol2scm ("blank-after-score-page-force");
+    penalty_sym = ly_symbol2scm ("blank-after-score-page-penalty");
   else
-    penalty_sym = ly_symbol2scm ("blank-page-force");
+    penalty_sym = ly_symbol2scm ("blank-page-penalty");
 
   Break_position const &pos = breaks_[current_end_breakpoint_];
   if (Paper_score *ps = system_specs_[pos.system_spec_index_].pscore_)
index 7c9967055146637364524d559b0e11095482e739..11177be03a461e4b736f7e06772380910237d01a 100644 (file)
@@ -539,7 +539,7 @@ Page_layout_problem::set_footer_height (Real height)
 void
 Page_layout_problem::append_system (System *sys, Spring const &spring, Real indent, Real padding)
 {
-  Grob *align = sys->get_vertical_alignment ();
+  Grob *align = unsmob_grob (sys->get_object ("vertical-alignment"));
   if (!align)
     return;
 
index 9434fb910aab7705be46630374f25a5bc4e51cd6..c2988d8502e37785a54ebf658932710aa310c6bb 100644 (file)
@@ -155,6 +155,9 @@ Page_spacer::solve ()
     }
 
   Page_spacing_result ret;
+  if (simple_state_.empty ())
+    return ret;
+
   ret.penalty_ = simple_state_.back ().penalty_
                  + lines_.back ().page_penalty_ + lines_.back ().turn_penalty_;
   ret.system_count_status_ = simple_state_.back ().system_count_status_;
index 70810b5e27ecff6b49231bd8bf1cd05d0585f7d5..e4a07a9fd5ca8bd719c83f4bd084dc442998650e 100644 (file)
@@ -91,6 +91,22 @@ Pango_font::register_font_file (string filename,
                               scm_from_int (face_index)));
 }
 
+size_t
+Pango_font::name_to_index (string nm) const
+{
+  PangoFcFont *fcfont = PANGO_FC_FONT (pango_context_load_font (context_, pango_description_));
+  FT_Face face = pango_fc_font_lock_face (fcfont);
+  char *nm_str = (char *) nm.c_str ();
+  if (FT_UInt idx = FT_Get_Name_Index (face, nm_str))
+    {
+      pango_fc_font_unlock_face (fcfont);
+      return (size_t) idx;
+    }
+
+  pango_fc_font_unlock_face (fcfont);
+  return (size_t) - 1;
+}
+
 void
 Pango_font::derived_mark () const
 {
@@ -114,6 +130,51 @@ get_unicode_name (char *s,
     sprintf (s, "uni%04lX", code);
 }
 
+Box
+Pango_font::get_unscaled_indexed_char_dimensions (size_t signed_idx) const
+{
+  PangoFcFont *fcfont = PANGO_FC_FONT (pango_context_load_font (context_, pango_description_));
+  FT_Face face = pango_fc_font_lock_face (fcfont);
+  Box b = ly_FT_get_unscaled_indexed_char_dimensions (face, signed_idx);
+  pango_fc_font_unlock_face (fcfont);
+  return b;
+}
+
+Box
+Pango_font::get_scaled_indexed_char_dimensions (size_t signed_idx) const
+{
+  PangoFont *font = pango_context_load_font (context_, pango_description_);
+  PangoRectangle logical_rect;
+  PangoRectangle ink_rect;
+  pango_font_get_glyph_extents (font, signed_idx, &ink_rect, &logical_rect);
+  Box out (Interval (PANGO_LBEARING (ink_rect),
+                     PANGO_RBEARING (ink_rect)),
+           Interval (-PANGO_DESCENT (ink_rect),
+                     PANGO_ASCENT (ink_rect)));
+  out.scale (scale_);
+  return out;
+}
+
+Box
+Pango_font::get_glyph_outline_bbox (size_t signed_idx) const
+{
+  PangoFcFont *fcfont = PANGO_FC_FONT (pango_context_load_font (context_, pango_description_));
+  FT_Face face = pango_fc_font_lock_face (fcfont);
+  Box b = ly_FT_get_glyph_outline_bbox (face, signed_idx);
+  pango_fc_font_unlock_face (fcfont);
+  return b;
+}
+
+SCM
+Pango_font::get_glyph_outline (size_t signed_idx) const
+{
+  PangoFcFont *fcfont = PANGO_FC_FONT (pango_context_load_font (context_, pango_description_));
+  FT_Face face = pango_fc_font_lock_face (fcfont);
+  SCM s = ly_FT_get_glyph_outline (face, signed_idx);
+  pango_fc_font_unlock_face (fcfont);
+  return s;
+}
+
 Stencil
 Pango_font::pango_item_string_stencil (PangoGlyphItem const *glyph_item) const
 {
@@ -128,7 +189,6 @@ Pango_font::pango_item_string_stencil (PangoGlyphItem const *glyph_item) const
   pango_glyph_string_extents (pgs, pa->font, &ink_rect, &logical_rect);
 
   PangoFcFont *fcfont = PANGO_FC_FONT (pa->font);
-
   FT_Face ftface = pango_fc_font_lock_face (fcfont);
 
   Box b (Interval (PANGO_LBEARING (logical_rect),
@@ -231,7 +291,20 @@ Pango_font::pango_item_string_stencil (PangoGlyphItem const *glyph_item) const
       else
         char_id = scm_from_locale_string (glyph_name);
 
-      *tail = scm_cons (scm_list_4 (scm_from_double (ggeo.width * scale_),
+      PangoRectangle logical_sub_rect;
+      PangoRectangle ink_sub_rect;
+
+      pango_glyph_string_extents_range (pgs, i, i + 1, pa->font, &ink_sub_rect, &logical_sub_rect);
+      Box b_sub (Interval (PANGO_LBEARING (logical_sub_rect),
+                           PANGO_RBEARING (logical_sub_rect)),
+                 Interval (-PANGO_DESCENT (ink_sub_rect),
+                           PANGO_ASCENT (ink_sub_rect)));
+
+      b_sub.scale (scale_);
+
+      *tail = scm_cons (scm_list_5 (scm_from_double (b_sub[X_AXIS][RIGHT] - b_sub[X_AXIS][LEFT]),
+                                    scm_cons (scm_from_double (b_sub[Y_AXIS][DOWN]),
+                                              scm_from_double (b_sub[Y_AXIS][UP])),
                                     scm_from_double (ggeo.x_offset * scale_),
                                     scm_from_double (- ggeo.y_offset * scale_),
                                     char_id),
@@ -284,13 +357,14 @@ Pango_font::pango_item_string_stencil (PangoGlyphItem const *glyph_item) const
       ((Pango_font *) this)->register_font_file (file_name,
                                                  ps_name,
                                                  face_index);
-      pango_fc_font_unlock_face (fcfont);
 
-      SCM expr = scm_list_5 (ly_symbol2scm ("glyph-string"),
+      SCM expr = scm_list_n (ly_symbol2scm ("glyph-string"),
+                             self_scm (),
                              ly_string2scm (ps_name),
                              scm_from_double (size),
                              scm_from_bool (cid_keyed),
-                             ly_quote_scm (glyph_exprs));
+                             ly_quote_scm (glyph_exprs),
+                             SCM_UNDEFINED);
 
       return Stencil (b, expr);
     }
index cdf3d595ca554ec9ee0c1afcf5deaf9fa7aa493f..78f2786ef89b34f41cefcb63cc8d8e4c352a9bbf 100644 (file)
@@ -27,6 +27,7 @@
 #include "lookup.hh"
 #include "lookup.hh"
 #include "moment.hh"
+#include "note-head.hh"
 #include "output-def.hh"
 #include "paper-score.hh"
 #include "pointer-group-interface.hh"
@@ -218,6 +219,7 @@ Paper_column::break_align_width (Grob *me, SCM align_sym)
   return align->extent (p, X_AXIS);
 }
 
+
 /*
   Print a vertical line and  the rank number, to aid debugging.
 */
index 020a998886de9d5ea9f791d1da66c7926664e3ac..0804ce575b59f240ff3b43fcd1487ad7c9511fe0 100644 (file)
@@ -1,4 +1,4 @@
-/* -*- mode: c++; c-file-style: "linux" -*- */
+/* -*- mode: c++; c-file-style: "linux"; indent-tabs-mode: t -*- */
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
 
 /* We use custom location type: Input objects */
 #define YYLTYPE Input
+#define YYSTYPE SCM
 #define YYLLOC_DEFAULT(Current,Rhs,N) \
        ((Current).set_location ((Rhs)[1], (Rhs)[N]))
 
+#define YYPRINT(file, type, value)                                      \
+        do {                                                            \
+                if (scm_is_eq (value, SCM_UNSPECIFIED))                 \
+                        break;                                          \
+                char *p = scm_to_locale_string                          \
+                        (scm_simple_format (SCM_BOOL_F,                 \
+                                            scm_from_locale_string ("~S"), \
+                                            scm_list_1 (value)));       \
+                fputs (p, file);                                        \
+                free (p);                                               \
+        } while (0)
 
 %}
 
 %parse-param {Lily_parser *parser}
+%parse-param {SCM *retval}
 %lex-param {Lily_parser *parser}
 %error-verbose
 %debug
@@ -144,7 +157,7 @@ using namespace std;
 #include "warn.hh"
 
 void
-Lily_parser::parser_error (Input const *i, Lily_parser *parser, string s)
+Lily_parser::parser_error (Input const *i, Lily_parser *parser, SCM *, string s)
 {
        parser->parser_error (*i, s);
 }
@@ -179,15 +192,6 @@ while (0)
 %}
 
 
-%union {
-       Book *book;
-       Output_def *outputdef;
-       SCM scm;
-       std::string *string;
-       Score *score;
-       int i;
-}
-
 %{
 
 #define MY_MAKE_MUSIC(x, spot)  make_music_with_input (ly_symbol2scm (x), spot)
@@ -220,15 +224,16 @@ SCM get_next_unique_lyrics_context_id ();
 
 static Music *make_music_with_input (SCM name, Input where);
 SCM check_scheme_arg (Lily_parser *parser, Input loc,
-                     SCM arg, SCM args, SCM pred);
+                     SCM arg, SCM args, SCM pred, SCM disp = SCM_UNDEFINED);
+SCM make_music_from_simple (Lily_parser *parser, Input loc, SCM pitch);
 SCM loc_on_music (Input loc, SCM arg);
 SCM make_chord_elements (Input loc, SCM pitch, SCM dur, SCM modification_list);
-SCM make_chord_step (int step, Rational alter);
+SCM make_chord_step (SCM step, Rational alter);
 SCM make_simple_markup (SCM a);
 bool is_duration (int t);
-bool is_regular_identifier (SCM id);
+bool is_regular_identifier (SCM id, bool multiple=false);
+SCM try_string_variants (SCM pred, SCM str);
 int yylex (YYSTYPE *s, YYLTYPE *loc, Lily_parser *parser);
-void set_music_properties (Music *p, SCM a);
 
 %}
 
@@ -327,230 +332,56 @@ If we give names, Bison complains.
 %token MULTI_MEASURE_REST
 
 
-%token <i> E_UNSIGNED
-%token <scm> UNSIGNED
+%token E_UNSIGNED
+%token UNSIGNED
 
 /* Artificial tokens, for more generic function syntax */
-%token <i> EXPECT_MARKUP "markup?"
-%token <i> EXPECT_PITCH "ly:pitch?"
-%token <i> EXPECT_DURATION "ly:duration?"
-%token <scm> EXPECT_SCM "scheme?"
-%token <scm> BACKUP "(backed-up?)"
-%token <scm> REPARSE "(reparsed?)"
-%token <i> EXPECT_MARKUP_LIST "markup-list?"
-%token <scm> EXPECT_OPTIONAL "optional?"
+%token EXPECT_MARKUP "markup?"
+%token EXPECT_PITCH "ly:pitch?"
+%token EXPECT_DURATION "ly:duration?"
+%token EXPECT_SCM "scheme?"
+%token BACKUP "(backed-up?)"
+%token REPARSE "(reparsed?)"
+%token EXPECT_MARKUP_LIST "markup-list?"
+%token EXPECT_OPTIONAL "optional?"
 /* After the last argument. */
-%token <i> EXPECT_NO_MORE_ARGS;
+%token EXPECT_NO_MORE_ARGS;
 
 /* An artificial token for parsing embedded Lilypond */
-%token <i> EMBEDDED_LILY "#{"
-
-%token <scm> BOOK_IDENTIFIER
-%token <scm> CHORDMODIFIER_PITCH
-%token <scm> CHORD_MODIFIER
-%token <scm> CHORD_REPETITION
-%token <scm> CONTEXT_DEF_IDENTIFIER
-%token <scm> CONTEXT_MOD_IDENTIFIER
-%token <scm> DRUM_PITCH
-%token <scm> PITCH_IDENTIFIER
-%token <scm> DURATION_IDENTIFIER
-%token <scm> EVENT_IDENTIFIER
-%token <scm> EVENT_FUNCTION
-%token <scm> FRACTION
-%token <scm> LYRICS_STRING
-%token <scm> LYRIC_ELEMENT
-%token <scm> LYRIC_MARKUP_IDENTIFIER
-%token <scm> MARKUP_FUNCTION
-%token <scm> MARKUP_LIST_FUNCTION
-%token <scm> MARKUP_IDENTIFIER
-%token <scm> MARKUPLIST_IDENTIFIER
-%token <scm> MUSIC_FUNCTION
-%token <scm> MUSIC_IDENTIFIER
-%token <scm> NOTENAME_PITCH
-%token <scm> NUMBER_IDENTIFIER
-%token <scm> OUTPUT_DEF_IDENTIFIER
-%token <scm> REAL
-%token <scm> RESTNAME
-%token <scm> SCM_FUNCTION
-%token <scm> SCM_IDENTIFIER
-%token <scm> SCM_TOKEN
-%token <scm> SCORE_IDENTIFIER
-%token <scm> STRING
-%token <scm> STRING_IDENTIFIER
-%token <scm> TONICNAME_PITCH
-
-
-%type <book> book_block
-%type <book> book_body
-%type <book> bookpart_block
-%type <book> bookpart_body
-
-%type <i> bare_unsigned
-%type <scm> figured_bass_alteration
-%type <i> dots
-%type <i> exclamations
-%type <i> optional_rest
-%type <i> questions
-%type <i> script_dir
-%type <i> sub_quotes
-%type <i> sup_quotes
-%type <i> tremolo_type
-
-/* Music */
-%type <scm> composite_music
-%type <scm> grouped_music_list
-%type <scm> braced_music_list
-%type <scm> closed_music
-%type <scm> music
-%type <scm> music_bare
-%type <scm> music_arg
-%type <scm> music_assign
-%type <scm> music_embedded
-%type <scm> music_or_context_def
-%type <scm> complex_music
-%type <scm> complex_music_prefix
-%type <scm> mode_changed_music
-%type <scm> repeated_music
-%type <scm> sequential_music
-%type <scm> simple_music
-%type <scm> simultaneous_music
-%type <scm> chord_body
-%type <scm> chord_body_element
-%type <scm> command_element
-%type <scm> command_event
-%type <scm> context_modification
-%type <scm> context_change
-%type <scm> direction_less_event
-%type <scm> direction_reqd_event
-%type <scm> embedded_lilypond
-%type <scm> event_chord
-%type <scm> fingering
-%type <scm> gen_text_def
-%type <scm> music_property_def
-%type <scm> note_chord_element
-%type <scm> post_event
-%type <scm> post_event_nofinger
-%type <scm> re_rhythmed_music
-%type <scm> simple_element
-%type <scm> simple_music_property_def
-%type <scm> start_symbol
-%type <scm> string_number_event
-%type <scm> tempo_event
-
-%type <outputdef> output_def_body
-%type <outputdef> output_def_head
-%type <outputdef> output_def_head_with_mode_switch
-%type <outputdef> output_def
-%type <outputdef> paper_block
-
-%type <scm> music_function_call
-%type <scm> music_list
-%type <scm> assignment_id
-%type <scm> bare_number
-%type <scm> bare_number_closed
-%type <scm> unsigned_number
-%type <scm> bass_figure
-%type <scm> figured_bass_modification
-%type <scm> br_bass_figure
-%type <scm> bass_number
-%type <scm> chord_body_elements
-%type <scm> chord_item
-%type <scm> chord_items
-%type <scm> chord_separator
-%type <scm> context_def_mod
-%type <scm> context_def_spec_block
-%type <scm> context_def_spec_body
-%type <scm> context_mod
-%type <scm> context_mod_arg
-%type <scm> context_mod_embedded
-%type <scm> context_mod_list
-%type <scm> context_prop_spec
-%type <scm> direction_less_char
-%type <scm> duration_length
-%type <scm> embedded_scm
-%type <scm> embedded_scm_arg
-%type <scm> embedded_scm_arg_closed
-%type <scm> embedded_scm_bare
-%type <scm> embedded_scm_bare_arg
-%type <scm> embedded_scm_closed
-%type <scm> event_function_event
-%type <scm> figure_list
-%type <scm> figure_spec
-%type <scm> full_markup
-%type <scm> full_markup_list
-%type <scm> function_arglist
-%type <scm> function_arglist_optional
-%type <scm> function_arglist_backup
-%type <scm> function_arglist_nonbackup
-%type <scm> function_arglist_nonbackup_common
-%type <scm> function_arglist_closed_nonbackup
-%type <scm> function_arglist_skip
-%type <scm> function_arglist_bare
-%type <scm> function_arglist_closed
-%type <scm> function_arglist_closed_optional
-%type <scm> function_arglist_common
-%type <scm> function_arglist_common_lyric
-%type <scm> function_arglist_common_minus
-%type <scm> function_arglist_closed_common
-%type <scm> function_arglist_keep
-%type <scm> function_arglist_closed_keep
-%type <scm> identifier_init
-%type <scm> lilypond
-%type <scm> lilypond_header
-%type <scm> lyric_element
-%type <scm> lyric_element_arg
-%type <scm> lyric_element_music
-%type <scm> lyric_markup
-%type <scm> markup
-%type <scm> markup_braced_list
-%type <scm> markup_braced_list_body
-%type <scm> markup_composed_list
-%type <scm> markup_command_list
-%type <scm> markup_command_list_arguments
-%type <scm> markup_command_basic_arguments
-%type <scm> markup_head_1_item
-%type <scm> markup_head_1_list
-%type <scm> markup_list
-%type <scm> markup_top
-%type <scm> maybe_notemode_duration
-%type <scm> mode_changing_head
-%type <scm> mode_changing_head_with_context
-%type <scm> multiplied_duration
-%type <scm> music_function_call_closed
-%type <scm> music_function_chord_body
-%type <scm> new_chord
-%type <scm> new_lyrics
-%type <scm> number_expression
-%type <scm> number_factor
-%type <scm> number_term
-%type <scm> octave_check
-%type <scm> optional_context_mod
-%type <scm> optional_id
-%type <scm> optional_notemode_duration
-%type <scm> pitch
-%type <scm> pitch_also_in_chords
-%type <scm> post_events
-%type <scm> property_operation
-%type <scm> property_path property_path_revved
-%type <scm> scalar
-%type <scm> scalar_closed
-%type <scm> scm_function_call
-%type <scm> scm_function_call_closed
-%type <scm> script_abbreviation
-%type <scm> simple_chord_elements
-%type <scm> simple_markup
-%type <scm> simple_string
-%type <scm> steno_duration
-%type <scm> steno_pitch
-%type <scm> steno_tonic_pitch
-%type <scm> step_number
-%type <scm> step_numbers
-%type <scm> string
-%type <scm> tempo_range
-
-%type <score> score_block
-%type <score> score_body
-
+%token EMBEDDED_LILY "#{"
+
+%token BOOK_IDENTIFIER
+%token CHORDMODIFIER_PITCH
+%token CHORD_MODIFIER
+%token CHORD_REPETITION
+%token CONTEXT_DEF_IDENTIFIER
+%token CONTEXT_MOD_IDENTIFIER
+%token DRUM_PITCH
+%token PITCH_IDENTIFIER
+%token DURATION_IDENTIFIER
+%token EVENT_IDENTIFIER
+%token EVENT_FUNCTION
+%token FRACTION
+%token LYRICS_STRING
+%token LYRIC_ELEMENT
+%token MARKUP_FUNCTION
+%token MARKUP_LIST_FUNCTION
+%token MARKUP_IDENTIFIER
+%token MARKUPLIST_IDENTIFIER
+%token MUSIC_FUNCTION
+%token MUSIC_IDENTIFIER
+%token NOTENAME_PITCH
+%token NUMBER_IDENTIFIER
+%token OUTPUT_DEF_IDENTIFIER
+%token REAL
+%token RESTNAME
+%token SCM_ARG
+%token SCM_FUNCTION
+%token SCM_IDENTIFIER
+%token SCM_TOKEN
+%token STRING
+%token SYMBOL_LIST
+%token TONICNAME_PITCH
 
 %left '-' '+'
 
@@ -568,11 +399,11 @@ start_symbol:
                parser->lexer_->push_note_state (nn);
        } embedded_lilypond {
                parser->lexer_->pop_state ();
-               parser->lexer_->set_identifier (ly_symbol2scm ("parseStringResult"), $3);
+                *retval = $3;
        }
        ;
 
-lilypond:      /* empty */ { }
+lilypond:      /* empty */ { $$ = SCM_UNSPECIFIED; }
        | lilypond toplevel_expression {
        }
        | lilypond assignment {
@@ -593,28 +424,20 @@ toplevel_expression:
                parser->lexer_->set_identifier (ly_symbol2scm ("$defaultheader"), $2);
        }
        | book_block {
-               Book *book = $1;
                SCM proc = parser->lexer_->lookup_identifier ("toplevel-book-handler");
-               scm_call_2 (proc, parser->self_scm (), book->self_scm ());
-               book->unprotect ();
+               scm_call_2 (proc, parser->self_scm (), $1);
        }
        | bookpart_block {
-               Book *bookpart = $1;
                SCM proc = parser->lexer_->lookup_identifier ("toplevel-bookpart-handler");
-               scm_call_2 (proc, parser->self_scm (), bookpart->self_scm ());
-               bookpart->unprotect ();
+               scm_call_2 (proc, parser->self_scm (), $1);
        }
        | score_block {
-               Score *score = $1;
-
                SCM proc = parser->lexer_->lookup_identifier ("toplevel-score-handler");
-               scm_call_2 (proc, parser->self_scm (), score->self_scm ());
-               score->unprotect ();
+               scm_call_2 (proc, parser->self_scm (), $1);
        }
        | composite_music {
-               Music *music = unsmob_music ($1);
                SCM proc = parser->lexer_->lookup_identifier ("toplevel-music-handler");
-               scm_call_2 (proc, parser->self_scm (), music->self_scm ());
+               scm_call_2 (proc, parser->self_scm (), $1);
        }
        | full_markup {
                SCM proc = parser->lexer_->lookup_identifier ("toplevel-text-handler");
@@ -624,19 +447,36 @@ toplevel_expression:
                SCM proc = parser->lexer_->lookup_identifier ("toplevel-text-handler");
                scm_call_2 (proc, parser->self_scm (), $1);
        }
+       | SCM_TOKEN {
+               // Evaluate and ignore #xxx, as opposed to \xxx
+               parser->lexer_->eval_scm_token ($1);
+       }
+       | embedded_scm_active
+       {
+               SCM out = SCM_UNDEFINED;
+               if (Text_interface::is_markup ($1))
+                       out = scm_list_1 ($1);
+               else if (Text_interface::is_markup_list ($1))
+                       out = $1;
+               if (scm_is_pair (out))
+               {
+                       SCM proc = parser->lexer_->lookup_identifier ("toplevel-text-handler");
+                       scm_call_2 (proc, parser->self_scm (), out);
+               } else if (!scm_is_eq ($1, SCM_UNSPECIFIED))
+                       parser->parser_error (@1, _("bad expression type"));
+       }
        | output_def {
                SCM id = SCM_EOL;
-               Output_def * od = $1;
+               Output_def * od = unsmob_output_def ($1);
 
-               if ($1->c_variable ("is-paper") == SCM_BOOL_T)
+               if (od->c_variable ("is-paper") == SCM_BOOL_T)
                        id = ly_symbol2scm ("$defaultpaper");
-               else if ($1->c_variable ("is-midi") == SCM_BOOL_T)
+               else if (od->c_variable ("is-midi") == SCM_BOOL_T)
                        id = ly_symbol2scm ("$defaultmidi");
-               else if ($1->c_variable ("is-layout") == SCM_BOOL_T)
+               else if (od->c_variable ("is-layout") == SCM_BOOL_T)
                        id = ly_symbol2scm ("$defaultlayout");
 
-               parser->lexer_->set_identifier (id, od->self_scm ());
-               od->unprotect();
+               parser->lexer_->set_identifier (id, $1);
        }
        ;
 
@@ -648,34 +488,25 @@ embedded_scm_bare:
        | SCM_IDENTIFIER
        ;
 
+embedded_scm_active:
+       SCM_IDENTIFIER
+       | scm_function_call
+       ;
+
 embedded_scm_bare_arg:
-       embedded_scm_bare
-       | STRING
-       | STRING_IDENTIFIER
+       SCM_ARG
+       | SCM_TOKEN
+       {
+               $$ = parser->lexer_->eval_scm_token ($1);
+       }
        | full_markup
        | full_markup_list
        | context_modification
        | score_block
-       {
-               $$ = $1->self_scm ();
-               $1->unprotect ();
-       }
        | context_def_spec_block
        | book_block
-       {
-               $$ = $1->self_scm ();
-               $1->unprotect ();
-       }
        | bookpart_block
-       {
-               $$ = $1->self_scm ();
-               $1->unprotect ();
-       }
        | output_def
-       {
-               $$ = $1->self_scm ();
-               $1->unprotect ();
-       }
        ;
 
 /* The generic version may end in music, or not */
@@ -714,17 +545,22 @@ embedded_lilypond:
        }
        | error {
                parser->error_level_ = 1;
+                $$ = SCM_UNSPECIFIED;
        }
        | INVALID embedded_lilypond {
                parser->error_level_ = 1;
+                $$ = $2;
        }
        ;
 
 
 lilypond_header_body:
-       /* empty */
+       /* empty */ { $$ = SCM_UNSPECIFIED; }
        | lilypond_header_body assignment  {
 
+       }
+       | lilypond_header_body embedded_scm  {
+
        }
        ;
 
@@ -745,70 +581,30 @@ assignment_id:
 assignment:
        assignment_id '=' identifier_init  {
                parser->lexer_->set_identifier ($1, $3);
+                $$ = SCM_UNSPECIFIED;
        }
        | assignment_id property_path '=' identifier_init {
                SCM path = scm_cons (scm_string_to_symbol ($1), $2);
                parser->lexer_->set_identifier (path, $4);
-       ;
-/*
- TODO: devise standard for protection in parser.
-
-  The parser stack lives on the C-stack, which means that
-all objects can be unprotected as soon as they're here.
-
-*/
+                $$ = SCM_UNSPECIFIED;
        }
-       | embedded_scm { }
        ;
 
 
 identifier_init:
-       score_block {
-               $$ = $1->self_scm ();
-               $1->unprotect ();
-       }
-       | book_block {
-               $$ = $1->self_scm ();
-               $1->unprotect ();
-       }
-       | bookpart_block {
-               $$ = $1->self_scm ();
-               $1->unprotect ();
-       }
-       | output_def {
-               $$ = $1->self_scm ();
-               $1->unprotect ();
-       }
-       | context_def_spec_block {
-               $$ = $1;
-       }
-       | music_assign  {
-               $$ = $1;
-       }
-       | post_event_nofinger {
-               $$ = $1;
-       }
-       | number_expression {
-               $$ = $1;
-       }
-       | FRACTION {
-               $$ = $1;
-       }
-       | string {
-               $$ = $1;
-       }
-        | embedded_scm {
-               $$ = $1;
-       }
-       | full_markup {
-               $$ = $1;
-       }
-       | full_markup_list {
-               $$ = $1;
-       }
-        | context_modification {
-                $$ = $1;
-        }
+       score_block
+       | book_block
+       | bookpart_block
+       | output_def
+       | context_def_spec_block
+       | music_assign
+       | post_event_nofinger
+       | number_expression
+       | FRACTION
+       | string
+        | embedded_scm
+       | full_markup_list
+        | context_modification
        ;
 
 context_def_spec_block:
@@ -849,7 +645,8 @@ context_def_spec_body:
                unsmob_context_def ($$)->origin ()->set_spot (@$);
        }
        | context_def_spec_body context_mod {
-               unsmob_context_def ($$)->add_context_mod ($2);
+               if (!SCM_UNBNDP ($2))
+                       unsmob_context_def ($$)->add_context_mod ($2);
        }
        | context_def_spec_body context_modification {
                 Context_def *td = unsmob_context_def ($$);
@@ -882,60 +679,71 @@ book_block:
    * grok \layout and \midi?  */
 book_body:
        {
-               $$ = new Book;
+               Book *book = new Book;
                init_papers (parser);
-               $$->origin ()->set_spot (@$);
-               $$->paper_ = dynamic_cast<Output_def*> (unsmob_output_def (parser->lexer_->lookup_identifier ("$defaultpaper"))->clone ());
-               $$->paper_->unprotect ();
-               push_paper (parser, $$->paper_);
-               $$->header_ = get_header (parser);
-               parser->lexer_->set_identifier (ly_symbol2scm ("$current-book"), $$->self_scm ());
+               book->origin ()->set_spot (@$);
+               book->paper_ = dynamic_cast<Output_def*> (unsmob_output_def (parser->lexer_->lookup_identifier ("$defaultpaper"))->clone ());
+               book->paper_->unprotect ();
+               push_paper (parser, book->paper_);
+               book->header_ = get_header (parser);
+                $$ = book->unprotect ();
+               parser->lexer_->set_identifier (ly_symbol2scm ("$current-book"), $$);
        }
        | BOOK_IDENTIFIER {
-               $$ = unsmob_book ($1);
-               $$->protect ();
-               $$->origin ()->set_spot (@$);
+               unsmob_book ($1)->origin ()->set_spot (@$);
                parser->lexer_->set_identifier (ly_symbol2scm ("$current-book"), $1);
        }
        | book_body paper_block {
-               $$->paper_ = $2;
-               $2->unprotect ();
-               set_paper (parser, $2);
+               unsmob_book ($1)->paper_ = unsmob_output_def ($2);
+               set_paper (parser, unsmob_output_def ($2));
        }
        | book_body bookpart_block {
-               Book *bookpart = $2;
                SCM proc = parser->lexer_->lookup_identifier ("book-bookpart-handler");
-               scm_call_2 (proc, $$->self_scm (), bookpart->self_scm ());
-               bookpart->unprotect ();
+               scm_call_2 (proc, $1, $2);
        }
        | book_body score_block {
-               Score *score = $2;
                SCM proc = parser->lexer_->lookup_identifier ("book-score-handler");
-               scm_call_2 (proc, $$->self_scm (), score->self_scm ());
-               score->unprotect ();
+               scm_call_2 (proc, $1, $2);
        }
        | book_body composite_music {
-               Music *music = unsmob_music ($2);
                SCM proc = parser->lexer_->lookup_identifier ("book-music-handler");
-               scm_call_3 (proc, parser->self_scm (), $$->self_scm (), music->self_scm ());
+               scm_call_3 (proc, parser->self_scm (), $1, $2);
        }
        | book_body full_markup {
                SCM proc = parser->lexer_->lookup_identifier ("book-text-handler");
-               scm_call_2 (proc, $$->self_scm (), scm_list_1 ($2));
+               scm_call_2 (proc, $1, scm_list_1 ($2));
        }
        | book_body full_markup_list {
                SCM proc = parser->lexer_->lookup_identifier ("book-text-handler");
-               scm_call_2 (proc, $$->self_scm (), $2);
+               scm_call_2 (proc, $1, $2);
+       }
+       | book_body SCM_TOKEN {
+               // Evaluate and ignore #xxx, as opposed to \xxx
+               parser->lexer_->eval_scm_token ($2);
+       }
+       | book_body embedded_scm_active
+       {
+               SCM out = SCM_UNDEFINED;
+               if (Text_interface::is_markup ($2))
+                       out = scm_list_1 ($2);
+               else if (Text_interface::is_markup_list ($2))
+                       out = $2;
+               if (scm_is_pair (out))
+               {
+                       SCM proc = parser->lexer_->lookup_identifier ("book-text-handler");
+                       scm_call_2 (proc, $1, out);
+               } else if (!scm_is_eq ($2, SCM_UNSPECIFIED))
+                       parser->parser_error (@2, _("bad expression type"));
        }
        | book_body
        {
-               parser->lexer_->add_scope ($1->header_);
+               parser->lexer_->add_scope (unsmob_book ($1)->header_);
        } lilypond_header
-       | book_body embedded_scm { }
        | book_body error {
-               $$->paper_ = 0;
-               $$->scores_ = SCM_EOL;
-               $$->bookparts_ = SCM_EOL;
+                Book *book = unsmob_book ($1);
+               book->paper_ = 0;
+               book->scores_ = SCM_EOL;
+               book->bookparts_ = SCM_EOL;
        }
        ;
 
@@ -948,49 +756,63 @@ bookpart_block:
 
 bookpart_body:
        {
-               $$ = new Book;
-               $$->origin ()->set_spot (@$);
-               parser->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), $$->self_scm ());
+               Book *book = new Book;
+               book->origin ()->set_spot (@$);
+                $$ = book->unprotect ();
+               parser->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), $$);
        }
        | BOOK_IDENTIFIER {
-               $$ = unsmob_book ($1);
-               $$->protect ();
-               $$->origin ()->set_spot (@$);
+               unsmob_book ($1)->origin ()->set_spot (@$);
                parser->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), $1);
        }
        | bookpart_body paper_block {
-               $$->paper_ = $2;
-               $2->unprotect ();
+               unsmob_book ($$)->paper_ = unsmob_output_def ($2);
        }
        | bookpart_body score_block {
-               Score *score = $2;
                SCM proc = parser->lexer_->lookup_identifier ("bookpart-score-handler");
-               scm_call_2 (proc, $$->self_scm (), score->self_scm ());
-               score->unprotect ();
+               scm_call_2 (proc, $1, $2);
        }
        | bookpart_body composite_music {
-               Music *music = unsmob_music ($2);
                SCM proc = parser->lexer_->lookup_identifier ("bookpart-music-handler");
-               scm_call_3 (proc, parser->self_scm (), $$->self_scm (), music->self_scm ());
+               scm_call_3 (proc, parser->self_scm (), $1, $2);
        }
        | bookpart_body full_markup {
                SCM proc = parser->lexer_->lookup_identifier ("bookpart-text-handler");
-               scm_call_2 (proc, $$->self_scm (), scm_list_1 ($2));
+               scm_call_2 (proc, $1, scm_list_1 ($2));
        }
        | bookpart_body full_markup_list {
                SCM proc = parser->lexer_->lookup_identifier ("bookpart-text-handler");
-               scm_call_2 (proc, $$->self_scm (), $2);
+               scm_call_2 (proc, $1, $2);
+       }
+       | bookpart_body SCM_TOKEN {
+               // Evaluate and ignore #xxx, as opposed to \xxx
+               parser->lexer_->eval_scm_token ($2);
+       }
+       | bookpart_body embedded_scm_active
+       {
+               SCM out = SCM_UNDEFINED;
+               if (Text_interface::is_markup ($2))
+                       out = scm_list_1 ($2);
+               else if (Text_interface::is_markup_list ($2))
+                       out = $2;
+               if (scm_is_pair (out))
+               {
+                       SCM proc = parser->lexer_->lookup_identifier ("bookpart-text-handler");
+                       scm_call_2 (proc, $1, out);
+               } else if (!scm_is_eq ($2, SCM_UNSPECIFIED))
+                       parser->parser_error (@2, _("bad expression type"));
        }
        | bookpart_body
        {
-               if (!ly_is_module ($1->header_))
-                       $1->header_ = ly_make_module (false);
-               parser->lexer_->add_scope ($1->header_);
+                Book *book = unsmob_book ($1);
+               if (!ly_is_module (book->header_))
+                       book->header_ = ly_make_module (false);
+               parser->lexer_->add_scope (book->header_);
        } lilypond_header
-       | bookpart_body embedded_scm { }
        | bookpart_body error {
-               $$->paper_ = 0;
-               $$->scores_ = SCM_EOL;
+                Book *book = unsmob_book ($1);
+               book->paper_ = 0;
+               book->scores_ = SCM_EOL;
        }
        ;
 
@@ -1002,40 +824,43 @@ score_block:
 
 score_body:
        music {
-               SCM m = $1;
                SCM scorify = ly_lily_module_constant ("scorify-music");
-               SCM score = scm_call_2 (scorify, m, parser->self_scm ());
+               $$ = scm_call_2 (scorify, $1, parser->self_scm ());
 
-               // pass ownernship to C++ again.
-               $$ = unsmob_score (score);
-               $$->protect ();
-               $$->origin ()->set_spot (@$);
+               unsmob_score ($$)->origin ()->set_spot (@$);
        }
-       | SCORE_IDENTIFIER {
-               $$ = unsmob_score ($1);
-               $$->protect ();
-               $$->origin ()->set_spot (@$);
+       | embedded_scm_active {
+               Score *score;
+               if (unsmob_score ($1))
+                       score = new Score (*unsmob_score ($1));
+               else {
+                       score = new Score;
+                       parser->parser_error (@1, _("score expected"));
+               }
+               unsmob_score ($$)->origin ()->set_spot (@$);
+               $$ = score->unprotect ();
        }
        | score_body
        {
-               if (!ly_is_module ($1->get_header ()))
-                       $1->set_header (ly_make_module (false));
-               parser->lexer_->add_scope ($1->get_header ());
+                Score *score = unsmob_score ($1);
+               if (!ly_is_module (score->get_header ()))
+                       score->set_header (ly_make_module (false));
+               parser->lexer_->add_scope (score->get_header ());
        } lilypond_header
        | score_body output_def {
-               if ($2->lookup_variable (ly_symbol2scm ("is-paper")) == SCM_BOOL_T)
+                Output_def *od = unsmob_output_def ($2);
+               if (od->lookup_variable (ly_symbol2scm ("is-paper")) == SCM_BOOL_T)
                {
                        parser->parser_error (@2, _("\\paper cannot be used in \\score, use \\layout instead"));
 
                }
                else
                {
-                       $$->add_output_def ($2);
+                       unsmob_score ($1)->add_output_def (od);
                }
-               $2->unprotect ();
        }
        | score_body error {
-               $$->error_found_ = true;
+               unsmob_score ($$)->error_found_ = true;
        }
        ;
 
@@ -1046,12 +871,12 @@ score_body:
 
 paper_block:
        output_def {
-               $$ = $1;
-               if ($$->lookup_variable (ly_symbol2scm ("is-paper")) != SCM_BOOL_T)
+                Output_def *od = unsmob_output_def ($1);
+
+               if (od->lookup_variable (ly_symbol2scm ("is-paper")) != SCM_BOOL_T)
                {
                        parser->parser_error (@1, _ ("need \\paper for paper block"));
-                       $1->unprotect ();
-                       $$ = get_paper (parser);
+                       $$ = get_paper (parser)->unprotect ();
                }
        }
        ;
@@ -1068,20 +893,21 @@ output_def:
 
 output_def_head:
        PAPER {
-               $$ = get_paper (parser);
-               $$->input_origin_ = @$;
-               parser->lexer_->add_scope ($$->scope_);
+                Output_def *p = get_paper (parser);
+               p->input_origin_ = @$;
+               parser->lexer_->add_scope (p->scope_);
+                $$ = p->unprotect ();
        }
        | MIDI    {
                Output_def *p = get_midi (parser);
-               $$ = p;
+               $$ = p->unprotect ();
                parser->lexer_->add_scope (p->scope_);
        }
        | LAYOUT        {
                Output_def *p = get_layout (parser);
 
                parser->lexer_->add_scope (p->scope_);
-               $$ = p;
+               $$ = p->unprotect ();
        }
        ;
 
@@ -1114,20 +940,20 @@ music_or_context_def:
 output_def_body:
        output_def_head_with_mode_switch '{' {
                $$ = $1;
-               $$->input_origin_.set_spot (@$);
+               unsmob_output_def ($$)->input_origin_.set_spot (@$);
        }
        | output_def_head_with_mode_switch '{' OUTPUT_DEF_IDENTIFIER    {
-               $1->unprotect ();
-
                Output_def *o = unsmob_output_def ($3);
                o->input_origin_.set_spot (@$);
-               $$ = o;
-               $$->protect ();
+               $$ = o->self_scm ();
                parser->lexer_->remove_scope ();
                parser->lexer_->add_scope (o->scope_);
        }
        | output_def_body assignment  {
 
+       }
+       | output_def_body embedded_scm  {
+
        }
        | output_def_body
        {
@@ -1136,13 +962,13 @@ output_def_body:
        } music_or_context_def
        {
                if (unsmob_context_def ($3))
-                       assign_context_def ($$, $3);
+                       assign_context_def (unsmob_output_def ($1), $3);
                else {
 
                        SCM proc = parser->lexer_->lookup_identifier
                                     ("output-def-music-handler");
                        scm_call_3 (proc, parser->self_scm (),
-                                   $1->self_scm (), $3);
+                                   $1, $3);
                }
        }
        | output_def_body error {
@@ -1211,13 +1037,9 @@ music_embedded:
 music_arg:
        simple_music
        {
-               if (unsmob_pitch ($1)) {
-                       Music *n = MY_MAKE_MUSIC ("NoteEvent", @1);
-                       n->set_property ("pitch", $1);
-                       n->set_property ("duration",
-                                        parser->default_duration_.smobbed_copy ());
-                       $$ = n->unprotect ();
-               }
+               $$ = make_music_from_simple (parser, @1, $1);
+                if (!unsmob_music ($$))
+                        parser->parser_error (@1, _ ("music expected"));
        }
        | composite_music %prec COMPOSITE
        ;
@@ -1225,7 +1047,6 @@ music_arg:
 music_assign:
        simple_music
        | composite_music %prec COMPOSITE
-       | lyric_element_music
        ;
 
 repeated_music:
@@ -1303,7 +1124,8 @@ context_mod_list:
             $$ = Context_mod ().smobbed_copy ();
         }
         | context_mod_list context_mod  {
-                 unsmob_context_mod ($1)->add_context_mod ($2);
+               if (!SCM_UNBNDP ($2))
+                       unsmob_context_mod ($1)->add_context_mod ($2);
         }
         | context_mod_list CONTEXT_MOD_IDENTIFIER {
                  Context_mod *md = unsmob_context_mod ($2);
@@ -1346,6 +1168,34 @@ grouped_music_list:
  MUSIC_FUNCTION EXPECT_PITCH EXPECT_SCM EXPECT_SCM EXPECT_NO_MORE_ARGS
 and this rule returns the reversed list of arguments. */
 
+/* Function argument lists come in a number of flavors.  Whenever
+ * LilyPond has to pick between different flavors, the decision is
+ * either made because of tokens it has already seen, or it is
+ * postponed until tokens suitable for making the decision come up.
+ * For postponing decisions, it may be necessary that the competing
+ * rules are written in a way making them compatible until a decision
+ * can be made.  Sometimes this is done by putting common traits into
+ * a separate "common" rule set.
+ *
+ * function_arglist: a full argument list.  Optional arguments at the
+ * end of the list can only be skipped by writing \default in their
+ * place.
+ *
+ * function_arglist_backup: an argument list ending in an optional
+ * argument that may be skipped depending on its predicate.
+ *
+ * function_arglist_skip: an argument list _not_ ending in an optional
+ * argument that is actually taken.
+ *
+ * function_arglist_nonbackup: an argument list ending in an optional
+ * argument that may not be skipped because it is in end position and
+ * has not been shortcircuited with \default.
+ *
+ * function_arglist* / function_arglist_closed*: The closed variants
+ * don't end in simple music expressions that might still accept
+ * things like a duration or a postevent.
+ */
+
 function_arglist_skip:
        function_arglist_common
        | EXPECT_OPTIONAL EXPECT_PITCH function_arglist_skip
@@ -1370,7 +1220,7 @@ function_arglist_nonbackup_common:
        | EXPECT_OPTIONAL EXPECT_DURATION function_arglist_closed duration_length {
                $$ = scm_cons ($4, $3);
        }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_closed FRACTION
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist FRACTION
        {
                $$ = check_scheme_arg (parser, @4, $4, $3, $2);
        }
@@ -1386,11 +1236,8 @@ function_arglist_nonbackup_common:
                else {
                        Music *t = MY_MAKE_MUSIC ("FingeringEvent", @5);
                        t->set_property ("digit", $5);
-                       $$ = t->unprotect ();
-                       if (scm_is_true (scm_call_1 ($2, $$)))
-                               $$ = scm_cons ($$, $3);
-                       else
-                               $$ = check_scheme_arg (parser, @4, n, $3, $2);
+                       $$ = check_scheme_arg (parser, @4, t->unprotect (),
+                                              $3, $2, n);
                }
                
        }
@@ -1418,8 +1265,69 @@ function_arglist_closed_nonbackup:
        {
                $$ = check_scheme_arg (parser, @4, $4, $3, $2);
        }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist SCM_IDENTIFIER
+       {
+               $$ = check_scheme_arg (parser, @4,
+                                      try_string_variants ($2, $4),
+                                      $3, $2, $4);
+       }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist STRING
+       {
+               $$ = check_scheme_arg (parser, @4,
+                                      try_string_variants ($2, $4),
+                                      $3, $2, $4);
+       }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist LYRICS_STRING
+       {
+               $$ = check_scheme_arg (parser, @4,
+                                      try_string_variants ($2, $4),
+                                      $3, $2, $4);
+       }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist lyric_markup
+       {
+               $$ = check_scheme_arg (parser, @4, $4, $3, $2);
+       }
        ;
 
+symbol_list_arg:
+       SYMBOL_LIST
+       | SYMBOL_LIST '.' symbol_list_rev
+       {
+               $$ = scm_append (scm_list_2 ($1, scm_reverse_x ($3, SCM_EOL)));
+       }
+       ;
+
+symbol_list_rev:
+       symbol_list_part
+       | symbol_list_rev '.' symbol_list_part
+       {
+               $$ = scm_append_x (scm_list_2 ($3, $1));
+       }
+       ;
+
+// symbol_list_part delivers elements in reverse copy.
+
+symbol_list_part:
+       symbol_list_element
+       {
+               SCM sym_l_p = ly_lily_module_constant ("symbol-list?");
+               $$ = try_string_variants (sym_l_p, $1);
+               if (SCM_UNBNDP ($$)) {
+                       parser->parser_error (@1, _("not a symbol"));
+                       $$ = SCM_EOL;
+               } else
+                       $$ = scm_reverse ($$);
+       }
+       ;
+
+
+symbol_list_element:
+       STRING
+       | LYRICS_STRING
+       | embedded_scm_bare
+       ;
+
+
 function_arglist_nonbackup:
        function_arglist_nonbackup_common
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist embedded_scm_arg
@@ -1430,6 +1338,80 @@ function_arglist_nonbackup:
        {
                $$ = check_scheme_arg (parser, @4, $4, $3, $2);
        }
+       | function_arglist_nonbackup_reparse REPARSE SCM_ARG
+       {
+               $$ = check_scheme_arg (parser, @3, $3, $1, $2);
+       }
+       | function_arglist_nonbackup_reparse REPARSE lyric_element_music
+       {
+               $$ = check_scheme_arg (parser, @3, $3, $1, $2);
+       }
+       | function_arglist_nonbackup_reparse REPARSE symbol_list_arg
+       {
+               $$ = check_scheme_arg (parser, @3, $3, $1, $2);
+       }
+       ;
+
+function_arglist_nonbackup_reparse:
+       EXPECT_OPTIONAL EXPECT_SCM function_arglist SCM_IDENTIFIER
+       {
+               $$ = $3;
+               SCM res = try_string_variants ($2, $4);
+               if (!SCM_UNBNDP (res))
+                       if (scm_is_pair (res))
+                               MYREPARSE (@4, $2, SYMBOL_LIST, res);
+                       else
+                               MYREPARSE (@4, $2, SCM_ARG, res);
+               else if (scm_is_true
+                        (scm_call_1
+                         ($2, make_music_from_simple
+                          (parser, @4, $4))))
+                       MYREPARSE (@4, $2, LYRICS_STRING, $4);
+               else
+                       MYREPARSE (@4, $2, SCM_ARG, $4);
+       }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist LYRICS_STRING
+       {
+               $$ = $3;
+               SCM res = try_string_variants ($2, $4);
+               if (!SCM_UNBNDP (res))
+                       if (scm_is_pair (res))
+                               MYREPARSE (@4, $2, SYMBOL_LIST, res);
+                       else
+                               MYREPARSE (@4, $2, SCM_ARG, res);
+               else if (scm_is_true
+                        (scm_call_1
+                         ($2, make_music_from_simple
+                          (parser, @4, $4))))
+                       MYREPARSE (@4, $2, LYRICS_STRING, $4);
+               else
+                       MYREPARSE (@4, $2, SCM_ARG, $4);
+       }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist STRING
+       {
+               $$ = $3;
+               SCM res = try_string_variants ($2, $4);
+               if (!SCM_UNBNDP (res))
+                       if (scm_is_pair (res))
+                               MYREPARSE (@4, $2, SYMBOL_LIST, res);
+                       else
+                               MYREPARSE (@4, $2, SCM_ARG, res);
+               else
+                       MYREPARSE (@4, $2, SCM_ARG, $4);
+       }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist lyric_markup
+       {
+               $$ = $3;
+               if (scm_is_true (scm_call_1 ($2, $4)))
+                       MYREPARSE (@4, $2, SCM_ARG, $4);
+               else if (scm_is_true
+                        (scm_call_1
+                         ($2, make_music_from_simple
+                          (parser, @4, $4))))
+                       MYREPARSE (@4, $2, LYRICS_STRING, $4);
+               else
+                       MYREPARSE (@4, $2, SCM_ARG, $4);
+       }
        ;
 
 function_arglist_keep:
@@ -1450,7 +1432,7 @@ function_arglist_backup:
                        $$ = scm_cons ($4, $3);
                } else {
                        $$ = scm_cons (loc_on_music (@3, $1), $3);
-                       MYBACKUP (SCM_IDENTIFIER, $4, @4);
+                       MYBACKUP (SCM_ARG, $4, @4);
                }
        }
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_closed_keep post_event_nofinger
@@ -1463,21 +1445,13 @@ function_arglist_backup:
                        MYBACKUP (EVENT_IDENTIFIER, $4, @4);
                }
        }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_keep lyric_element
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_keep lyric_markup
        {
-               // There is no point interpreting a lyrics string as
-               // an event, since we don't allow music possibly
-               // followed by durations or postevent into closed
-               // music, and we only accept closed music in optional
-               // arguments at the moment.  If this changes, more
-               // complex schemes might become interesting here as
-               // well: see how we do this at the mandatory argument
-               // point.
                if (scm_is_true (scm_call_1 ($2, $4)))
                        $$ = scm_cons ($4, $3);
                else {
                        $$ = scm_cons (loc_on_music (@3, $1), $3);
-                       MYBACKUP (LYRICS_STRING, $4, @4);
+                       MYBACKUP (LYRIC_ELEMENT, $4, @4);
                }
        }
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_closed_keep UNSIGNED
@@ -1512,7 +1486,7 @@ function_arglist_backup:
                        MYBACKUP (NUMBER_IDENTIFIER, $4, @4);
                }
        }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_closed_keep FRACTION
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_keep FRACTION
        {
                if (scm_is_true (scm_call_1 ($2, $4)))
                {
@@ -1549,6 +1523,7 @@ function_arglist_backup:
                        MYREPARSE (@5, $2, REAL, n);
                        $$ = $3;
                } else {
+                       $$ = scm_cons (loc_on_music (@3, $1), $3);
                        MYBACKUP (REAL, n, @5);
                }
        }
@@ -1558,6 +1533,7 @@ function_arglist_backup:
                if (scm_is_true (scm_call_1 ($2, n))) {
                        $$ = scm_cons (n, $3);
                } else {
+                       $$ = scm_cons (loc_on_music (@3, $1), $3);
                        MYBACKUP (NUMBER_IDENTIFIER, n, @5);
                }
        }
@@ -1569,20 +1545,64 @@ function_arglist_backup:
        {
                $$ = scm_cons ($4, $3);
        }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_keep SCM_IDENTIFIER
+       {
+               SCM res = try_string_variants ($2, $4);
+               if (!SCM_UNBNDP (res))
+                       if (scm_is_pair (res)) {
+                               $$ = $3;
+                               MYREPARSE (@4, $2, SYMBOL_LIST, res);
+                       }
+                       else
+                               $$ = scm_cons (res, $3);
+               else {
+                       $$ = scm_cons (loc_on_music (@3, $1), $3);
+                       MYBACKUP (SCM_IDENTIFIER, $4, @4);
+               }
+       }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_keep STRING
+       {
+               SCM res = try_string_variants ($2, $4);
+               if (!SCM_UNBNDP (res))
+                       if (scm_is_pair (res)) {
+                               $$ = $3;
+                               MYREPARSE (@4, $2, SYMBOL_LIST, res);
+                       }
+                       else
+                               $$ = scm_cons (res, $3);
+               else {
+                       $$ = scm_cons (loc_on_music (@3, $1), $3);
+                       MYBACKUP (STRING, $4, @4);
+               }
+       }
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_keep LYRICS_STRING
+       {
+               SCM res = try_string_variants ($2, $4);
+               if (!SCM_UNBNDP (res))
+                       if (scm_is_pair (res)) {
+                               $$ = $3;
+                               MYREPARSE (@4, $2, SYMBOL_LIST, res);
+                       }
+                       else
+                               $$ = scm_cons (res, $3);
+               else {
+                       $$ = scm_cons (loc_on_music (@3, $1), $3);
+                       MYBACKUP (LYRICS_STRING, $4, @4);
+               }
+       }
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_backup BACKUP
        {
                $$ = scm_cons ($1, $3);
                MYBACKUP(0, SCM_UNDEFINED, @3);
        }
-       | function_arglist_backup REPARSE embedded_scm_arg_closed
+       | function_arglist_backup REPARSE bare_number
        {
                $$ = check_scheme_arg (parser, @3,
                                       $3, $1, $2);
        }
-       | function_arglist_backup REPARSE bare_number
+       | function_arglist_backup REPARSE symbol_list_arg
        {
-               $$ = check_scheme_arg (parser, @3,
-                                      $3, $1, $2);
+               $$ = check_scheme_arg (parser, @3, $3, $1, $2);
        }
        ;
 
@@ -1603,7 +1623,7 @@ function_arglist_common:
                $$ = check_scheme_arg (parser, @3,
                                       $3, $2, $1);
        }
-       | EXPECT_SCM function_arglist_closed_optional FRACTION
+       | EXPECT_SCM function_arglist_optional FRACTION
        {
                $$ = check_scheme_arg (parser, @3,
                                       $3, $2, $1);
@@ -1613,65 +1633,111 @@ function_arglist_common:
                $$ = check_scheme_arg (parser, @3,
                                       $3, $2, $1);
        }
-       | function_arglist_common_minus
-       | function_arglist_common_lyric
+       | EXPECT_SCM function_arglist_closed_optional '-' NUMBER_IDENTIFIER
+       {
+               SCM n = scm_difference ($4, SCM_UNDEFINED);
+               $$ = check_scheme_arg (parser, @4, n, $2, $1);
+       }
+       | function_arglist_common_reparse REPARSE SCM_ARG
+       {
+               $$ = check_scheme_arg (parser, @3,
+                                      $3, $1, $2);
+       }
+       | function_arglist_common_reparse REPARSE lyric_element_music
+       {
+               $$ = check_scheme_arg (parser, @3,
+                                      $3, $1, $2);
+       }
+       | function_arglist_common_reparse REPARSE bare_number
+       {
+               $$ = check_scheme_arg (parser, @3,
+                                      $3, $1, $2);
+       }
+       | function_arglist_common_reparse REPARSE symbol_list_arg
+       {
+               $$ = check_scheme_arg (parser, @3, $3, $1, $2);
+       }
        ;
 
-function_arglist_common_lyric:
-       EXPECT_SCM function_arglist_optional lyric_element
+function_arglist_common_reparse:
+       EXPECT_SCM function_arglist_optional SCM_IDENTIFIER
        {
-               // We check how the predicate thinks about a lyrics
-               // event or about a markup.  If it accepts neither, we
-               // backup the original token.  Otherwise we commit to
-               // taking the token.  Depending on what the predicate
-               // is willing to accept, we interpret as a string, as
-               // a lyric event, or ambiguously (meaning that if
-               // something looking like a duration or post event
-               // follows, we take the event, otherwise the string).
-               SCM lyric_event = MAKE_SYNTAX ("lyric-event", @3, $3,
-                                              parser->default_duration_.smobbed_copy ());
-               if (scm_is_true (scm_call_1 ($1, $3)))
-                       if (scm_is_true (scm_call_1 ($1, lyric_event)))
-                       {
-                               $$ = $2;
-                               MYREPARSE (@3, $1, LYRICS_STRING, $3);
-                       } else {
-                               $$ = scm_cons ($3, $2);
-                       }
-               else if (scm_is_true (scm_call_1 ($1, lyric_event)))
-               {
-                       $$ = $2;
+               $$ = $2;
+               SCM res = try_string_variants ($1, $3);
+               if (!SCM_UNBNDP (res))
+                       if (scm_is_pair (res))
+                               MYREPARSE (@3, $1, SYMBOL_LIST, res);
+                       else
+                               MYREPARSE (@3, $1, SCM_ARG, res);
+               else if (scm_is_true
+                        (scm_call_1
+                         ($1, make_music_from_simple (parser, @3, $3))))
                        MYREPARSE (@3, $1, LYRIC_ELEMENT, $3);
-               } else {
+               else
                        // This is going to flag a syntax error, we
                        // know the predicate to be false.
-                       check_scheme_arg (parser, @3,
-                                         $3, $2, $1);
-               }
+                       MYREPARSE (@3, $1, SCM_ARG, $3);
        }
-       | function_arglist_common_lyric REPARSE lyric_element_arg
+       | EXPECT_SCM function_arglist_optional STRING
        {
-               // This should never be false
-               $$ = check_scheme_arg (parser, @3,
-                                      $3, $1, $2);
+               $$ = $2;
+               SCM res = try_string_variants ($1, $3);
+               if (!SCM_UNBNDP (res))
+                       if (scm_is_pair (res))
+                               MYREPARSE (@3, $1, SYMBOL_LIST, res);
+                       else
+                               MYREPARSE (@3, $1, SCM_ARG, res);
+               else
+                       // This is going to flag a syntax error, we
+                       // know the predicate to be false.
+                       MYREPARSE (@3, $1, SCM_ARG, $3);
        }
-       ;
-
-function_arglist_common_minus:
-       EXPECT_SCM function_arglist_closed_optional '-' UNSIGNED
+       | EXPECT_SCM function_arglist_optional LYRICS_STRING
        {
+               $$ = $2;
+               SCM res = try_string_variants ($1, $3);
+               if (!SCM_UNBNDP (res))
+                       if (scm_is_pair (res))
+                               MYREPARSE (@3, $1, SYMBOL_LIST, res);
+                       else
+                               MYREPARSE (@3, $1, SCM_ARG, res);
+               else if (scm_is_true
+                        (scm_call_1
+                         ($1, make_music_from_simple (parser, @3, $3))))
+                       MYREPARSE (@3, $1, LYRIC_ELEMENT, $3);
+               else
+                       // This is going to flag a syntax error, we
+                       // know the predicate to be false.
+                       MYREPARSE (@3, $1, SCM_ARG, $3);
+       }
+       | EXPECT_SCM function_arglist_optional lyric_markup
+       {
+               $$ = $2;
+               if (scm_is_true (scm_call_1 ($1, $3)))
+                       MYREPARSE (@3, $1, SCM_ARG, $3);
+               else if (scm_is_true
+                        (scm_call_1
+                         ($1, make_music_from_simple (parser, @3, $3))))
+                       MYREPARSE (@3, $1, LYRIC_ELEMENT, $3);
+               else
+                       // This is going to flag a syntax error, we
+                       // know the predicate to be false.
+                       MYREPARSE (@3, $1, SCM_ARG, $3);
+       }
+       | EXPECT_SCM function_arglist_closed_optional '-' UNSIGNED
+       {
+               $$ = $2;
                SCM n = scm_difference ($4, SCM_UNDEFINED);
-               if (scm_is_true (scm_call_1 ($1, n))) {
-                       $$ = $2;
+               if (scm_is_true (scm_call_1 ($1, n)))
                        MYREPARSE (@4, $1, REAL, n);
-               else {
+               else {
                        Music *t = MY_MAKE_MUSIC ("FingeringEvent", @4);
                        t->set_property ("digit", $4);
-                       $$ = t->unprotect ();
-                       if (scm_is_true (scm_call_1 ($1, $$)))
-                               $$ = scm_cons ($$, $2);
+                       SCM m = t->unprotect ();
+                       if (scm_is_true (scm_call_1 ($1, m)))
+                               MYREPARSE (@4, $1, SCM_ARG, m);
                        else
-                               $$ = check_scheme_arg (parser, @3, n, $2, $1);
+                               MYREPARSE (@4, $1, SCM_ARG, $4);
                }
                
        }
@@ -1681,15 +1747,6 @@ function_arglist_common_minus:
                SCM n = scm_difference ($4, SCM_UNDEFINED);
                MYREPARSE (@4, $1, REAL, n);
        }
-       | EXPECT_SCM function_arglist_closed_optional '-' NUMBER_IDENTIFIER
-       {
-               SCM n = scm_difference ($4, SCM_UNDEFINED);
-               $$ = check_scheme_arg (parser, @4, n, $2, $1);
-       }
-       | function_arglist_common_minus REPARSE bare_number
-       {
-               $$ = check_scheme_arg (parser, @3, $3, $1, $2);
-       }
        ;
 
 function_arglist_closed:
@@ -1709,28 +1766,6 @@ function_arglist_closed_common:
                $$ = check_scheme_arg (parser, @3,
                                       $3, $2, $1);
        }
-       | EXPECT_SCM function_arglist_closed_optional '-' UNSIGNED
-       {
-               SCM n = scm_difference ($4, SCM_UNDEFINED);
-               if (scm_is_true (scm_call_1 ($1, n))) {
-                       $$ = scm_cons (n, $2);
-               } else {
-                       Music *t = MY_MAKE_MUSIC ("FingeringEvent", @4);
-                       t->set_property ("digit", $4);
-                       $$ = t->unprotect ();
-                       if (scm_is_true (scm_call_1 ($1, $$)))
-                               $$ = scm_cons ($$, $2);
-                       else
-                               $$ = check_scheme_arg (parser, @3, n, $2, $1);
-               }
-               
-       }
-       | EXPECT_SCM function_arglist_closed_optional '-' REAL
-       {
-               $$ = check_scheme_arg (parser, @3,
-                                      scm_difference ($4, SCM_UNDEFINED),
-                                      $2, $1);
-       }
        | EXPECT_SCM function_arglist_closed_optional '-' NUMBER_IDENTIFIER
        {
                $$ = check_scheme_arg (parser, @3,
@@ -1742,15 +1777,24 @@ function_arglist_closed_common:
                $$ = check_scheme_arg (parser, @3,
                                       $3, $2, $1);
        }
-       | EXPECT_SCM function_arglist_closed_optional FRACTION
+       | EXPECT_SCM function_arglist_optional FRACTION
        {
                $$ = check_scheme_arg (parser, @3,
                                       $3, $2, $1);
        }
-       | EXPECT_SCM function_arglist_optional lyric_element
+       | function_arglist_common_reparse REPARSE SCM_ARG
        {
                $$ = check_scheme_arg (parser, @3,
-                                      $3, $2, $1);
+                                      $3, $1, $2);
+       }
+       | function_arglist_common_reparse REPARSE bare_number
+       {
+               $$ = check_scheme_arg (parser, @3,
+                                      $3, $1, $2);
+       }
+       | function_arglist_common_reparse REPARSE symbol_list_arg
+       {
+               $$ = check_scheme_arg (parser, @3, $3, $1, $2);
        }
        ;
 
@@ -1982,19 +2026,13 @@ context_change:
        ;
 
 
-property_path_revved:
-       embedded_scm_closed {
-               $$ = scm_cons ($1, SCM_EOL);
-       }
-       | property_path_revved embedded_scm_closed {
-               $$ = scm_cons ($2, $1);
-       }
-       ;
-
 property_path:
-       property_path_revved  {
+       symbol_list_rev  {
                $$ = scm_reverse_x ($1, SCM_EOL);
        }
+       | symbol_list_rev property_path {
+               $$ = scm_reverse_x ($1, $2);
+       }
        ;
 
 property_operation:
@@ -2006,17 +2044,75 @@ property_operation:
                $$ = scm_list_2 (ly_symbol2scm ("unset"),
                        scm_string_to_symbol ($2));
        }
-       | OVERRIDE simple_string property_path '=' scalar {
-               $$ = scm_append (scm_list_2 (scm_list_3 (ly_symbol2scm ("push"),
-                                                       scm_string_to_symbol ($2), $5),
-                                            $3));
+       | OVERRIDE property_path '=' scalar {
+               if (scm_ilength ($2) < 2) {
+                       parser->parser_error (@2, _("bad grob property path"));
+                       $$ = SCM_UNDEFINED;
+               } else {
+                       $$ = scm_cons (ly_symbol2scm ("push"),
+                                      scm_cons2 (scm_car ($2),
+                                                 $4,
+                                                 scm_cdr ($2)));
+               }
        }
-       | REVERT simple_string embedded_scm {
+       | REVERT revert_arg {
                $$ = scm_list_3 (ly_symbol2scm ("pop"),
-                       scm_string_to_symbol ($2), $3);
+                                scm_car ($2),
+                                scm_cdr ($2));
+       }
+       ;
+
+// This is all quite awkward for the sake of substantial backward
+// compatibility while at the same time allowing a more "natural" form
+// of specification not separating grob specification from grob
+// property path.  The purpose of this definition of revert_arg is to
+// allow the symbol list which specifies grob and property to revert
+// to be optionally be split into two parts after the grob (which in
+// this case is just the first element of the list).  symbol_list_part
+// is only one path component, but it can be parsed without lookahead,
+// so we can follow it with a synthetic BACKUP token when needed.  If
+// the first symbol_list_part already contains multiple elements (only
+// possible if a Scheme expression provides them), we just parse for
+// additional elements introduced by '.', which is what the
+// SYMBOL_LIST backup in connection with the immediately following
+// rule using symbol_list_arg does.
+//
+// As long as we don't have our coffers filled with both grob and at
+// least one grob property specification, the rest of the required
+// symbol list chain may be provided either with or without a leading
+// dot.  This is for both allowing the traditional
+// \revert Accidental #'color
+// as well as well as the "naive" form
+// \revert Accidental.color
+
+revert_arg:
+       revert_arg_part
+       {
+               if (scm_is_null ($1)
+                   || scm_is_null (scm_cdr ($1)))
+                       MYBACKUP (SCM_ARG, $1, @1);
+               else
+                       MYBACKUP (SYMBOL_LIST, scm_reverse_x ($1, SCM_EOL), @1);
+       }
+       | revert_arg BACKUP symbol_list_arg
+       {
+               $$ = $3;
        }
        ;
 
+// revert_arg_part delivers results in reverse
+revert_arg_part:
+       symbol_list_part
+       | revert_arg BACKUP SCM_ARG '.' symbol_list_part
+       {
+               $$ = scm_append_x (scm_list_2 ($5, $3));
+       }
+       | revert_arg BACKUP SCM_ARG symbol_list_part
+       {
+               $$ = scm_append_x (scm_list_2 ($4, $3));
+       }               
+       ;
+
 context_def_mod:
        CONSISTS { $$ = ly_symbol2scm ("consists"); }
        | REMOVE { $$ = ly_symbol2scm ("remove"); }
@@ -2052,52 +2148,141 @@ context_mod:
        }
        ;
 
-context_prop_spec:
-       simple_string {
-               if (!is_regular_identifier ($1))
+// If defined, at least two members.
+grob_prop_spec:
+       symbol_list_rev
+       {
+               SCM l = scm_reverse_x ($1, SCM_EOL);
+               if (scm_is_pair (l)
+                   && to_boolean
+                   (scm_object_property (scm_car (l),
+                                         ly_symbol2scm ("is-grob?"))))
+                       l = scm_cons (ly_symbol2scm ("Bottom"), l);
+               if (scm_is_null (l) || scm_is_null (scm_cdr (l))) {
+                       parser->parser_error (@1, _ ("bad grob property path"));
+                       l = SCM_UNDEFINED;
+               }
+               $$ = l;
+       }
+       ;
+
+// If defined, at least three members
+grob_prop_path:
+       grob_prop_spec
+       {
+               if (!SCM_UNBNDP ($1) && scm_is_null (scm_cddr ($1)))
                {
-                       @$.error (_("Grob name should be alphanumeric"));
+                       parser->parser_error (@1, _ ("bad grob property path"));
+                       $$ = SCM_UNDEFINED;
+               }
+       }
+       | grob_prop_spec property_path
+       {
+               if (!SCM_UNBNDP ($1)) {
+                       $$ = scm_append_x (scm_list_2 ($1, $2));
+                       if (scm_is_null (scm_cddr ($$))) {
+                               parser->parser_error (@$, _ ("bad grob property path"));
+                               $$ = SCM_UNDEFINED;
+                       }
                }
 
-               $$ = scm_list_2 (ly_symbol2scm ("Bottom"),
-                       scm_string_to_symbol ($1));
        }
-       | simple_string '.' simple_string {
-               $$ = scm_list_2 (scm_string_to_symbol ($1),
-                       scm_string_to_symbol ($3));
+       ;
+
+// Exactly two elements or undefined
+context_prop_spec:
+       symbol_list_rev
+       {
+               SCM l = scm_reverse_x ($1, SCM_EOL);
+               switch (scm_ilength (l)) {
+               case 1:
+                       l = scm_cons (ly_symbol2scm ("Bottom"), l);
+               case 2:
+                       break;
+               default:
+                       parser->parser_error (@1, _ ("bad context property path"));
+                       l = SCM_UNDEFINED;
+               }
+               $$ = l;
        }
        ;
 
 simple_music_property_def:
-       OVERRIDE context_prop_spec property_path '=' scalar {
-               $$ = scm_append (scm_list_2 (scm_list_n (scm_car ($2),
-                               ly_symbol2scm ("OverrideProperty"),
-                               scm_cadr ($2),
-                               $5, SCM_UNDEFINED),
-                               $3));
-       }
-       | REVERT context_prop_spec embedded_scm {
-               $$ = scm_list_4 (scm_car ($2),
-                       ly_symbol2scm ("RevertProperty"),
-                       scm_cadr ($2),
-                       $3);
+       OVERRIDE grob_prop_path '=' scalar {
+               if (SCM_UNBNDP ($2))
+                       $$ = SCM_UNDEFINED;
+               else {
+                       $$ = scm_list_5 (scm_car ($2),
+                                        ly_symbol2scm ("OverrideProperty"),
+                                        scm_cadr ($2),
+                                        $4,
+                                        scm_cddr ($2));
+               }
+       }
+       | REVERT simple_revert_context revert_arg {
+               $$ = scm_list_4 ($2,
+                                ly_symbol2scm ("RevertProperty"),
+                                scm_car ($3),
+                                scm_cdr ($3));
        }
        | SET context_prop_spec '=' scalar {
-               $$ = scm_list_4 (scm_car ($2),
-                       ly_symbol2scm ("PropertySet"),
-                       scm_cadr ($2),
-                       $4);
+               if (SCM_UNBNDP ($2))
+                       $$ = SCM_UNDEFINED;
+               else
+                       $$ = scm_list_4 (scm_car ($2),
+                                        ly_symbol2scm ("PropertySet"),
+                                        scm_cadr ($2),
+                                        $4);
        }
        | UNSET context_prop_spec {
-               $$ = scm_list_3 (scm_car ($2),
-                       ly_symbol2scm ("PropertyUnset"),
-                       scm_cadr ($2));
+               if (SCM_UNBNDP ($2))
+                       $$ = SCM_UNDEFINED;
+               else
+                       $$ = scm_list_3 (scm_car ($2),
+                                        ly_symbol2scm ("PropertyUnset"),
+                                        scm_cadr ($2));
+       }
+       ;
+
+
+// This is all quite awkward for the sake of substantial backward
+// compatibility while at the same time allowing a more "natural" form
+// of specification not separating grob specification from grob
+// property path.  The purpose of this definition of
+// simple_revert_context is to allow the symbol list which specifies
+// grob and property to revert to be optionally be split into two
+// parts after the grob (which may be preceded by a context
+// specification, a case which we distinguish by checking whether the
+// first symbol is a valid grob symbol instead).
+//
+// See revert_arg above for the main work horse of this arrangement.
+// simple_revert_context just caters for the context and delegates the
+// rest of the job to revert_arg.
+
+simple_revert_context:
+       symbol_list_part
+       {
+               $1 = scm_reverse_x ($1, SCM_EOL);
+               if (scm_is_null ($1)
+                   || to_boolean
+                   (scm_object_property (scm_car ($1),
+                                         ly_symbol2scm ("is-grob?")))) {
+                       $$ = ly_symbol2scm ("Bottom");
+                       parser->lexer_->push_extra_token (SCM_IDENTIFIER, $1);
+               } else {
+                       $$ = scm_car ($1);
+                       parser->lexer_->push_extra_token (SCM_IDENTIFIER,
+                                                         scm_cdr ($1));
+               }
        }
        ;
 
 music_property_def:
        simple_music_property_def {
-               $$ = LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("property-operation"), scm_cons2 (parser->self_scm (), make_input (@$), $1));
+               if (SCM_UNBNDP ($1))
+                       $$ = MAKE_SYNTAX ("void-music", @1);
+               else
+                       $$ = LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("property-operation"), scm_cons2 (parser->self_scm (), make_input (@$), $1));
        }
        ;
 
@@ -2105,10 +2290,16 @@ string:
        STRING {
                $$ = $1;
        }
-       | STRING_IDENTIFIER {
-               $$ = $1;
-       }
+       | full_markup
        | string '+' string {
+               if (!scm_is_string ($1)) {
+                       parser->parser_error (@1, (_ ("simple string expected")));
+                       $1 = scm_string (SCM_EOL);
+               }
+               if (!scm_is_string ($3)) {
+                       parser->parser_error (@3, (_ ("simple string expected")));
+                       $3 = scm_string (SCM_EOL);
+               }
                $$ = scm_string_append (scm_list_2 ($1, $3));
        }
        ;
@@ -2119,23 +2310,33 @@ simple_string: STRING {
        | LYRICS_STRING {
                $$ = $1;
        }
-       | STRING_IDENTIFIER {
-               $$ = $1;
+       | embedded_scm_bare
+       {
+               if (scm_is_string ($1)) {
+                       $$ = $1;
+               } else {
+                       parser->parser_error (@1, (_ ("simple string expected")));
+                       $$ = scm_string (SCM_EOL);
+               }
        }
        ;
 
 scalar:
        embedded_scm_arg
+       | SCM_IDENTIFIER
        | bare_number
        | FRACTION
        | lyric_element
+       | STRING
        ;
 
 scalar_closed:
        embedded_scm_arg_closed
+       | SCM_IDENTIFIER
        | bare_number
        | FRACTION
        | lyric_element
+       | STRING
        ;
 
 
@@ -2143,15 +2344,12 @@ event_chord:
        simple_element post_events {
                // Let the rhythmic music iterator sort this mess out.
                if (scm_is_pair ($2)) {
-                       if (unsmob_pitch ($1)) {
-                               Music *n = MY_MAKE_MUSIC ("NoteEvent", @1);
-                               n->set_property ("pitch", $1);
-                               n->set_property ("duration",
-                                                parser->default_duration_.smobbed_copy ());
-                               $$ = n->unprotect ();
-                       }
-                       unsmob_music ($$)->set_property ("articulations",
-                                                        scm_reverse_x ($2, SCM_EOL));
+                       $$ = make_music_from_simple (parser, @1, $1);
+                       if (unsmob_music ($$))
+                                unsmob_music ($$)->set_property ("articulations",
+                                                                 scm_reverse_x ($2, SCM_EOL));
+                        else
+                                parser->parser_error (@1, _("music expected"));
                }
        }
        | simple_chord_elements post_events     {
@@ -2216,16 +2414,16 @@ chord_body_elements:
 chord_body_element:
        pitch exclamations questions octave_check post_events
        {
-               int q = $3;
-               int ex = $2;
+               bool q = to_boolean ($3);
+               bool ex = to_boolean ($2);
                SCM check = $4;
                SCM post = $5;
 
                Music *n = MY_MAKE_MUSIC ("NoteEvent", @$);
                n->set_property ("pitch", $1);
-               if (q % 2)
+               if (q)
                        n->set_property ("cautionary", SCM_BOOL_T);
-               if (ex % 2 || q % 2)
+                if (ex || q)
                        n->set_property ("force-accidental", SCM_BOOL_T);
 
                if (scm_is_pair (post)) {
@@ -2349,9 +2547,9 @@ post_event_nofinger:
        }
        | script_dir music_function_call_closed {
                $$ = $2;
-               if ($1)
+               if (!SCM_UNBNDP ($1))
                {
-                       unsmob_music ($$)->set_property ("direction", scm_from_int ($1));
+                       unsmob_music ($$)->set_property ("direction", $1);
                }
        }
        | HYPHEN {
@@ -2365,18 +2563,18 @@ post_event_nofinger:
                $$ = MY_MAKE_MUSIC ("ExtenderEvent", @$)->unprotect ();
        }
        | script_dir direction_reqd_event {
-               if ($1)
+               if (!SCM_UNBNDP ($1))
                {
                        Music *m = unsmob_music ($2);
-                       m->set_property ("direction", scm_from_int ($1));
+                       m->set_property ("direction", $1);
                }
                $$ = $2;
        }
        | script_dir direction_less_event {
-               if ($1)
+               if (!SCM_UNBNDP ($1))
                {
                        Music *m = unsmob_music ($2);
-                       m->set_property ("direction", scm_from_int ($1));
+                       m->set_property ("direction", $1);
                }
                $$ = $2;
        }
@@ -2402,7 +2600,7 @@ post_event:
 string_number_event:
        E_UNSIGNED {
                Music *s = MY_MAKE_MUSIC ("StringNumberEvent", @$);
-               s->set_property ("string-number", scm_from_int ($1));
+               s->set_property ("string-number", $1);
                $$ = s->unprotect ();
        }
        ;
@@ -2461,7 +2659,7 @@ direction_less_event:
        }
        | tremolo_type  {
                Music *a = MY_MAKE_MUSIC ("TremoloEvent", @$);
-               a->set_property ("tremolo-type", scm_from_int ($1));
+               a->set_property ("tremolo-type", $1);
                $$ = a->unprotect ();
         }
        | event_function_event  
@@ -2483,42 +2681,44 @@ direction_reqd_event:
 
 octave_check:
        /**/ { $$ = SCM_EOL; }
-       | '='  { $$ = scm_from_int (0); }
-       | '=' sub_quotes { $$ = scm_from_int (-$2); }
-       | '=' sup_quotes { $$ = scm_from_int ($2); }
+       | '=' quotes { $$ = $2; }
        ;
 
+quotes:
+       /* empty */
+       {
+                $$ = SCM_INUM0;
+        }
+       | sub_quotes
+        | sup_quotes
+        ;
+
 sup_quotes:
        '\'' {
-               $$ = 1;
+               $$ = scm_from_int (1);
        }
        | sup_quotes '\'' {
-               $$ ++;
+               $$ = scm_oneplus ($1);
        }
        ;
 
 sub_quotes:
        ',' {
-               $$ = 1;
+               $$ = scm_from_int (-1);
        }
        | sub_quotes ',' {
-               $$++;
+               $$ = scm_oneminus ($1);
        }
        ;
 
 steno_pitch:
-       NOTENAME_PITCH  {
-               $$ = $1;
-       }
-       | NOTENAME_PITCH sup_quotes     {
-               Pitch p = *unsmob_pitch ($1);
-               p = p.transposed (Pitch ($2,0,0));
-               $$ = p.smobbed_copy ();
-       }
-       | NOTENAME_PITCH sub_quotes      {
-               Pitch p =* unsmob_pitch ($1);
-               p = p.transposed (Pitch (-$2,0,0));
-               $$ = p.smobbed_copy ();
+       NOTENAME_PITCH quotes {
+                if (!scm_is_eq (SCM_INUM0, $2))
+                {
+                        Pitch p = *unsmob_pitch ($1);
+                        p = p.transposed (Pitch (scm_to_int ($2),0,0));
+                        $$ = p.smobbed_copy ();
+                }
        }
        ;
 
@@ -2527,26 +2727,18 @@ ugh. duplication
 */
 
 steno_tonic_pitch:
-       TONICNAME_PITCH {
-               $$ = $1;
-       }
-       | TONICNAME_PITCH sup_quotes    {
-               Pitch p = *unsmob_pitch ($1);
-               p = p.transposed (Pitch ($2,0,0));
-               $$ = p.smobbed_copy ();
-       }
-       | TONICNAME_PITCH sub_quotes     {
-               Pitch p = *unsmob_pitch ($1);
-
-               p = p.transposed (Pitch (-$2,0,0));
-               $$ = p.smobbed_copy ();
+       TONICNAME_PITCH quotes {
+                if (!scm_is_eq (SCM_INUM0, $2))
+                {
+                        Pitch p = *unsmob_pitch ($1);
+                        p = p.transposed (Pitch (scm_to_int ($2),0,0));
+                        $$ = p.smobbed_copy ();
+                }
        }
        ;
 
 pitch:
-       steno_pitch {
-               $$ = $1;
-       }
+       steno_pitch
        | PITCH_IDENTIFIER
        ;
 
@@ -2561,12 +2753,30 @@ gen_text_def:
                t->set_property ("text", $1);
                $$ = t->unprotect ();
        }
-       | simple_string {
+       | STRING {
                Music *t = MY_MAKE_MUSIC ("TextScriptEvent", @$);
                t->set_property ("text",
                        make_simple_markup ($1));
                $$ = t->unprotect ();
        }
+       | LYRICS_STRING {
+               Music *t = MY_MAKE_MUSIC ("TextScriptEvent", @$);
+               t->set_property ("text",
+                       make_simple_markup ($1));
+               $$ = t->unprotect ();
+       }
+       | embedded_scm_closed
+       {
+               Music *m = unsmob_music ($1);
+               if (m && m->is_mus_type ("post-event"))
+                       $$ = $1;
+               else if (Text_interface::is_markup ($1)) {
+                       Music *t = MY_MAKE_MUSIC ("TextScriptEvent", @$);
+                       t->set_property ("text", $1);
+                       $$ = t->unprotect ();
+               } else
+                       parser->parser_error (@1, _ ("not an articulation"));
+       }
        ;
 
 fingering:
@@ -2602,9 +2812,9 @@ script_abbreviation:
        ;
 
 script_dir:
-       '_'     { $$ = DOWN; }
-       | '^'   { $$ = UP; }
-       | '-'   { $$ = CENTER; }
+       '_'     { $$ = scm_from_int (DOWN); }
+       | '^'   { $$ = scm_from_int (UP); }
+       | '-'   { $$ = SCM_UNDEFINED; }
        ;
 
 duration_length:
@@ -2633,21 +2843,23 @@ optional_notemode_duration:
        ;
 
 steno_duration:
-       bare_unsigned dots              {
+       UNSIGNED dots           {
                int len = 0;
-               if (!is_duration ($1))
-                       parser->parser_error (@1, _f ("not a duration: %d", $1));
+                int n = scm_to_int ($1);
+               if (!is_duration (n))
+                       parser->parser_error (@1, _f ("not a duration: %d", n));
                else
-                       len = intlog2 ($1);
+                       len = intlog2 (n);
 
-               $$ = Duration (len, $2).smobbed_copy ();
+               $$ = Duration (len, scm_to_int ($2)).smobbed_copy ();
        }
        | DURATION_IDENTIFIER dots      {
                Duration *d = unsmob_duration ($1);
-               Duration k (d->duration_log (), d->dot_count () + $2);
+               Duration k (d->duration_log (),
+                            d->dot_count () + scm_to_int ($2));
                k = k.compressed (d->factor ());
-               *d = k;
-               $$ = $1;
+                scm_remember_upto_here_1 ($1);
+               $$ = k.smobbed_copy ();
        }
        ;
 
@@ -2655,8 +2867,8 @@ multiplied_duration:
        steno_duration {
                $$ = $1;
        }
-       | multiplied_duration '*' bare_unsigned {
-               $$ = unsmob_duration ($$)->compressed ( $3) .smobbed_copy ();
+       | multiplied_duration '*' UNSIGNED {
+               $$ = unsmob_duration ($$)->compressed (scm_to_int ($3)).smobbed_copy ();
        }
        | multiplied_duration '*' FRACTION {
                Rational  m (scm_to_int (scm_car ($3)), scm_to_int (scm_cdr ($3)));
@@ -2667,20 +2879,21 @@ multiplied_duration:
 
 dots:
        /* empty */     {
-               $$ = 0;
+               $$ = SCM_INUM0;
        }
        | dots '.' {
-               $$ ++;
+               $$ = scm_oneplus ($1);
        }
        ;
 
 tremolo_type:
        ':'     {
-               $$ = 0;
+               $$ = SCM_INUM0;
        }
-       | ':' bare_unsigned {
-               if (!is_duration ($2))
-                       parser->parser_error (@2, _f ("not a duration: %d", $2));
+       | ':' UNSIGNED {
+                int n = scm_to_int ($2);
+               if (!is_duration (n))
+                       parser->parser_error (@2, _f ("not a duration: %d", n));
                $$ = $2;
        }
        ;
@@ -2689,6 +2902,18 @@ bass_number:
        UNSIGNED { $$ = $1; }
        | STRING { $$ = $1; }
        | full_markup { $$ = $1; }
+       | embedded_scm_bare
+       {
+               // as an integer, it needs to be non-negative, and otherwise
+               // it needs to be suitable as a markup.
+               if (scm_is_integer ($1)
+                   ? scm_is_true (scm_negative_p ($1))
+                   : !Text_interface::is_markup ($1))
+               {
+                       parser->parser_error (@1, _ ("bass number expected"));
+                       $$ = SCM_INUM0;
+               }
+       }
        ;
 
 figured_bass_alteration:
@@ -2792,18 +3017,22 @@ figure_spec:
 
 
 optional_rest:
-       /**/   { $$ = 0; }
-       | REST { $$ = 1; }
+       /**/   { $$ = SCM_BOOL_F; }
+       | REST { $$ = SCM_BOOL_T; }
        ;
 
 simple_element:
        pitch exclamations questions octave_check maybe_notemode_duration optional_rest {
                if (!parser->lexer_->is_note_state ())
                        parser->parser_error (@1, _ ("have to be in Note mode for notes"));
-               if ($2 || $3 || scm_is_number ($4) || !SCM_UNBNDP ($5) || $6)
+               if (!SCM_UNBNDP ($2)
+                    || !SCM_UNBNDP ($3)
+                    || scm_is_number ($4)
+                    || !SCM_UNBNDP ($5)
+                    || scm_is_true ($6))
                {
                        Music *n = 0;
-                       if ($6)
+                       if (scm_is_true ($6))
                                n = MY_MAKE_MUSIC ("RestEvent", @$);
                        else
                                n = MY_MAKE_MUSIC ("NoteEvent", @$);
@@ -2821,9 +3050,9 @@ simple_element:
                                n->set_property ("absolute-octave", scm_from_int (q-1));
                        }
                        
-                       if ($3 % 2)
+                       if (to_boolean ($3))
                                n->set_property ("cautionary", SCM_BOOL_T);
-                       if ($2 % 2 || $3 % 2)
+                       if (to_boolean ($2) || to_boolean ($3))
                                n->set_property ("force-accidental", SCM_BOOL_T);
                        
                        $$ = n->unprotect ();
@@ -2873,31 +3102,9 @@ lyric_element:
        | LYRICS_STRING {
                $$ = $1;
        }
+       | LYRIC_ELEMENT
        ;
 
-lyric_element_arg:
-       lyric_element
-       | lyric_element multiplied_duration post_events {
-               $$ = MAKE_SYNTAX ("lyric-event", @$, $1, $2);
-               if (scm_is_pair ($3))
-                       unsmob_music ($$)->set_property
-                               ("articulations", scm_reverse_x ($3, SCM_EOL));
-       }
-       | lyric_element post_event post_events {
-               $$ = MAKE_SYNTAX ("lyric-event", @$, $1,
-                                 parser->default_duration_.smobbed_copy ());
-               unsmob_music ($$)->set_property
-                       ("articulations", scm_cons ($2, scm_reverse_x ($3, SCM_EOL)));
-       }
-       | LYRIC_ELEMENT optional_notemode_duration post_events {
-               $$ = MAKE_SYNTAX ("lyric-event", @$, $1, $2);
-               if (scm_is_pair ($3))
-                       unsmob_music ($$)->set_property
-                               ("articulations", scm_reverse_x ($3, SCM_EOL));
-       }
-       ;
-
-
 lyric_element_music:
        lyric_element optional_notemode_duration post_events {
                $$ = MAKE_SYNTAX ("lyric-event", @$, $1, $2);
@@ -2961,23 +3168,23 @@ step_numbers:
        ;
 
 step_number:
-       bare_unsigned {
+       UNSIGNED {
                $$ = make_chord_step ($1, 0);
         }
-       | bare_unsigned '+' {
+       | UNSIGNED '+' {
                $$ = make_chord_step ($1, SHARP_ALTERATION);
        }
-       | bare_unsigned CHORD_MINUS {
+       | UNSIGNED CHORD_MINUS {
                $$ = make_chord_step ($1, FLAT_ALTERATION);
        }
        ;
 
 tempo_range:
-       bare_unsigned {
-               $$ = scm_from_int ($1);
+       UNSIGNED {
+               $$ = $1;
        }
-       | bare_unsigned '~' bare_unsigned {
-               $$ = scm_cons (scm_from_int ($1), scm_from_int ($3));
+       | UNSIGNED '~' UNSIGNED {
+               $$ = scm_cons ($1, $3);
        }
        ;
 
@@ -3033,25 +3240,31 @@ bare_number_closed:
        | NUMBER_IDENTIFIER
        ;
 
-bare_unsigned:
-       UNSIGNED {
-               $$ = scm_to_int ($1);
-       }
-       ;
-
 unsigned_number:
        UNSIGNED
        | NUMBER_IDENTIFIER
        ;
 
 exclamations:
-               { $$ = 0; }
-       | exclamations '!'      { $$ ++; }
+               { $$ = SCM_UNDEFINED; }
+       | exclamations '!'
+        {
+                if (SCM_UNBNDP ($1))
+                        $$ = SCM_BOOL_T;
+                else
+                        $$ = scm_not ($1);
+        }
        ;
 
 questions:
-               { $$ = 0; }
-       | questions '?' { $$ ++; }
+       { $$ = SCM_UNDEFINED; }
+       | questions '?'
+        {
+                if (SCM_UNBNDP ($1))
+                        $$ = SCM_BOOL_T;
+                else
+                        $$ = scm_not ($1);
+        }
        ;
 
 /*
@@ -3059,10 +3272,7 @@ This should be done more dynamically if possible.
 */
 
 lyric_markup:
-       LYRIC_MARKUP_IDENTIFIER {
-               $$ = $1;
-       }
-       | LYRIC_MARKUP
+       LYRIC_MARKUP
                { parser->lexer_->push_markup_state (); }
        markup_top {
                $$ = $3;
@@ -3071,10 +3281,7 @@ lyric_markup:
        ;
 
 full_markup_list:
-       MARKUPLIST_IDENTIFIER {
-               $$ = $1;
-       }
-       | MARKUPLIST
+       MARKUPLIST
                { parser->lexer_->push_markup_state (); }
        markup_list {
                $$ = $3;
@@ -3083,10 +3290,7 @@ full_markup_list:
        ;
 
 full_markup:
-       MARKUP_IDENTIFIER {
-               $$ = $1;
-       }
-       | MARKUP
+       MARKUP
                { parser->lexer_->push_markup_state (); }
        markup_top {
                $$ = $3;
@@ -3122,10 +3326,7 @@ markup_scm:
                        
 
 markup_list:
-       MARKUPLIST_IDENTIFIER {
-               $$ = $1;
-       }
-       | markup_composed_list {
+       markup_composed_list {
                $$ = $1;
        }
        | markup_braced_list {
@@ -3207,22 +3408,11 @@ simple_markup:
        STRING {
                $$ = make_simple_markup ($1);
        }
-       | MARKUP_IDENTIFIER {
-               $$ = $1;
-       }
-       | LYRIC_MARKUP_IDENTIFIER {
-               $$ = $1;
-       }
-       | STRING_IDENTIFIER {
-               $$ = $1;
-       }
        | SCORE {
                SCM nn = parser->lexer_->lookup_identifier ("pitchnames");
                parser->lexer_->push_note_state (nn);
        } '{' score_body '}' {
-               Score * sc = $4;
-               $$ = scm_list_2 (ly_lily_module_constant ("score-markup"), sc->self_scm ());
-               sc->unprotect ();
+               $$ = scm_list_2 (ly_lily_module_constant ("score-markup"), $4);
                parser->lexer_->pop_state ();
        }
        | MARKUP_FUNCTION markup_command_basic_arguments {
@@ -3252,10 +3442,12 @@ Lily_parser::set_yydebug (bool x)
        yydebug = x;
 }
 
-void
+SCM
 Lily_parser::do_yyparse ()
 {
-       yyparse (this);
+        SCM retval = SCM_UNDEFINED;
+       yyparse (this, &retval);
+        return retval;
 }
 
 
@@ -3271,10 +3463,7 @@ otherwise, we have to import music classes into the lexer.
 int
 Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
 {
-       if (scm_is_string (sid)) {
-               *destination = sid;
-               return STRING_IDENTIFIER;
-       } else if (unsmob_book (sid)) {
+       if (unsmob_book (sid)) {
                Book *book =  unsmob_book (sid)->clone ();
                *destination = book->self_scm ();
                book->unprotect ();
@@ -3294,12 +3483,6 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
                 *destination = unsmob_context_mod (sid)->smobbed_copy ();
 
                 return CONTEXT_MOD_IDENTIFIER;
-       } else if (unsmob_score (sid)) {
-               Score *score = new Score (*unsmob_score (sid));
-               *destination = score->self_scm ();
-
-               score->unprotect ();
-               return SCORE_IDENTIFIER;
        } else if (Music *mus = unsmob_music (sid)) {
                mus = mus->clone ();
                *destination = mus->self_scm ();
@@ -3322,14 +3505,6 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
                *destination = p->self_scm ();
                p->unprotect ();
                return OUTPUT_DEF_IDENTIFIER;
-       } else if (Text_interface::is_markup (sid)) {
-               *destination = sid;
-               if (is_lyric_state ())
-                       return LYRIC_MARKUP_IDENTIFIER;
-               return MARKUP_IDENTIFIER;
-       } else if (Text_interface::is_markup_list (sid)) {
-               *destination = sid;
-               return MARKUPLIST_IDENTIFIER;
        }
 
        return -1;
@@ -3351,14 +3526,34 @@ get_next_unique_lyrics_context_id ()
        return scm_from_locale_string (s);
 }
 
+// check_scheme_arg checks one argument with a given predicate for use
+// in an argument list and throws a syntax error if it is unusable.
+// The argument is prepended to the argument list in any case.  After
+// throwing a syntax error, the argument list is terminated with #f as
+// its last cdr in order to mark it as uncallable while not losing
+// track of its total length.
+//
+// There are a few special considerations: if optional argument disp
+// is given (otherwise it defaults to SCM_UNDEFINED), it will be used
+// instead of arg in a prospective error message.  This is useful if
+// arg is not the actual argument but rather a transformation of it.
+//
+// If arg itself is SCM_UNDEFINED, the predicate is considered false
+// and an error message using disp is produced unconditionally.
+
 SCM check_scheme_arg (Lily_parser *parser, Input loc,
-                     SCM arg, SCM args, SCM pred)
+                     SCM arg, SCM args, SCM pred, SCM disp)
 {
-       args = scm_cons (arg, args);
-       if (scm_is_true (scm_call_1 (pred, arg)))
-               return args;
+       if (SCM_UNBNDP (arg))
+               args = scm_cons (disp, args);
+       else {
+               args = scm_cons (arg, args);
+               if (scm_is_true (scm_call_1 (pred, arg)))
+                       return args;
+       }
        scm_set_cdr_x (scm_last_pair (args), SCM_EOL);
-       MAKE_SYNTAX ("argument-error", loc, scm_length (args), pred, arg);
+       MAKE_SYNTAX ("argument-error", loc, scm_length (args), pred,
+                    SCM_UNBNDP (disp) ? arg : disp);
        scm_set_cdr_x (scm_last_pair (args), SCM_BOOL_F);
        return args;
 }
@@ -3374,23 +3569,103 @@ SCM loc_on_music (Input loc, SCM arg)
        return arg;
 }
 
+SCM
+try_string_variants (SCM pred, SCM str)
+{
+       // a matching predicate is always ok
+       if (scm_is_true (scm_call_1 (pred, str)))
+               return str;
+       // a symbol may be interpreted as a list of symbols if it helps
+       if (scm_is_symbol (str)) {
+               str = scm_list_1 (str);
+               if (scm_is_true (scm_call_1 (pred, str)))
+                       return str;
+               return SCM_UNDEFINED;
+       }
+
+       // If this cannot be a string representation of a symbol list,
+       // we are through.
+
+       if (!is_regular_identifier (str, true))
+               return SCM_UNDEFINED;
+
+       str = scm_string_split (str, SCM_MAKE_CHAR ('.'));
+       for (SCM p = str; scm_is_pair (p); p = scm_cdr (p))
+               scm_set_car_x (p, scm_string_to_symbol (scm_car (p)));
+
+       // Let's attempt the symbol list interpretation first.
+
+       if (scm_is_true (scm_call_1 (pred, str)))
+               return str;
+
+       // If there is just one symbol in the list, we might interpret
+       // it as a single symbol
+
+       if (scm_is_null (scm_cdr (str)))
+       {
+               str = scm_car (str);
+               if (scm_is_true (scm_call_1 (pred, str)))
+                       return str;
+       }
+
+       return SCM_UNDEFINED;
+}
+
 bool
-is_regular_identifier (SCM id)
+is_regular_identifier (SCM id, bool multiple)
 {
+  if (!scm_is_string (id))
+         return false;
+
   string str = ly_scm2string (id);
-  char const *s = str.c_str ();
 
-  bool v = true;
-#if 0
-  isalpha (*s);
-  s++;
-#endif
-  while (*s && v)
-   {
-        v = v && isalnum (*s);
-        s++;
-   }
-  return v;
+  bool middle = false;
+
+  for (string::iterator it=str.begin(); it != str.end (); it++)
+  {
+         int c = *it & 0xff;
+         if ((c >= 'a' && c <= 'z')
+             || (c >= 'A' && c <= 'Z')
+             || c > 0x7f)
+                 middle = true;
+         else if (middle && (c == '-' || c == '_' || (multiple && c == '.')))
+                 middle = false;
+         else
+                 return false;
+  }
+  return middle;
+}
+
+SCM
+make_music_from_simple (Lily_parser *parser, Input loc, SCM simple)
+{
+       if (unsmob_music (simple))
+               return simple;
+       if (parser->lexer_->is_note_state ()) {
+               if (scm_is_symbol (simple)) {
+                       Music *n = MY_MAKE_MUSIC ("NoteEvent", loc);
+                       n->set_property ("duration", parser->default_duration_.smobbed_copy ());
+                       n->set_property ("drum-type", simple);
+                       return n->unprotect ();
+               }
+               if (unsmob_pitch (simple)) {
+                       Music *n = MY_MAKE_MUSIC ("NoteEvent", loc);
+                       n->set_property ("duration", parser->default_duration_.smobbed_copy ());
+                       n->set_property ("pitch", simple);
+                       return n->unprotect ();
+               }
+               return simple;
+       } else if (parser->lexer_->is_lyric_state ()) {
+               if (Text_interface::is_markup (simple))
+                       return MAKE_SYNTAX ("lyric-event", loc, simple,
+                                           parser->default_duration_.smobbed_copy ());
+       } else if (parser->lexer_->is_chord_state ()) {
+               if (unsmob_pitch (simple))
+                       return make_chord_elements (loc, simple,
+                                                   parser->default_duration_.smobbed_copy (),
+                                                   SCM_EOL);
+       }
+       return simple;
 }
 
 Music *
@@ -3413,17 +3688,11 @@ is_duration (int t)
   return t && t == 1 << intlog2 (t);
 }
 
-void
-set_music_properties (Music *p, SCM a)
-{
-  for (SCM k = a; scm_is_pair (k); k = scm_cdr (k))
-       p->set_property (scm_caar (k), scm_cdar (k));
-}
-
-
 SCM
-make_chord_step (int step, Rational alter)
+make_chord_step (SCM step_scm, Rational alter)
 {
+        int step = scm_to_int (step_scm);
+
        if (step == 7)
                alter += FLAT_ALTERATION;
 
index 123878b644b7e753e876af2f3ee18013e6f0547b..7e6c3c63fe3d8b0e026022e2ad555d767ca4dfda 100644 (file)
@@ -62,7 +62,7 @@ protected:
   DECLARE_ACKNOWLEDGER (script);
   DECLARE_ACKNOWLEDGER (dots);
   DECLARE_ACKNOWLEDGER (text_script);
-  DECLARE_ACKNOWLEDGER (tie);
+  DECLARE_END_ACKNOWLEDGER (tie);
   DECLARE_ACKNOWLEDGER (tuplet_number);
 
   void acknowledge_extra_object (Grob_info);
@@ -156,7 +156,7 @@ Phrasing_slur_engraver::acknowledge_text_script (Grob_info info)
 }
 
 void
-Phrasing_slur_engraver::acknowledge_tie (Grob_info info)
+Phrasing_slur_engraver::acknowledge_end_tie (Grob_info info)
 {
   acknowledge_extra_object (info);
 }
@@ -314,7 +314,7 @@ ADD_ACKNOWLEDGER (Phrasing_slur_engraver, slur);
 ADD_ACKNOWLEDGER (Phrasing_slur_engraver, script);
 ADD_ACKNOWLEDGER (Phrasing_slur_engraver, dots);
 ADD_ACKNOWLEDGER (Phrasing_slur_engraver, text_script);
-ADD_ACKNOWLEDGER (Phrasing_slur_engraver, tie);
+ADD_END_ACKNOWLEDGER (Phrasing_slur_engraver, tie);
 ADD_ACKNOWLEDGER (Phrasing_slur_engraver, tuplet_number);
 
 ADD_TRANSLATOR (Phrasing_slur_engraver,
index 1018dc54f6efc762aab8e734cdd76f7e7c09b0b7..bfb560925335d0ca70512e26ddcd6ef2c2fd974c 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
index ce202bcf82a64b397e5f220b50986aab60ba103d..4f70da828b19aaf7ed693f04974a2254695b0180 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
index 0d600820ae0fa977029b7e439aaae2a4ba86c9e6..7408106d8bb8fce3c9c00e086ef768010d754985 100644 (file)
@@ -165,66 +165,51 @@ setup_paths (char const *argv0_ptr)
   if (relocate_binary)
     {
       string prefix_directory;
-      if (getenv ("LILYPOND_RELOCATE_PREFIX"))
+      string argv0_abs;
+      if (argv0_filename.is_absolute ())
         {
-          prefix_directory = getenv ("LILYPOND_RELOCATE_PREFIX");
-#ifdef __MINGW32__
-          /* Normalize file name.  */
-          prefix_directory = File_name (prefix_directory).to_string ();
-#endif /* __MINGW32__ */
-
-          prefix_relocation (prefix_directory);
-          string bindir = prefix_directory + "/bin";
-          framework_relocation (bindir);
+          argv0_abs = argv0_filename.to_string ();
+          debug_output (_f ("Relocation: is absolute: argv0=%s\n", argv0_ptr));
         }
-      else if (relocate_binary)
+      else if (argv0_filename.dir_.length ())
         {
-          string argv0_abs;
-          if (argv0_filename.is_absolute ())
-            {
-              argv0_abs = argv0_filename.to_string ();
-              debug_output (_f ("Relocation: is absolute: argv0=%s\n", argv0_ptr));
-            }
-          else if (argv0_filename.dir_.length ())
-            {
-              argv0_abs = get_working_directory ()
-                          + "/" + string (argv0_filename.to_string ());
-              debug_output (_f ("Relocation: from cwd: argv0=%s\n", argv0_ptr));
-            }
-          else
-            {
-              /* Find absolute ARGV0 name, using PATH.  */
-              File_path path;
-              path.parse_path (getenv ("PATH"));
+          argv0_abs = get_working_directory ()
+                      + "/" + string (argv0_filename.to_string ());
+          debug_output (_f ("Relocation : from cwd: argv0=%s\n", argv0_ptr));
+        }
+      else
+        {
+          /* Find absolute ARGV0 name, using PATH.  */
+          File_path path;
+          path.parse_path (getenv ("PATH"));
 
 #ifndef __MINGW32__
-              argv0_abs = path.find (argv0_filename.to_string ());
+          argv0_abs = path.find (argv0_filename.to_string ());
 #else /* __MINGW32__ */
-              path.prepend (get_working_directory ());
-              char const *ext[] = {"exe", "", 0 };
-              argv0_abs = path.find (argv0_filename.to_string (), ext);
+          path.prepend (get_working_directory ());
+          char const *ext[] = {"exe", "", 0 };
+          argv0_abs = path.find (argv0_filename.to_string (), ext);
 #endif /* __MINGW32__ */
 
-              debug_output (_f ("Relocation: from PATH=%s\nargv0=%s",
-                                path.to_string ().c_str (), argv0_ptr), true);
+          debug_output (_f ("Relocation: from PATH=%s\nargv0=%s\n",
+                            path.to_string ().c_str (), argv0_ptr), true);
 
-              if (argv0_abs.empty ())
-                programming_error ("cannot find absolute argv0");
-            }
+          if (argv0_abs.empty ())
+            programming_error ("cannot find absolute argv0");
+        }
 
-          string bindir = dir_name (argv0_abs);
-          string argv0_prefix = dir_name (bindir);
-          string compile_prefix = dir_name (dir_name (dir_name (lilypond_datadir)));
-          if (argv0_prefix != compile_prefix)
-            {
-              prefix_relocation (argv0_prefix);
-              prefix_directory = argv0_prefix;
-            }
-          if (argv0_prefix != compile_prefix || string (FRAMEWORKDIR) != "..")
-            {
-              framework_relocation (bindir + "/" + FRAMEWORKDIR);
-              prefix_directory = bindir + "/" + FRAMEWORKDIR;
-            }
+      string bindir = dir_name (argv0_abs);
+      string argv0_prefix = dir_name (bindir);
+      string compile_prefix = dir_name (dir_name (dir_name (lilypond_datadir)));
+      if (argv0_prefix != compile_prefix)
+        {
+          prefix_relocation (argv0_prefix);
+          prefix_directory = argv0_prefix;
+        }
+      if (argv0_prefix != compile_prefix || string (FRAMEWORKDIR) != "..")
+        {
+          framework_relocation (bindir + "/" + FRAMEWORKDIR);
+          prefix_directory = bindir + "/" + FRAMEWORKDIR;
         }
 
       lilypond_datadir = prefix_directory
index 6d3234c6c6ce8b6145cfdf685729f1d35ddefdbd..779323e07d39a2fc8ce1bc244ffe9c80f3e07d0d 100644 (file)
@@ -102,20 +102,20 @@ Repeat_acknowledge_engraver::process_music ()
   if (segno)
     if (start)
       if (end) // { segno, start, end }
-        s = robust_scm2string (get_property ("doubleRepeatSegnoType"), ":|S|:");
+        s = robust_scm2string (get_property ("doubleRepeatSegnoType"), ":|.S.|:");
       else // { segno, start }
-        s = robust_scm2string (get_property ("startRepeatSegnoType"), ".S|:");
+        s = robust_scm2string (get_property ("startRepeatSegnoType"), "S.|:");
     else if (end) // { segno, end }
-      s = robust_scm2string (get_property ("endRepeatSegnoType"), ":|S");
+      s = robust_scm2string (get_property ("endRepeatSegnoType"), ":|.S");
     else // { segno }
       s = robust_scm2string (get_property ("segnoType"), "S");
   else if (start)
     if (end) // { start, end }
-      s = robust_scm2string (get_property ("doubleRepeatType"), ":|:");
+      s = robust_scm2string (get_property ("doubleRepeatType"), ":|.|:");
     else // { start }
-      s = robust_scm2string (get_property ("startRepeatType"), "|:");
+      s = robust_scm2string (get_property ("startRepeatType"), ".|:");
   else if (end) // { end }
-    s = robust_scm2string (get_property ("endRepeatType"), ":|");
+    s = robust_scm2string (get_property ("endRepeatType"), ":|.");
 
   /*
     TODO: line breaks might be allowed if we set whichBar to "".
index b50122e8bb39df97cb7e33e1a6f9fcd642baa86e..c1edba9702eb5476335adeb867db71a7a2e4de5c 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2012 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
index 288d771ef24634915b5fc0cf7b74b743c4b0698a..3085f4f1553feebc4a3a2fa07d891b6fd1691783 100644 (file)
@@ -58,6 +58,8 @@ protected:
   DECLARE_ACKNOWLEDGER (rhythmic_head);
   DECLARE_ACKNOWLEDGER (stem);
   DECLARE_ACKNOWLEDGER (stem_tremolo);
+  DECLARE_ACKNOWLEDGER (tie);
+  DECLARE_END_ACKNOWLEDGER (tie);
   DECLARE_ACKNOWLEDGER (note_column);
   DECLARE_ACKNOWLEDGER (inline_accidental);
 
@@ -199,6 +201,26 @@ Script_engraver::acknowledge_stem_tremolo (Grob_info info)
     }
 }
 
+void
+Script_engraver::acknowledge_tie (Grob_info info)
+{
+  for (vsize i = 0; i < scripts_.size (); i++)
+    {
+      Grob *e = scripts_[i].script_;
+      Side_position_interface::add_support (e, info.grob ());
+    }
+}
+
+void
+Script_engraver::acknowledge_end_tie (Grob_info info)
+{
+  for (vsize i = 0; i < scripts_.size (); i++)
+    {
+      Grob *e = scripts_[i].script_;
+      Side_position_interface::add_support (e, info.grob ());
+    }
+}
+
 void
 Script_engraver::acknowledge_inline_accidental (Grob_info info)
 {
@@ -255,6 +277,8 @@ Script_engraver::stop_translation_timestep ()
 
 ADD_ACKNOWLEDGER (Script_engraver, rhythmic_head);
 ADD_ACKNOWLEDGER (Script_engraver, stem);
+ADD_ACKNOWLEDGER (Script_engraver, tie);
+ADD_END_ACKNOWLEDGER (Script_engraver, tie);
 ADD_ACKNOWLEDGER (Script_engraver, note_column);
 ADD_ACKNOWLEDGER (Script_engraver, stem_tremolo);
 ADD_ACKNOWLEDGER (Script_engraver, inline_accidental);
index 40a251a0772aeece60587d8134dadeb6f9a7af19..28b978d329c04e5ab876e84683e3eea054db42fa 100644 (file)
@@ -138,7 +138,6 @@ ADD_INTERFACE (Text_script,
                "An object that is put above or below a note.",
 
                /* properties */
-               "add-stem-support "
                "avoid-slur "
                "script-priority "
                "slur "
@@ -151,7 +150,6 @@ ADD_INTERFACE (Script_interface,
                "An object that is put above or below a note.",
 
                /* properties */
-               "add-stem-support "
                "avoid-slur "
                "direction-source "
                "positioning-done "
index a37b5871007eec8ef9368976958997b6a4c84a98..ff2b5bfd59ed3bea08a0d77335111f4427091d3f 100644 (file)
@@ -199,7 +199,24 @@ Self_alignment_interface::avoid_colliding_grobs (Grob *me, Axis a, Real offset)
 
   Interval iv = me->extent (me, a) + offset;
   for (vsize i = 0; i < colls.size (); i++)
-    ivs.push_back (colls[i]->extent (refp, a));
+    {
+      int my_vai = Grob::get_vertical_axis_group_index (colls[i]);
+      Direction dir = get_grob_direction (colls[i]);
+      // if coll is cross staff but extremal and pointing in the
+      // direction of the extrema, we don't take it into consideration
+      if (Grob *beam = unsmob_grob (colls[i]->get_object ("beam")))
+        {
+          Interval_t<int> vais;
+          extract_grob_set (beam, "normal-stems", stems);
+          for (vsize j = 0; j < stems.size (); j++)
+            vais.add_point (Grob::get_vertical_axis_group_index (stems[j]));
+          // ugh...up and down are different for VerticalAxisGroup order...
+          if ((my_vai == vais[DOWN] && dir == UP)
+              || (my_vai == vais[UP] && dir == DOWN))
+            continue;
+        }
+      ivs.push_back (colls[i]->extent (refp, a));
+    }
 
   Interval_minefield minefield (Interval (iv.center (), iv.center ()), iv.length ());
   for (vsize i = 0; i < ivs.size (); i++)
index b3e574dad8978488b96de7cf80d4728041ef5485..6ff2928072541611bda6db49d7cb64626d8ab4c3 100644 (file)
@@ -80,8 +80,7 @@ Skyline
 Separation_item::conditional_skyline (Grob *me, Grob *left)
 {
   vector<Box> bs = boxes (me, left);
-  Real horizon_padding = robust_scm2double (me->get_property ("skyline-vertical-padding"), 0.0);
-  return Skyline (bs, horizon_padding, Y_AXIS, LEFT);
+  return Skyline (bs, Y_AXIS, LEFT);
 }
 
 MAKE_SCHEME_CALLBACK (Separation_item, calc_skylines, 1);
@@ -90,8 +89,19 @@ Separation_item::calc_skylines (SCM smob)
 {
   Item *me = unsmob_item (smob);
   vector<Box> bs = boxes (me, 0);
-  Real horizon_padding = robust_scm2double (me->get_property ("skyline-vertical-padding"), 0.0);
-  return Skyline_pair (bs, horizon_padding, Y_AXIS).smobbed_copy ();
+  Skyline_pair sp (bs, Y_AXIS);
+  /*
+    TODO: We need to decide if padding is 'intrinsic'
+    to a skyline or if it is something that is only added on in
+    distance calculations.  Here, we make it intrinsic, which copies
+    the behavior from the old code but no longer corresponds to how
+    vertical skylines are handled (where padding is not built into
+    the skyline).
+  */
+  Real vp = robust_scm2double (me->get_property ("skyline-vertical-padding"), 0.0);
+  sp[LEFT] = sp[LEFT].padded (vp);
+  sp[RIGHT] = sp[RIGHT].padded (vp);
+  return sp.smobbed_copy ();
 }
 
 /* if left is non-NULL, get the boxes corresponding to the
index 6fad89ea54cccf0e5846d69d35e90d6e0ff391c3..b515aa3d5277835828b339b8252ed88e3c829de9 100644 (file)
 
 #include <cmath>                // ceil.
 #include <algorithm>
+#include <set>
+#include <map>
 
 using namespace std;
 
 #include "accidental-interface.hh"
+#include "accidental-placement.hh"
 #include "axis-group-interface.hh"
 #include "directional-element-interface.hh"
 #include "grob.hh"
@@ -32,7 +35,9 @@ using namespace std;
 #include "main.hh"
 #include "misc.hh"
 #include "note-head.hh"
+#include "note-column.hh"
 #include "pointer-group-interface.hh"
+#include "skyline-pair.hh"
 #include "staff-symbol-referencer.hh"
 #include "staff-symbol.hh"
 #include "stem.hh"
@@ -77,6 +82,34 @@ finish_offset (Grob *me, Direction dir, Real total_off, Real *current_offset)
   return scm_from_double (total_off);
 }
 
+set<Grob *>
+get_support_set (Grob *me)
+{
+  // Only slightly kludgy heuristic...
+  // We want to make sure that all AccidentalPlacements'
+  // accidentals make it into the side support
+  extract_grob_set (me, "side-support-elements", proto_support);
+  set<Grob *> support;
+
+  for (vsize i = 0; i < proto_support.size (); i++)
+    {
+      if (Accidental_placement::has_interface (proto_support[i]))
+        {
+          Grob *accs = proto_support[i];
+          for (SCM acs = accs->get_object ("accidental-grobs"); scm_is_pair (acs);
+               acs = scm_cdr (acs))
+            for (SCM s = scm_cdar (acs); scm_is_pair (s); s = scm_cdr (s))
+              {
+                Grob *a = unsmob_grob (scm_car (s));
+                support.insert (a);
+              }
+        }
+      else
+        support.insert (proto_support[i]);
+    }
+  return support;
+}
+
 /* Put the element next to the support, optionally taking in
    account the extent of the support.
 
@@ -88,7 +121,7 @@ Side_position_interface::general_side_position (Grob *me, Axis a, bool use_exten
                                                 bool pure, int start, int end,
                                                 Real *current_offset)
 {
-  extract_grob_set (me, "side-support-elements", support);
+  set<Grob *> support = get_support_set (me);
 
   Grob *common = common_refpoint_of_array (support, me->get_parent (a), a);
   Grob *staff_symbol = Staff_symbol_referencer::get_staff_symbol (me);
@@ -111,9 +144,11 @@ Side_position_interface::general_side_position (Grob *me, Axis a, bool use_exten
 
   Direction dir = get_grob_direction (me);
 
-  for (vsize i = 0; i < support.size (); i++)
+  set<Grob *>::iterator it;
+
+  for (it = support.begin (); it != support.end (); it++)
     {
-      Grob *e = support[i];
+      Grob *e = *it;
 
       // In the case of a stem, we will find a note head as well
       // ignoring the stem solves cyclic dependencies if the stem is
@@ -163,7 +198,7 @@ Side_position_interface::skyline_side_position (Grob *me, Axis a,
                                                 bool pure, int start, int end,
                                                 Real *current_offset)
 {
-  extract_grob_set (me, "side-support-elements", support);
+  set<Grob *> support = get_support_set (me);
 
   Grob *common[2];
   for (Axis ax = X_AXIS; ax < NO_AXES; incr (ax))
@@ -172,23 +207,32 @@ Side_position_interface::skyline_side_position (Grob *me, Axis a,
   Grob *staff_symbol = Staff_symbol_referencer::get_staff_symbol (me);
   Direction dir = get_grob_direction (me);
 
-  Box off;
-  for (Axis ax = X_AXIS; ax < NO_AXES; incr (ax))
+  Skyline my_dim;
+  Skyline_pair *sp = Skyline_pair::unsmob (me->get_property ("vertical-skylines"));
+  if (sp && a == Y_AXIS && !pure)
     {
-      if (ax == a)
-        off[ax] = me->get_parent (ax)->maybe_pure_coordinate (common[ax], ax, pure, start, end)
-                  + me->maybe_pure_extent (me, ax, pure, start, end);
-      else
-        off[ax] = me->maybe_pure_extent (common[ax], ax, pure, start, end);
+      Skyline_pair copy = Skyline_pair (*sp);
+      copy.shift (me->relative_coordinate (common[X_AXIS], X_AXIS));
+      copy.raise (me->get_parent (Y_AXIS)->relative_coordinate (common[Y_AXIS], Y_AXIS));
+      my_dim = copy[-dir];
     }
+  else
+    {
+      Box off;
+      for (Axis ax = X_AXIS; ax < NO_AXES; incr (ax))
+        {
+          if (ax == a)
+            off[ax] = me->get_parent (ax)->maybe_pure_coordinate (common[ax], ax, pure, start, end)
+                      + me->maybe_pure_extent (me, ax, pure, start, end);
+          else
+            off[ax] = me->maybe_pure_extent (common[ax], ax, pure, start, end);
+        }
 
-  if (off[X_AXIS].is_empty () || off[Y_AXIS].is_empty ())
-    return scm_from_double (0.0);
-
-  Real skyline_padding = 0.1;
-
-  Skyline my_dim (off, skyline_padding, other_axis (a), -dir);
+      if (off[X_AXIS].is_empty () || off[Y_AXIS].is_empty ())
+        return scm_from_double (0.0);
 
+      my_dim = Skyline (off, other_axis (a), -dir);
+    }
   bool include_staff
     = staff_symbol
       && a == Y_AXIS
@@ -196,10 +240,14 @@ Side_position_interface::skyline_side_position (Grob *me, Axis a,
       && !to_boolean (me->get_property ("quantize-position"));
 
   vector<Box> boxes;
+  vector<Skyline_pair> skyps;
   Real min_h = dir == LEFT ? infinity_f : -infinity_f;
-  for (vsize i = 0; i < support.size (); i++)
+  set<Grob *>::iterator it;
+
+  map<Grob *, vector<Grob *> > note_column_map; // for parts of a note column
+  for (it = support.begin (); it != support.end (); it++)
     {
-      Grob *e = support[i];
+      Grob *e = *it;
 
       // In the case of a stem, we will find a note head as well
       // ignoring the stem solves cyclic dependencies if the stem is
@@ -211,27 +259,61 @@ Side_position_interface::skyline_side_position (Grob *me, Axis a,
 
       if (e)
         {
-          if (Accidental_interface::has_interface (e))
-            {
-              vector<Box> bs = Accidental_interface::accurate_boxes (e, common);
-              boxes.insert (boxes.end (), bs.begin (), bs.end ());
-            }
-          else
-            {
-              Box b;
-              for (Axis ax = X_AXIS; ax < NO_AXES; incr (ax))
-                b[ax] = e->maybe_pure_extent (common[ax], ax, pure, start, end);
+           if (Note_column::has_interface (e->get_parent (X_AXIS))
+               && to_boolean (me->get_property ("add-stem-support")))
+             {
+               note_column_map[e->get_parent (X_AXIS)].push_back (e);
+               continue;
+             }
+
+           Skyline_pair *sp = Skyline_pair::unsmob (e->get_property ("vertical-skylines"));
+           if (sp && a == Y_AXIS && !pure)
+             {
+               Skyline_pair copy = Skyline_pair (*sp);
+               copy.shift (e->relative_coordinate (common[X_AXIS], X_AXIS));
+               copy.raise (e->relative_coordinate (common[Y_AXIS], Y_AXIS));
+               skyps.push_back (copy);
+               continue;
+             }
+           Box b;
+           for (Axis ax = X_AXIS; ax < NO_AXES; incr (ax))
+             b[ax] = e->maybe_pure_extent (common[ax], ax, pure, start, end);
+
+           if (b[X_AXIS].is_empty () || b[Y_AXIS].is_empty ())
+             continue;
+
+           boxes.push_back (b);
+           min_h = minmax (dir, b[a][-dir], min_h);
+        }
+    }
 
-              if (b[X_AXIS].is_empty () || b[Y_AXIS].is_empty ())
-                continue;
+  // this loop ensures that parts of a note column will be in the same box
+  // pushes scripts and such over stems instead of just over heads
+  for (map<Grob *, vector<Grob *> >::iterator i = note_column_map.begin (); i != note_column_map.end (); i++)
+    {
+      Box big;
+      for (vsize j = 0; j < (*i).second.size (); j++)
+        {
+          Grob *e = (*i).second[j];
+          Box b;
+          for (Axis ax = X_AXIS; ax < NO_AXES; incr (ax))
+            b[ax] = e->maybe_pure_extent (common[ax], ax, pure, start, end);
 
-              boxes.push_back (b);
-              min_h = minmax (dir, b[a][-dir], min_h);
-            }
+          if (b[X_AXIS].is_empty () || b[Y_AXIS].is_empty ())
+            continue;
+
+          big.unite (b);
         }
+      if (!big[X_AXIS].is_empty () && !big[Y_AXIS].is_empty ())
+        boxes.push_back (big);
     }
 
-  Skyline dim (boxes, skyline_padding, other_axis (a), dir);
+  Skyline dim (boxes, other_axis (a), dir);
+  if (skyps.size ())
+    {
+      Skyline_pair merged (skyps);
+      dim.merge (merged[dir]);
+    }
   if (!boxes.size ())
     dim.set_minimum_height (0.0);
   else
@@ -245,7 +327,9 @@ Side_position_interface::skyline_side_position (Grob *me, Axis a,
       dim.set_minimum_height (minmax (dir, min_h, staff_extents[dir]));
     }
 
-  Real total_off = dir * dim.distance (my_dim);
+  Real dist = dim.distance (my_dim, 0.1); // 0.1 m4g1c value...fix...
+  Real total_off = !isinf (dist) ? dir * dist : 0.0;
+
   return finish_offset (me, dir, total_off, current_offset);
 }
 
@@ -327,7 +411,7 @@ Side_position_interface::aligned_side (Grob *me, Axis a, bool pure, int start, i
   Direction dir = get_grob_direction (me);
   bool skyline = to_boolean (me->get_property ("use-skylines"));
 
-  Real o = scm_to_double (skyline
+  Real o = scm_to_double (skyline && !pure
                           ? skyline_side_position (me, a, pure, start, end, current_off)
                           : general_side_position (me, a, true, true, pure, start, end, current_off));
 
@@ -465,6 +549,7 @@ ADD_INTERFACE (Side_position_interface,
                " is ignored.",
 
                /* properties */
+               "add-stem-support "
                "direction "
                "minimum-space "
                "padding "
index 88ebae09d85c4714e318013bbf5d6a5c8541a452..61afdb9bcc281004c4b0dbffbabe2fbd757ec4d5 100644 (file)
@@ -370,9 +370,12 @@ get_column_description (vector<Grob *> const &cols, vsize col_index, bool line_s
   if (next_col)
     description.spring_ = Spaceable_grob::get_spring (col, next_col);
 
-  Grob *end_col = dynamic_cast<Item *> (cols[col_index + 1])->find_prebroken_piece (LEFT);
-  if (end_col)
-    description.end_spring_ = Spaceable_grob::get_spring (col, end_col);
+  if (col_index + 1 < cols.size ())
+    {
+      Grob *end_col = dynamic_cast<Item *> (cols[col_index + 1])->find_prebroken_piece (LEFT);
+      if (end_col)
+        description.end_spring_ = Spaceable_grob::get_spring (col, end_col);
+    }
 
   for (SCM s = Spaceable_grob::get_minimum_distances (col);
        scm_is_pair (s); s = scm_cdr (s))
index 6f6b4e1b889b5bf0529c0069cfd374bfe507e98a..164117c35bdb62b59516eafe08a8d725e1456fe0 100644 (file)
@@ -28,13 +28,23 @@ Skyline_pair::Skyline_pair ()
 {
 }
 
-Skyline_pair::Skyline_pair (vector<Box> const &boxes, Real padding, Axis a)
-  : skylines_ (Skyline (boxes, padding, a, DOWN), Skyline (boxes, padding, a, UP))
+Skyline_pair::Skyline_pair (vector<Box> const &boxes, Axis a)
+  : skylines_ (Skyline (boxes, a, DOWN), Skyline (boxes, a, UP))
 {
 }
 
-Skyline_pair::Skyline_pair (Box const &b, Real padding, Axis a)
-  : skylines_ (Skyline (b, padding, a, DOWN), Skyline (b, padding, a, UP))
+Skyline_pair::Skyline_pair (vector<Drul_array<Offset> > const &buildings, Axis a)
+  : skylines_ (Skyline (buildings, a, DOWN), Skyline (buildings, a, UP))
+{
+}
+
+Skyline_pair::Skyline_pair (vector<Skyline_pair> const &skypairs)
+  : skylines_ (Skyline (skypairs, DOWN), Skyline (skypairs, UP))
+{
+}
+
+Skyline_pair::Skyline_pair (Box const &b, Axis a)
+  : skylines_ (Skyline (b, a, DOWN), Skyline (b, a, UP))
 {
 }
 
@@ -45,6 +55,13 @@ Skyline_pair::raise (Real r)
   skylines_[DOWN].raise (r);
 }
 
+void
+Skyline_pair::deholify ()
+{
+  skylines_[UP].deholify ();
+  skylines_[DOWN].deholify ();
+}
+
 void
 Skyline_pair::shift (Real r)
 {
@@ -53,10 +70,10 @@ Skyline_pair::shift (Real r)
 }
 
 void
-Skyline_pair::insert (Box const &b, Real padding, Axis a)
+Skyline_pair::insert (Box const &b, Axis a)
 {
-  skylines_[UP].insert (b, padding, a);
-  skylines_[DOWN].insert (b, padding, a);
+  skylines_[UP].insert (b, a);
+  skylines_[DOWN].insert (b, a);
 }
 
 void
@@ -73,11 +90,23 @@ Skyline_pair::print () const
   skylines_[DOWN].print ();
 }
 
+Real
+Skyline_pair::left () const
+{
+  return min (skylines_[UP].left (), skylines_[DOWN].left ());
+}
+
+Real
+Skyline_pair::right () const
+{
+  return max (skylines_[UP].right (), skylines_[DOWN].right ());
+}
+
 void
 Skyline_pair::print_points () const
 {
-  skylines_[UP].print ();
-  skylines_[DOWN].print ();
+  skylines_[UP].print_points ();
+  skylines_[DOWN].print_points ();
 }
 
 bool
index 0250fc07f4743ba44e7bc1ac8af23ed6057aa435..1d6e4d5e78e81c2efb24b88a54ddae297035e4fa 100644 (file)
@@ -18,6 +18,7 @@
 */
 
 #include "skyline.hh"
+#include "skyline-pair.hh"
 #include <deque>
 #include <cstdio>
 
@@ -87,16 +88,18 @@ Building::Building (Real start, Real start_height, Real end_height, Real end)
   if (isinf (start) || isinf (end))
     assert (start_height == end_height);
 
+  start_ = start;
   end_ = end;
   precompute (start, start_height, end_height, end);
 }
 
-Building::Building (Box const &b, Real horizon_padding, Axis horizon_axis, Direction sky)
+Building::Building (Box const &b, Axis horizon_axis, Direction sky)
 {
-  Real start = b[horizon_axis][LEFT] - horizon_padding;
-  Real end = b[horizon_axis][RIGHT] + horizon_padding;
+  Real start = b[horizon_axis][LEFT];
+  Real end = b[horizon_axis][RIGHT];
   Real height = sky * b[other_axis (horizon_axis)][sky];
 
+  start_ = start;
   end_ = end;
   precompute (start, height, height, end);
 }
@@ -104,9 +107,9 @@ Building::Building (Box const &b, Real horizon_padding, Axis horizon_axis, Direc
 void
 Building::precompute (Real start, Real start_height, Real end_height, Real end)
 {
-  slope_ = (end_height - start_height) / (end - start);
-  if (start_height == end_height) /* if they were both infinite, we would get nan, not 0, from the prev line */
-    slope_ = 0;
+  slope_ = 0.0; /* if they were both infinite, we would get nan, not 0, from the prev line */
+  if (start_height != end_height)
+    slope_ = (end_height - start_height) / (end - start);
 
   assert (!isinf (slope_) && !isnan (slope_));
 
@@ -119,7 +122,7 @@ Building::precompute (Real start, Real start_height, Real end_height, Real end)
     y_intercept_ = start_height - slope_ * start;
 }
 
-Real
+inline Real
 Building::height (Real x) const
 {
   return isinf (x) ? y_intercept_ : slope_ * x + y_intercept_;
@@ -128,10 +131,10 @@ Building::height (Real x) const
 void
 Building::print () const
 {
-  printf ("%f x + %f ends at %f\n", slope_, y_intercept_, end_);
+  printf ("%f x + %f from %f to %f\n", slope_, y_intercept_, start_, end_);
 }
 
-Real
+inline Real
 Building::intersection_x (Building const &other) const
 {
   Real ret = (y_intercept_ - other.y_intercept_) / (other.slope_ - slope_);
@@ -145,20 +148,17 @@ Building::leading_part (Real chop)
   end_ = chop;
 }
 
-Building
-Building::sloped_neighbour (Real start, Real horizon_padding, Direction d) const
+// Returns a shift s such that (x + s, y) intersects the roof of
+// this building.  If no such shift exists, returns infinity_f.
+Real
+Building::shift_to_intersect (Real x, Real y) const
 {
-  Real x = (d == LEFT) ? start : end_;
-  Real left = x;
-  Real right = x + d * horizon_padding;
-  Real left_height = height (x);
-  Real right_height = left_height - horizon_padding;
-  if (d == LEFT)
-    {
-      swap (left, right);
-      swap (left_height, right_height);
-    }
-  return Building (left, left_height, right_height, right);
+  // Solve for s: y = (x + s)*m + b
+  Real ret = (y - y_intercept_ - slope_ * x) / slope_;
+
+  if (ret >= start_ && ret <= end_ && !isinf (ret))
+    return ret;
+  return infinity_f;
 }
 
 static Real
@@ -167,6 +167,18 @@ first_intersection (Building const &b, list<Building> *const s, Real start_x)
   while (!s->empty () && start_x < b.end_)
     {
       Building c = s->front ();
+
+      // conceals and intersection_x involve multiplication and
+      // division. Avoid that, if we can.
+      if (c.y_intercept_ == -infinity_f)
+        {
+          if (c.end_ > b.end_)
+            return b.end_;
+          start_x = c.end_;
+          s->pop_front ();
+          continue;
+        }
+
       if (c.conceals (b, start_x))
         return start_x;
 
@@ -193,9 +205,58 @@ Building::conceals (Building const &other, Real x) const
          || (i > x && slope_ < other.slope_);
 }
 
+// Remove redundant empty buildings from the skyline.
+// If there are two adjacent empty buildings, they can be
+// turned into one.
+void
+Skyline::normalize ()
+{
+  bool last_empty = false;
+  list<Building>::iterator i;
+  for (i = buildings_.begin (); i != buildings_.end (); i++)
+    {
+      if (last_empty && i->y_intercept_ == -infinity_f)
+        {
+          list<Building>::iterator last = i;
+          last--;
+          last->end_ = i->end_;
+          buildings_.erase (i);
+          i = last;
+        }
+      last_empty = (i->y_intercept_ == -infinity_f);
+    }
+
+  assert (buildings_.front ().start_ == -infinity_f);
+  assert (buildings_.back ().end_ == infinity_f);
+}
+
+void
+Skyline::deholify ()
+{
+  // Since a skyline should always be normalized, we can
+  // assume that there are never two adjacent empty buildings.
+  // That is, if center is empty then left and right are not.
+  list<Building>::iterator left = buildings_.begin ();
+  list<Building>::iterator center = buildings_.begin ();
+  list<Building>::iterator right;
+
+  for (right = buildings_.begin (); right != buildings_.end (); right++)
+    {
+      if (center != buildings_.begin () && center->y_intercept_ == -infinity_f)
+        {
+          Real p1 = left->height (left->end_);
+          Real p2 = right->height (right->start_);
+          *center = Building (center->start_, p1, p2, center->end_);
+
+          left = center;
+          center = right;
+        }
+    }
+}
+
 void
 Skyline::internal_merge_skyline (list<Building> *s1, list<Building> *s2,
-                                 list<Building> *const result)
+                                 list<Building> *const result) const
 {
   if (s1->empty () || s2->empty ())
     {
@@ -204,17 +265,38 @@ Skyline::internal_merge_skyline (list<Building> *s1, list<Building> *s2,
     }
 
   Real x = -infinity_f;
+  Real last_end = -infinity_f;
   while (!s1->empty ())
     {
       if (s2->front ().conceals (s1->front (), x))
         swap (s1, s2);
 
       Building b = s1->front ();
-      Real end = first_intersection (b, s2, x);
+      Building c = s2->front ();
 
+      // Optimization: if the other skyline is empty at this point,
+      // we can avoid testing some intersections. Just grab as many
+      // buildings from s1 as we can, and shove them onto the output.
+      if (c.y_intercept_ == -infinity_f
+          && c.end_ >= b.end_)
+        {
+          list<Building>::iterator i = s1->begin ();
+          i++;
+          while (i != s1->end () && i->end_ <= c.end_)
+            i++;
+
+          s1->front ().start_ = x;
+          result->splice (result->end (), *s1, s1->begin (), i);
+          x = result->back ().end_;
+          last_end = x;
+          continue;
+        }
+
+      Real end = first_intersection (b, s2, x);
       if (s2->empty ())
         {
-          result->push_front (b);
+          b.start_ = last_end;
+          result->push_back (b);
           break;
         }
 
@@ -222,7 +304,9 @@ Skyline::internal_merge_skyline (list<Building> *s1, list<Building> *s2,
       if (end > x + EPS)
         {
           b.leading_part (end);
-          result->push_front (b);
+          b.start_ = last_end;
+          last_end = b.end_;
+          result->push_back (b);
         }
 
       if (end >= s1->front ().end_)
@@ -230,7 +314,6 @@ Skyline::internal_merge_skyline (list<Building> *s1, list<Building> *s2,
 
       x = end;
     }
-  result->reverse ();
 }
 
 static void
@@ -240,89 +323,91 @@ empty_skyline (list<Building> *const ret)
 }
 
 /*
-  Given Building 'b' with starting wall location 'start', extend each side
-  with a sloped roofline of width 'horizon_padding'; put the skyline in 'ret'
+  Given Building 'b', build a skyline containing only that building.
 */
 static void
-single_skyline (Building b, Real start, Real horizon_padding, list<Building> *const ret)
+single_skyline (Building b, list<Building> *const ret)
 {
-  bool sloped_neighbours = horizon_padding > 0 && !isinf (start) && !isinf (b.end_);
-  if (!isinf (b.end_))
-    ret->push_front (Building (b.end_ + horizon_padding, -infinity_f,
-                               -infinity_f, infinity_f));
-  if (sloped_neighbours)
-    ret->push_front (b.sloped_neighbour (start, horizon_padding, RIGHT));
-
-  if (b.end_ > start + EPS)
-    ret->push_front (b);
-
-  if (sloped_neighbours)
-    ret->push_front (b.sloped_neighbour (start, horizon_padding, LEFT));
-
-  if (!isinf (start))
-    ret->push_front (Building (-infinity_f, -infinity_f,
-                               -infinity_f, start - horizon_padding));
+  if (b.end_ > b.start_ + EPS)
+    {
+      ret->push_back (Building (-infinity_f, -infinity_f,
+                                -infinity_f, b.start_));
+      ret->push_back (b);
+      ret->push_back (Building (b.end_, -infinity_f,
+                                -infinity_f, infinity_f));
+    }
+  else
+    {
+      empty_skyline (ret);
+    }
 }
 
 /* remove a non-overlapping set of boxes from BOXES and build a skyline
    out of them */
 static list<Building>
-non_overlapping_skyline (list<Box> *const boxes, Real horizon_padding, Axis horizon_axis, Direction sky)
+non_overlapping_skyline (list<Building> *const buildings)
 {
   list<Building> result;
   Real last_end = -infinity_f;
-  list<Box>::iterator i = boxes->begin ();
-  while (i != boxes->end ())
+  Building last_building (-infinity_f, -infinity_f, -infinity_f, infinity_f);
+  list<Building>::iterator i = buildings->begin ();
+  while (i != buildings->end ())
     {
-      Interval iv = (*i)[horizon_axis];
+      Real x1 = i->start_;
+      Real y1 = i->height (i->start_);
+      Real x2 = i->end_;
+      Real y2 = i->height (i->end_);
+
+      // Drop buildings that will obviously have no effect.
+      if (last_building.height (x1) >= y1
+          && last_building.end_ >= x2
+          && last_building.height (x2) >= y2)
+        {
+          list<Building>::iterator j = i++;
+          buildings->erase (j);
+          continue;
+        }
 
-      if (iv[LEFT] - horizon_padding < last_end)
+      if (x1 < last_end)
         {
           i++;
           continue;
         }
 
-      if (iv[LEFT] - horizon_padding > last_end + EPS)
-        result.push_front (Building (last_end, -infinity_f, -infinity_f, iv[LEFT] - 2 * horizon_padding));
+      if (x1 > last_end + EPS)
+        result.push_back (Building (last_end, -infinity_f, -infinity_f, x1));
 
-      Building b (*i, horizon_padding, horizon_axis, sky);
-      bool sloped_neighbours = horizon_padding > 0 && !isinf (iv.length ());
-      if (sloped_neighbours)
-        result.push_front (b.sloped_neighbour (iv[LEFT] - horizon_padding, horizon_padding, LEFT));
-      result.push_front (b);
-      if (sloped_neighbours)
-        result.push_front (b.sloped_neighbour (iv[LEFT] - horizon_padding, horizon_padding, RIGHT));
+      result.push_back (*i);
+      last_building = *i;
+      last_end = i->end_;
 
-      list<Box>::iterator j = i++;
-      boxes->erase (j);
-      last_end = result.front ().end_;
+      list<Building>::iterator j = i++;
+      buildings->erase (j);
     }
+
   if (last_end < infinity_f)
-    result.push_front (Building (last_end, -infinity_f, -infinity_f, infinity_f));
-  result.reverse ();
+    result.push_back (Building (last_end, -infinity_f, -infinity_f, infinity_f));
   return result;
 }
 
-class LessThanBox
+class LessThanBuilding
 {
-  Axis a_;
-
 public:
-  LessThanBox (Axis a)
-  {
-    a_ = a;
-  }
-
-  bool operator () (Box const &b1, Box const &b2)
+  bool operator () (Building const &b1, Building const &b2)
   {
-    return b1[a_][LEFT] < b2[a_][LEFT];
+    return b1.start_ < b2.start_
+           || (b1.start_ == b2.start_ && b1.height (b1.start_) > b2.height (b1.start_));
   }
 };
 
+/**
+   BUILDINGS is a list of buildings, but they could be overlapping
+   and in any order.  The returned list of buildings is ordered and non-overlapping.
+*/
 list<Building>
-Skyline::internal_build_skyline (list<Box> *boxes, Real horizon_padding, Axis horizon_axis, Direction sky)
+Skyline::internal_build_skyline (list<Building> *buildings) const
 {
-  vsize size = boxes->size ();
+  vsize size = buildings->size ();
 
   if (size == 0)
     {
@@ -333,16 +418,14 @@ Skyline::internal_build_skyline (list<Box> *boxes, Real horizon_padding, Axis ho
   else if (size == 1)
     {
       list<Building> result;
-      single_skyline (Building (boxes->front (), horizon_padding, horizon_axis, sky),
-                      boxes->front ()[horizon_axis][LEFT] - horizon_padding,
-                      horizon_padding, &result);
+      single_skyline (buildings->front (), &result);
       return result;
     }
 
   deque<list<Building> > partials;
-  boxes->sort (LessThanBox (horizon_axis));
-  while (!boxes->empty ())
-    partials.push_back (non_overlapping_skyline (boxes, horizon_padding, horizon_axis, sky));
+  buildings->sort (LessThanBuilding ());
+  while (!buildings->empty ())
+    partials.push_back (non_overlapping_skyline (buildings));
 
   /* we'd like to say while (partials->size () > 1) but that's O (n).
      Instead, we exit in the middle of the loop */
@@ -388,68 +471,88 @@ Skyline::Skyline (Direction sky)
 }
 
 /*
-  build padded skyline from an existing skyline with padding
-  added to it.
-*/
+  Build skyline from a set of boxes.
 
-Skyline::Skyline (Skyline const &src, Real horizon_padding, Axis /*a*/)
+  Boxes should have fatness in the horizon_axis, otherwise they are ignored.
+ */
+Skyline::Skyline (vector<Box> const &boxes, Axis horizon_axis, Direction sky)
 {
-  /*
-     We extract boxes from the skyline, then build a new skyline from
-     the boxes.
-     A box is created for every horizontal portion of the skyline
-     Because skylines are defined positive, and then inverted if they
-     are to be down-facing, we create the new skyline in the UP
-     direction, then give it the down direction if needed.
-  */
-  Real start = -infinity_f;
-  list<Box> boxes;
-
-  // establish a baseline box
-  // FIXME: This has hardcoded logic, assuming a == X_AXIS!
-  boxes.push_back (Box (Interval (-infinity_f, infinity_f),
-                        Interval (0, 0)));
-  list<Building>::const_iterator end = src.buildings_.end ();
-  for (list<Building>::const_iterator i = src.buildings_.begin (); i != end; start = i->end_, i++)
-    if ((i->slope_ == 0) && !isinf (i->y_intercept_))
-      boxes.push_back (Box (Interval (start, i->end_),
-                            Interval (-infinity_f, i->y_intercept_)));
-  buildings_ = internal_build_skyline (&boxes, horizon_padding, X_AXIS, UP);
-  sky_ = src.sky_;
+  list<Building> buildings;
+  sky_ = sky;
+
+  Axis vert_axis = other_axis (horizon_axis);
+  for (vsize i = 0; i < boxes.size (); i++)
+    {
+      Interval iv = boxes[i][horizon_axis];
+      if (iv.length () > EPS && !boxes[i][vert_axis].is_empty ())
+        buildings.push_front (Building (boxes[i], horizon_axis, sky));
+    }
+
+  buildings_ = internal_build_skyline (&buildings);
+  normalize ();
 }
 
 /*
-  build skyline from a set of boxes. If horizon_padding > 0, expand all the boxes
-  by that amount and add 45-degree sloped boxes to the edges of each box (of
-  width horizon_padding). That is, the total amount of horizontal expansion is
-  horizon_padding*4, half of which is sloped and half of which is flat.
+  build skyline from a set of line segments.
 
-  Boxes should have fatness in the horizon_axis (after they are expanded by
-  horizon_padding), otherwise they are ignored.
+  Buildings should have fatness in the horizon_axis, otherwise they are ignored.
  */
-Skyline::Skyline (vector<Box> const &boxes, Real horizon_padding, Axis horizon_axis, Direction sky)
+Skyline::Skyline (vector<Drul_array<Offset> > const &segments, Axis horizon_axis, Direction sky)
 {
-  list<Box> filtered_boxes;
+  list<Building> buildings;
   sky_ = sky;
 
-  Axis vert_axis = other_axis (horizon_axis);
-  for (vsize i = 0; i < boxes.size (); i++)
+  for (vsize i = 0; i < segments.size (); i++)
     {
-      Interval iv = boxes[i][horizon_axis];
-      iv.widen (horizon_padding);
-      if (iv.length () > EPS && !boxes[i][vert_axis].is_empty ())
-        filtered_boxes.push_front (boxes[i]);
+      Drul_array<Offset> const &seg = segments[i];
+      Offset left = seg[LEFT];
+      Offset right = seg[RIGHT];
+      if (left[horizon_axis] > right[horizon_axis])
+        swap (left, right);
+
+      Real x1 = left[horizon_axis];
+      Real x2 = right[horizon_axis];
+      Real y1 = left[other_axis (horizon_axis)] * sky;
+      Real y2 = right[other_axis (horizon_axis)] * sky;
+
+      if (x1 + EPS < x2)
+        buildings.push_back (Building (x1, y1, y2, x2));
     }
 
-  buildings_ = internal_build_skyline (&filtered_boxes, horizon_padding, horizon_axis, sky);
+  buildings_ = internal_build_skyline (&buildings);
+  normalize ();
 }
 
-Skyline::Skyline (Box const &b, Real horizon_padding, Axis horizon_axis, Direction sky)
+Skyline::Skyline (vector<Skyline_pair> const &skypairs, Direction sky)
 {
   sky_ = sky;
-  Building front (b, horizon_padding, horizon_axis, sky);
-  single_skyline (front, b[horizon_axis][LEFT] - horizon_padding,
-                  horizon_padding, &buildings_);
+
+  deque<Skyline> partials;
+  for (vsize i = 0; i < skypairs.size (); i++)
+    partials.push_back (Skyline ((skypairs[i])[sky]));
+
+  while (partials.size () > 1)
+    {
+      Skyline one = partials.front ();
+      partials.pop_front ();
+      Skyline two = partials.front ();
+      partials.pop_front ();
+
+      one.merge (two);
+      partials.push_back (one);
+    }
+
+  if (partials.size ())
+    buildings_.swap (partials.front ().buildings_);
+  else
+    buildings_.clear ();
+}
+
+Skyline::Skyline (Box const &b, Axis horizon_axis, Direction sky)
+{
+  sky_ = sky;
+  Building front (b, horizon_axis, sky);
+  single_skyline (front, &buildings_);
 }
 
 void
@@ -457,14 +560,24 @@ Skyline::merge (Skyline const &other)
 {
   assert (sky_ == other.sky_);
 
+  if (other.is_empty ())
+    return;
+
+  if (is_empty ())
+    {
+      buildings_ = other.buildings_;
+      return;
+    }
+
   list<Building> other_bld (other.buildings_);
   list<Building> my_bld;
   my_bld.splice (my_bld.begin (), buildings_);
   internal_merge_skyline (&other_bld, &my_bld, &buildings_);
+  normalize ();
 }
 
 void
-Skyline::insert (Box const &b, Real horizon_padding, Axis a)
+Skyline::insert (Box const &b, Axis a)
 {
   list<Building> other_bld;
   list<Building> my_bld;
@@ -478,14 +591,13 @@ Skyline::insert (Box const &b, Real horizon_padding, Axis a)
 
   /* do the same filtering as in Skyline (vector<Box> const&, etc.) */
   Interval iv = b[a];
-  iv.widen (horizon_padding);
   if (iv.length () <= EPS || b[other_axis (a)].is_empty ())
     return;
 
   my_bld.splice (my_bld.begin (), buildings_);
-  single_skyline (Building (b, horizon_padding, a, sky_), b[a][LEFT] - horizon_padding,
-                  horizon_padding, &other_bld);
+  single_skyline (Building (b, a, sky_), &other_bld);
   internal_merge_skyline (&other_bld, &my_bld, &buildings_);
+  normalize ();
 }
 
 void
@@ -502,6 +614,7 @@ Skyline::shift (Real s)
   list<Building>::iterator end = buildings_.end ();
   for (list<Building>::iterator i = buildings_.begin (); i != end; i++)
     {
+      i->start_ += s;
       i->end_ += s;
       i->y_intercept_ -= s * i->slope_;
     }
@@ -525,32 +638,81 @@ Skyline::touching_point (Skyline const &other, Real horizon_padding) const
 Real
 Skyline::internal_distance (Skyline const &other, Real horizon_padding, Real *touch_point) const
 {
-  assert (sky_ == -other.sky_);
+  if (horizon_padding == 0.0)
+    return internal_distance (other, touch_point);
+
+  // Note that it is not necessary to build a padded version of other,
+  // because the same effect can be achieved just by doubling horizon_padding.
+  Skyline padded_this = padded (horizon_padding);
+  return padded_this.internal_distance (other, touch_point);
+}
 
-  Skyline const *padded_this = this;
-  Skyline const *padded_other = &other;
-  bool created_tmp_skylines = false;
-
-  /*
-    For systems, padding is not added at creation time.  Padding is
-    added to AxisGroup objects when outside-staff objects are added.
-    Thus, when we want to place systems with horizontal padding,
-    we do it at distance calculation time.
-  */
-  if (horizon_padding != 0.0)
+Skyline
+Skyline::padded (Real horizon_padding) const
+{
+  list<Building> pad_buildings;
+  for (list<Building>::const_iterator i = buildings_.begin (); i != buildings_.end (); ++i)
     {
-      padded_this = new Skyline (*padded_this, horizon_padding, X_AXIS);
-      padded_other = new Skyline (*padded_other, horizon_padding, X_AXIS);
-      created_tmp_skylines = true;
+      if (i->start_ > -infinity_f)
+        {
+          Real height = i->height (i->start_);
+          if (height > -infinity_f)
+            {
+              // Add the sloped building that pads the left side of the current building.
+              Real start = i->start_ - 2 * horizon_padding;
+              Real end = i->start_ - horizon_padding;
+              pad_buildings.push_back (Building (start, height - horizon_padding, height, end));
+
+              // Add the flat building that pads the left side of the current building.
+              start = i->start_ - horizon_padding;
+              end = i->start_;
+              pad_buildings.push_back (Building (start, height, height, end));
+            }
+        }
+
+      if (i->end_ < infinity_f)
+        {
+          Real height = i->height (i->end_);
+          if (height > -infinity_f)
+            {
+              // Add the flat building that pads the right side of the current building.
+              Real start = i->end_;
+              Real end = start + horizon_padding;
+              pad_buildings.push_back (Building (start, height, height, end));
+
+              // Add the sloped building that pads the right side of the current building.
+              start = end;
+              end += horizon_padding;
+              pad_buildings.push_back (Building (start, height, height - horizon_padding, end));
+            }
+        }
     }
 
-  list<Building>::const_iterator i = padded_this->buildings_.begin ();
-  list<Building>::const_iterator j = padded_other->buildings_.begin ();
+  // The buildings may be overlapping, so resolve that.
+  list<Building> pad_skyline = internal_build_skyline (&pad_buildings);
+
+  // Merge the padding with the original, to make a new skyline.
+  Skyline padded (sky_);
+  list<Building> my_buildings = buildings_;
+  padded.buildings_.clear ();
+  internal_merge_skyline (&pad_skyline, &my_buildings, &padded.buildings_);
+  padded.normalize ();
+
+  return padded;
+}
+
+Real
+Skyline::internal_distance (Skyline const &other, Real *touch_point) const
+{
+  assert (sky_ == -other.sky_);
+
+  list<Building>::const_iterator i = buildings_.begin ();
+  list<Building>::const_iterator j = other.buildings_.begin ();
 
   Real dist = -infinity_f;
   Real start = -infinity_f;
   Real touch = -infinity_f;
-  while (i != padded_this->buildings_.end () && j != padded_other->buildings_.end ())
+  while (i != buildings_.end () && j != other.buildings_.end ())
     {
       Real end = min (i->end_, j->end_);
       Real start_dist = i->height (start) + j->height (start);
@@ -569,12 +731,6 @@ Skyline::internal_distance (Skyline const &other, Real horizon_padding, Real *to
       start = end;
     }
 
-  if (created_tmp_skylines)
-    {
-      delete padded_this;
-      delete padded_other;
-    }
-
   *touch_point = touch;
   return dist;
 }
@@ -598,9 +754,38 @@ Skyline::height (Real airplane) const
 Real
 Skyline::max_height () const
 {
-  Skyline s (-sky_);
-  s.set_minimum_height (0);
-  return sky_ * distance (s);
+  Real ret = -infinity_f;
+
+  list<Building>::const_iterator i;
+  for (i = buildings_.begin (); i != buildings_.end (); ++i)
+    {
+      ret = max (ret, i->height (i->start_));
+      ret = max (ret, i->height (i->end_));
+    }
+
+  return sky_ * ret;
+}
+
+Real
+Skyline::left () const
+{
+  for (list<Building>::const_iterator i (buildings_.begin ());
+       i != buildings_.end (); i++)
+    if (i->y_intercept_ > -infinity_f)
+      return i->start_;
+
+  return infinity_f;
+}
+
+Real
+Skyline::right () const
+{
+  for (list<Building>::const_reverse_iterator i (buildings_.rbegin ());
+       i != buildings_.rend (); ++i)
+    if (i->y_intercept_ > -infinity_f)
+      return i->end_;
+
+  return -infinity_f;
 }
 
 Real
@@ -643,6 +828,8 @@ Skyline::to_points (Axis horizon_axis) const
 bool
 Skyline::is_empty () const
 {
+  if (!buildings_.size ())
+    return true;
   Building b = buildings_.front ();
   return b.end_ == infinity_f && b.y_intercept_ == -infinity_f;
 }
index 03f5a5c430667ca9783b9578c454202aa55d6859..49f92ab0ed5a96b04e5bd5331fb1b49cf12f4e35 100644 (file)
@@ -63,7 +63,7 @@ protected:
   DECLARE_ACKNOWLEDGER (script);
   DECLARE_ACKNOWLEDGER (dots);
   DECLARE_ACKNOWLEDGER (text_script);
-  DECLARE_ACKNOWLEDGER (tie);
+  DECLARE_END_ACKNOWLEDGER (tie);
   DECLARE_ACKNOWLEDGER (tuplet_number);
 
   void acknowledge_extra_object (Grob_info);
@@ -163,7 +163,7 @@ Slur_engraver::acknowledge_text_script (Grob_info info)
 }
 
 void
-Slur_engraver::acknowledge_tie (Grob_info info)
+Slur_engraver::acknowledge_end_tie (Grob_info info)
 {
   acknowledge_extra_object (info);
 }
@@ -324,7 +324,7 @@ ADD_ACKNOWLEDGER (Slur_engraver, note_column);
 ADD_ACKNOWLEDGER (Slur_engraver, script);
 ADD_ACKNOWLEDGER (Slur_engraver, text_script);
 ADD_ACKNOWLEDGER (Slur_engraver, dots);
-ADD_ACKNOWLEDGER (Slur_engraver, tie);
+ADD_END_ACKNOWLEDGER (Slur_engraver, tie);
 ADD_ACKNOWLEDGER (Slur_engraver, tuplet_number);
 ADD_TRANSLATOR (Slur_engraver,
                 /* doc */
index e1025fa545c56c1c20ee0a476355b778229cf336..47bb40611c483018713bae43ec380b3ed1cd9461 100644 (file)
@@ -459,11 +459,16 @@ Slur_score_state::get_y_attachment_range () const
     {
       if (extremes_[d].note_column_)
         {
-          end_ys[d] = dir_
-                      * max (max (dir_ * (base_attachments_[d][Y_AXIS]
-                                          + parameters_.region_size_ * dir_),
-                                  dir_ * (dir_ + extremes_[d].note_column_->extent (common_[Y_AXIS], Y_AXIS)[dir_])),
-                             dir_ * base_attachments_[-d][Y_AXIS]);
+          Interval nc_extent = extremes_[d].note_column_
+                               ->extent (common_[Y_AXIS], Y_AXIS);
+          if (nc_extent.is_empty ())
+            slur_->warning ("slur trying to encompass an empty note column.");
+          else
+            end_ys[d] = dir_
+                        * max (max (dir_ * (base_attachments_[d][Y_AXIS]
+                                            + parameters_.region_size_ * dir_),
+                                    dir_ * (dir_ + nc_extent[dir_])),
+                               dir_ * base_attachments_[-d][Y_AXIS]);
         }
       else
         end_ys[d] = base_attachments_[d][Y_AXIS] + parameters_.region_size_ * dir_;
index 6d0d84203ea0da8b80a2d30b5a59d7d739ccfeb5..eb9913dc160b94a6e8821f757d067832fb30c7aa 100644 (file)
@@ -31,8 +31,8 @@
 #include "main.hh"              // DEBUG_SLUR_SCORING
 #include "note-column.hh"
 #include "output-def.hh"
-#include "spanner.hh"
 #include "skyline-pair.hh"
+#include "spanner.hh"
 #include "staff-symbol-referencer.hh"
 #include "stem.hh"
 #include "text-interface.hh"
@@ -364,7 +364,7 @@ Slur::outside_slur_callback (SCM grob, SCM offset_scm)
   return scm_from_double (offset + avoidance_offset);
 }
 
-MAKE_SCHEME_CALLBACK_WITH_OPTARGS (Slur, vertical_skylines, 1, 0, "");
+MAKE_SCHEME_CALLBACK (Slur, vertical_skylines, 1);
 SCM
 Slur::vertical_skylines (SCM smob)
 {
@@ -372,7 +372,7 @@ Slur::vertical_skylines (SCM smob)
   vector<Box> boxes;
 
   if (!me)
-    return Skyline_pair (boxes, 0.0, X_AXIS).smobbed_copy ();
+    return Skyline_pair (boxes, X_AXIS).smobbed_copy ();
 
   Bezier curve = Slur::get_curve (me);
   vsize box_count = robust_scm2vsize (me->get_property ("skyline-quantizing"), 10);
@@ -384,7 +384,7 @@ Slur::vertical_skylines (SCM smob)
       boxes.push_back (b);
     }
 
-  return Skyline_pair (boxes, 0.0, X_AXIS).smobbed_copy ();
+  return Skyline_pair (boxes, X_AXIS).smobbed_copy ();
 }
 
 /*
@@ -562,10 +562,8 @@ ADD_INTERFACE (Slur,
                "inspect-index "
                "line-thickness "
                "note-columns "
-               "skyline-quantizing "
                "positions "
                "ratio "
                "thickness "
-               "vertical-skylines "
               );
 
index 657ff0cd6a9d2b6541b87bfdd8f6a789dbdcf13b..022c6a121949543fa05c7fd4b4fba680aa8b1fea 100644 (file)
@@ -223,79 +223,66 @@ Spacing_spanner::generate_pair_spacing (Grob *me,
 static void
 set_column_rods (vector<Grob *> const &cols, Real padding)
 {
-  /* distances[i] will be the minimum distance between column i and column i+1 */
-  vector<Real> distances;
+  /* distances[i] will be the distance betwen cols[i-1] and cols[i], and
+     overhangs[j] the amount by which cols[0 thru j] extend beyond cols[j]
+     when each column is placed as far to the left as possible. */
+  vector<Real> distances (cols.size ());
+  vector<Real> overhangs (cols.size ());
 
-  for (vsize i = 1; i < cols.size (); i++)
+  for (vsize i = 0; i < cols.size (); i++)
     {
-      assert (distances.size () == i - 1);
-
       Item *r = dynamic_cast<Item *> (cols[i]);
       Item *rb = r->find_prebroken_piece (LEFT);
 
       if (Separation_item::is_empty (r) && (!rb || Separation_item::is_empty (rb)))
-        {
-          distances.push_back (0);
-          continue;
-        }
+        continue;
 
       Skyline_pair *skys = Skyline_pair::unsmob (r->get_property ("horizontal-skylines"));
-      Real right_stickout = skys ? (*skys)[LEFT].max_height () : 0.0;
+      overhangs[i] = skys ? (*skys)[RIGHT].max_height () : 0.0;
+
+      if (0 == i) continue;
 
-      /* min rather than max because right-stickout will be negative if the right-hand column
+      /* min rather than max because stickout will be negative if the right-hand column
          sticks out a lot to the left */
-      right_stickout = min (right_stickout,
-                            Separation_item::conditional_skyline (r, cols[i - 1]).max_height ());
+      Real stickout = min (skys ? (*skys)[LEFT].max_height () : 0.0,
+                           Separation_item::conditional_skyline (r, cols[i - 1]).max_height ());
 
-      Drul_array<Item *> r_cols (r, rb);
-      Drul_array<Real> cur_dist (0.0, 0.0);
+      Real prev_distances = 0.0;
 
       /* This is an inner loop and hence it is potentially quadratic. However, we only continue
          as long as there is a rod to insert. Therefore, this loop will usually only execute
          a constant number of times per iteration of the outer loop. */
       for (vsize j = i; j--;)
         {
+          if (overhangs[j] + padding <= prev_distances + distances[i] + stickout)
+            break; // cols[0 thru j] cannot reach cols[i]
+
           Item *l = dynamic_cast<Item *> (cols[j]);
           Item *lb = l->find_prebroken_piece (RIGHT);
-          Skyline_pair *skys = Skyline_pair::unsmob (l->get_property ("horizontal-skylines"));
-          Real left_stickout = skys ? (*skys)[RIGHT].max_height () : 0.0;
-          bool done = true;
 
-          for (LEFT_and_RIGHT (d))
-            {
-              if (j < i - 1)
-                cur_dist[d] += distances[j];
+          Real dist = Separation_item::set_distance (l, r, padding);
+          distances[i] = max (distances[i], dist - prev_distances);
 
-              Item *r_col = r_cols[d];
-              bool touches = right_stickout - left_stickout + cur_dist[d] < 0.0;
-              Real dist = 0.0;
-
-              /* we set a distance for the line-starter column even if its non-broken counterpart
-                 doesn't touch the right column. */
-              if (lb)
-                Separation_item::set_distance (lb, r_col, padding);
-
-              if (touches || j == i - 1)
-                dist = Separation_item::set_distance (l, r_col, padding);
-
-              if (j == i - 1 && d == LEFT)
-                distances.push_back (dist);
-
-              if (j == i - 1)
-                cur_dist[d] = distances[j];
-
-              cur_dist[d] = max (cur_dist[d], dist);
-              done = done && !touches;
-
-              if (!rb)
-                break;
+          if (lb)
+            {
+              dist = Separation_item::set_distance (lb, r, padding);
+              // The left-broken version might reach more columns to the
+              // right than the unbroken version, by extending farther and/or
+              // nesting more closely;
+              if (j == i - 1) // check this, the first time we see each lb.
+                overhangs[j] = max (overhangs[j],
+                                    lb->extent (lb, X_AXIS)[RIGHT]
+                                    + distances[i] - dist);
             }
+          if (rb)
+            Separation_item::set_distance (l, rb, padding);
+          if (lb && rb)
+            Separation_item::set_distance (lb, rb, padding);
 
-          /* we need the empty check for gregorian notation, where there are a lot of
-             extraneous paper-columns that we need to skip over */
-          if (done && !Separation_item::is_empty (l))
-            break;
+          prev_distances += distances[j];
         }
+      overhangs[i] = max (overhangs[i],
+                          overhangs[i - 1] - distances[i]);
     }
 }
 
index 10d97241bde43c0563d749074c845eb4ca54fcec..b813bbb25d6aaa281ee683338085bdfd9d683a89 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
index 77dc986cfe8dd4fed779c32da03d8c57e0ee523d..31f3af6176ef91189a924c449e0fb3d7e57b4eb1 100644 (file)
@@ -245,7 +245,7 @@ int
 Staff_performer::get_channel (string instrument)
 {
   SCM channel_mapping = get_property ("midiChannelMapping");
-  map<string, int>channel_map
+  map<string, int> &channel_map
     = (channel_mapping != ly_symbol2scm ("instrument"))
       ? channel_map_
       : static_channel_map_;
index d48091537aca3d55cc033389ef47dab9d126d43b..1f9d2d8a7a5b7568ed810f70936f5df8087f6b54 100644 (file)
@@ -24,6 +24,8 @@
 #include "directional-element-interface.hh"
 #include "item.hh"
 #include "lookup.hh"
+#include "note-collision.hh"
+#include "note-column.hh"
 #include "output-def.hh"
 #include "staff-symbol-referencer.hh"
 #include "stem.hh"
@@ -56,7 +58,7 @@ Stem_tremolo::calc_slope (SCM smob)
   else
     /* down stems with flags should have more sloped trems (helps avoid
        flag/stem collisions without making the stem very long) */
-    return scm_from_double ((Stem::duration_log (stem) >= 3 && get_grob_direction (stem) == DOWN)
+    return scm_from_double ((Stem::duration_log (stem) >= 3 && get_grob_direction (me) == DOWN)
                             ? 0.40 : 0.25);
 }
 
@@ -66,12 +68,12 @@ Stem_tremolo::calc_width (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
   Grob *stem = unsmob_grob (me->get_object ("stem"));
-  Direction stemdir = get_grob_direction (stem);
+  Direction dir = get_grob_direction (me);
   bool beam = Stem::get_beam (stem);
   bool flag = Stem::duration_log (stem) >= 3 && !beam;
 
   /* beamed stems and up-stems with flags have shorter tremolos */
-  return scm_from_double (((stemdir == UP && flag) || beam) ? 1.0 : 1.5);
+  return scm_from_double (((dir == UP && flag) || beam) ? 1.0 : 1.5);
 }
 
 MAKE_SCHEME_CALLBACK (Stem_tremolo, calc_style, 1)
@@ -80,11 +82,11 @@ Stem_tremolo::calc_style (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
   Grob *stem = unsmob_grob (me->get_object ("stem"));
-  Direction stemdir = get_grob_direction (stem);
+  Direction dir = get_grob_direction (me);
   bool beam = Stem::get_beam (stem);
   bool flag = Stem::duration_log (stem) >= 3 && !beam;
 
-  return ly_symbol2scm (((stemdir == UP && flag) || beam) ? "rectangle" : "default");
+  return ly_symbol2scm (((dir == UP && flag) || beam) ? "rectangle" : "default");
 }
 
 Real
@@ -100,7 +102,7 @@ Stem_tremolo::get_beam_translation (Grob *me)
 }
 
 Stencil
-Stem_tremolo::raw_stencil (Grob *me, Real slope, Direction stemdir)
+Stem_tremolo::raw_stencil (Grob *me, Real slope, Direction dir)
 {
   Real ss = Staff_symbol_referencer::staff_space (me);
   Real thick = robust_scm2double (me->get_property ("beam-thickness"), 1);
@@ -137,7 +139,7 @@ Stem_tremolo::raw_stencil (Grob *me, Real slope, Direction stemdir)
   for (int i = 0; i < tremolo_flags; i++)
     {
       Stencil b (a);
-      b.translate_axis (beam_translation * i * stemdir * -1, Y_AXIS);
+      b.translate_axis (beam_translation * i * dir * -1, Y_AXIS);
       mol.add_stencil (b);
     }
   return mol;
@@ -157,9 +159,7 @@ Stem_tremolo::pure_height (SCM smob, SCM, SCM)
   if (!stem)
     return ly_interval2scm (s1.extent (Y_AXIS));
 
-  Direction stemdir = get_grob_direction (stem);
-  if (stemdir == 0)
-    stemdir = UP;
+  Direction dir = get_grob_direction (me);
 
   Spanner *beam = Stem::get_beam (stem);
 
@@ -168,11 +168,11 @@ Stem_tremolo::pure_height (SCM smob, SCM, SCM)
 
   Interval ph = stem->pure_height (stem, 0, INT_MAX);
   Stem_info si = Stem::get_stem_info (stem);
-  ph[-stemdir] = si.shortest_y_;
+  ph[-dir] = si.shortest_y_;
   int beam_count = Stem::beam_multiplicity (stem).length () + 1;
   Real beam_translation = get_beam_translation (me);
 
-  ph = ph - stemdir * max (beam_count, 1) * beam_translation;
+  ph = ph - dir * max (beam_count, 1) * beam_translation;
   ph = ph - ph.center ();
 
   return ly_interval2scm (ph);
@@ -208,15 +208,13 @@ Stem_tremolo::untranslated_stencil (Grob *me, Real slope)
       return Stencil ();
     }
 
-  Direction stemdir = get_grob_direction (stem);
-  if (!stemdir)
-    stemdir = UP;
+  Direction dir = get_grob_direction (me);
 
   bool whole_note = Stem::duration_log (stem) <= 0;
 
   /* for a whole note, we position relative to the notehead, so we want the
      stencil aligned on the flag closest to the head */
-  Direction stencil_dir = whole_note ? -stemdir : stemdir;
+  Direction stencil_dir = whole_note ? -dir : dir;
   return raw_stencil (me, slope, stencil_dir);
 }
 
@@ -238,6 +236,46 @@ Stem_tremolo::pure_calc_y_offset (SCM smob,
   return scm_from_double (y_offset (me, true));
 }
 
+MAKE_SCHEME_CALLBACK (Stem_tremolo, calc_direction, 1);
+SCM
+Stem_tremolo::calc_direction (SCM smob)
+{
+  Item *me = unsmob_item (smob);
+
+  Item *stem = unsmob_item (me->get_object ("stem"));
+  if (!stem)
+    return scm_from_int (CENTER);
+
+  Direction stemdir = get_grob_direction (stem);
+
+  vector<int> nhp = Stem::note_head_positions (stem);
+  /*
+   * We re-decide stem-dir if there may be collisions with other
+   * note heads in the staff.
+   */
+  Grob *maybe_nc = stem->get_parent (X_AXIS)->get_parent (X_AXIS);
+  bool whole_note = Stem::duration_log (stem) <= 0;
+  if (whole_note && Note_collision_interface::has_interface (maybe_nc))
+    {
+      Drul_array<bool> avoid_me (false, false);
+      vector<int> all_nhps = Note_collision_interface::note_head_positions (maybe_nc);
+      if (all_nhps[0] < nhp[0])
+        avoid_me[DOWN] = true;
+      if (all_nhps.back () > nhp.back ())
+        avoid_me[UP] = true;
+      if (avoid_me[stemdir])
+        {
+          stemdir = -stemdir;
+          if (avoid_me[stemdir])
+            {
+              me->warning ("Whole-note tremolo may collide with simultaneous notes.");
+              stemdir = -stemdir;
+            }
+        }
+    }
+  return scm_from_int (stemdir);
+}
+
 Real
 Stem_tremolo::y_offset (Grob *me, bool pure)
 {
@@ -245,9 +283,7 @@ Stem_tremolo::y_offset (Grob *me, bool pure)
   if (!stem)
     return 0.0;
 
-  Direction stemdir = get_grob_direction (stem);
-  if (stemdir == 0)
-    stemdir = UP;
+  Direction dir = get_grob_direction (me);
 
   Spanner *beam = Stem::get_beam (stem);
   Real beam_translation = get_beam_translation (me);
@@ -258,34 +294,34 @@ Stem_tremolo::y_offset (Grob *me, bool pure)
     {
       Interval ph = stem->pure_height (stem, 0, INT_MAX);
       Stem_info si = Stem::get_stem_info (stem);
-      ph[-stemdir] = si.shortest_y_;
+      ph[-dir] = si.shortest_y_;
 
-      return (ph - stemdir * max (beam_count, 1) * beam_translation)[stemdir] - stemdir * 0.5 * me->pure_height (me, 0, INT_MAX).length ();
+      return (ph - dir * max (beam_count, 1) * beam_translation)[dir] - dir * 0.5 * me->pure_height (me, 0, INT_MAX).length ();
     }
 
   Real end_y
     = (pure
-       ? stem->pure_height (stem, 0, INT_MAX)[stemdir]
-       : stem->extent (stem, Y_AXIS)[stemdir])
-      - stemdir * max (beam_count, 1) * beam_translation
+       ? stem->pure_height (stem, 0, INT_MAX)[dir]
+       : stem->extent (stem, Y_AXIS)[dir])
+      - dir * max (beam_count, 1) * beam_translation
       - Stem::beam_end_corrective (stem);
 
   if (!beam && Stem::duration_log (stem) >= 3)
     {
-      end_y -= stemdir * (Stem::duration_log (stem) - 2) * beam_translation;
-      if (stemdir == UP)
-        end_y -= stemdir * beam_translation * 0.5;
+      end_y -= dir * (Stem::duration_log (stem) - 2) * beam_translation;
+      if (dir == UP)
+        end_y -= dir * beam_translation * 0.5;
     }
 
   bool whole_note = Stem::duration_log (stem) <= 0;
-  if (whole_note)
+  if (whole_note || isinf(end_y))
     {
       /* we shouldn't position relative to the end of the stem since the stem
          is invisible */
       Real ss = Staff_symbol_referencer::staff_space (me);
       vector<int> nhp = Stem::note_head_positions (stem);
-      Real note_head = (stemdir == UP ? nhp.back () : nhp[0]) * ss / 2;
-      end_y = note_head + stemdir * 1.5;
+      Real note_head = (dir == UP ? nhp.back () : nhp[0]) * ss / 2;
+      end_y = note_head + dir * 1.5;
     }
 
   return end_y;
@@ -308,6 +344,7 @@ ADD_INTERFACE (Stem_tremolo,
                /* properties */
                "beam-thickness "
                "beam-width "
+               "direction "
                "flag-count "
                "length-fraction "
                "stem "
index 8069a456c814e48cf24bddec96bf9d8fae2279ac..5f072fac6ae2585362bd7c733483134203415e52 100644 (file)
@@ -275,9 +275,12 @@ Stem::add_head (Grob *me, Grob *n)
 bool
 Stem::is_invisible (Grob *me)
 {
-  return !is_normal_stem (me)
-         && (robust_scm2double (me->get_property ("stemlet-length"),
-                                0.0) == 0.0);
+  if (is_normal_stem (me))
+    return false;
+  else if (head_count (me))
+    return true;
+  else // if there are no note-heads, we might want stemlets
+    return 0.0 == robust_scm2double (me->get_property ("stemlet-length"), 0.0);
 }
 
 bool
@@ -286,9 +289,7 @@ Stem::is_normal_stem (Grob *me)
   if (!head_count (me))
     return false;
 
-  extract_grob_set (me, "note-heads", heads);
-  SCM style = heads[0]->get_property ("style");
-  return style != ly_symbol2scm ("kievan") && scm_to_int (me->get_property ("duration-log")) >= 1;
+  return scm_to_int (me->get_property ("duration-log")) >= 1;
 }
 
 MAKE_SCHEME_CALLBACK (Stem, pure_height, 3)
@@ -545,7 +546,8 @@ Stem::calc_positioning_done (SCM smob)
           = hed->extent (hed, X_AXIS).linear_combination (CENTER)
             - heads[i]->extent (heads[i], X_AXIS).linear_combination (CENTER);
 
-      heads[i]->translate_axis (amount, X_AXIS);
+      if (!isnan (amount)) // empty heads can produce NaN
+        heads[i]->translate_axis (amount, X_AXIS);
     }
   bool parity = true;
   Real lastpos = Real (Staff_symbol_referencer::get_position (heads[0]));
@@ -794,12 +796,40 @@ Stem::internal_calc_stem_begin_position (Grob *me, bool calc_beam)
       Real y_attach = Note_head::stem_attachment_coordinate (head, Y_AXIS);
 
       y_attach = head_height.linear_combination (y_attach);
-      pos += d * y_attach * 2 / ss;
+      if (!isinf (y_attach) && !isnan (y_attach)) // empty heads
+        pos += d * y_attach * 2 / ss;
     }
 
   return pos;
 }
 
+
+MAKE_SCHEME_CALLBACK (Stem, pure_calc_length, 3);
+SCM
+Stem::pure_calc_length (SCM smob, SCM /*start*/, SCM /*end*/)
+{
+  Grob *me = unsmob_grob (smob);
+  Real beg = robust_scm2double (me->get_pure_property ("stem-begin-position", 0, INT_MAX), 0.0);
+  Real res = fabs (internal_calc_stem_end_position (me, false) - beg);
+  return scm_from_double (res);
+}
+
+MAKE_SCHEME_CALLBACK (Stem, calc_length, 1);
+SCM
+Stem::calc_length (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+  if (unsmob_grob (me->get_object ("beam")))
+    {
+      me->programming_error ("ly:stem::calc-length called but will not be used for beamed stem.");
+      return scm_from_double (0.0);
+    }
+
+  Real beg = robust_scm2double (me->get_property ("stem-begin-position"), 0.0);
+  Real res = fabs (internal_calc_stem_end_position (me, true) - beg);
+  return scm_from_double (res);
+}
+
 bool
 Stem::is_valid_stem (Grob *me)
 {
@@ -811,9 +841,6 @@ Stem::is_valid_stem (Grob *me)
   if (!lh && !beam)
     return false;
 
-  if (lh && robust_scm2int (lh->get_property ("duration-log"), 0) < 1)
-    return false;
-
   if (is_invisible (me))
     return false;
 
@@ -882,7 +909,7 @@ Stem::offset_callback (SCM smob)
 
       Direction d = get_grob_direction (me);
       Real real_attach = head_wid.linear_combination (d * attach);
-      Real r = real_attach;
+      Real r = isnan(real_attach)? 0.0: real_attach;
 
       /* If not centered: correct for stem thickness.  */
       string style = robust_symbol2string (f->get_property ("style"), "default");
diff --git a/lily/stencil-integral.cc b/lily/stencil-integral.cc
new file mode 100644 (file)
index 0000000..d8509a6
--- /dev/null
@@ -0,0 +1,1116 @@
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 2012 Mike Solomon <mike@mikesolomon.org>
+
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+tools for transform-matrices following the standard at
+http://www.w3.org/TR/SVG/coords.html
+
+a list in the form
+(list a b c d e f g)
+becomes this matrix:
+[ a c e ]
+[ b d f ]
+[ 0 0 1 ]
+when this transforms a point (x,y), the point is written as matrix:
+[ x ]
+[ y ]
+[ 1 ]
+*/
+
+#include <pango/pango-matrix.h>
+#include <complex>
+#include "box.hh"
+#include "bezier.hh"
+#include "dimensions.hh"
+#include "font-metric.hh"
+#include "grob.hh"
+#include "interval.hh"
+#include "freetype.hh"
+#include "misc.hh"
+#include "offset.hh"
+#include "modified-font-metric.hh"
+#include "open-type-font.hh"
+#include "pango-font.hh"
+#include "pointer-group-interface.hh"
+#include "lily-guile.hh"
+#include "real.hh"
+#include "stencil.hh"
+#include "string-convert.hh"
+#include "skyline.hh"
+#include "skyline-pair.hh"
+using namespace std;
+
+Real QUANTIZATION_UNIT = 0.2;
+
+void create_path_cap (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, Offset pt, Real rad, Real slope, Direction d);
+
+struct Transform_matrix_and_expression
+{
+  PangoMatrix tm_;
+  SCM expr_;
+
+  Transform_matrix_and_expression (PangoMatrix tm, SCM expr);
+};
+
+Transform_matrix_and_expression::Transform_matrix_and_expression (PangoMatrix tm, SCM expr)
+{
+  tm_ = tm;
+  expr_ = expr;
+}
+
+PangoMatrix
+make_transform_matrix (Real p0, Real p1, Real p2, Real p3, Real p4, Real p5)
+{
+  PangoMatrix out;
+  out.xx = p0;
+  out.xy = p1;
+  out.yx = p2;
+  out.yy = p3;
+  out.x0 = p4;
+  out.y0 = p5;
+  return out;
+}
+
+//// UTILITY FUNCTIONS
+
+/*
+  map x's placement between orig_l and orig_r onto
+  the interval final_l final_r
+*/
+Real
+linear_map (Real final_l, Real final_r, Real orig_l, Real orig_r, Real x)
+{
+  return final_l + ((final_r - final_l) * ((x - orig_l) / (orig_r - orig_l)));
+}
+
+/*
+  from a nested SCM list, return the first list of numbers
+  useful for polygons
+*/
+SCM
+get_number_list (SCM l)
+{
+  if (scm_is_pair (l))
+    {
+      if (scm_is_number (scm_car (l)))
+        return l;
+      SCM res = get_number_list (scm_car (l));
+      if (res == SCM_BOOL_F)
+        return get_number_list (scm_cdr (l));
+      return res;
+    }
+  return SCM_BOOL_F;
+}
+
+/*
+  from a nested SCM list, return the first list of numbers
+  useful for paths
+*/
+SCM
+get_path_list (SCM l)
+{
+  if (scm_is_pair (l))
+    {
+      if (scm_memv (scm_car (l),
+                    scm_list_n (ly_symbol2scm ("moveto"),
+                                ly_symbol2scm ("rmoveto"),
+                                ly_symbol2scm ("lineto"),
+                                ly_symbol2scm ("rlineto"),
+                                ly_symbol2scm ("curveto"),
+                                ly_symbol2scm ("rcurveto"),
+                                ly_symbol2scm ("closepath"),
+                                SCM_UNDEFINED))
+          != SCM_BOOL_F)
+        return l;
+      SCM res = get_path_list (scm_car (l));
+      if (res == SCM_BOOL_F)
+        return get_path_list (scm_cdr (l));
+      return res;
+    }
+  return SCM_BOOL_F;
+}
+
+Real
+perpendicular_slope (Real s)
+{
+  if (s == 0.0)
+    return infinity_f;
+  if (s == infinity_f)
+    return 0.0;
+  return -1.0 / s;
+}
+
+//// END UTILITY FUNCTIONS
+
+/*
+  below, for all of the functions make_X_boxes, the expression
+  is always unpacked into variables.
+  then, after a line of /////, there are manipulations of these variables
+  (there may be no manipulations necessary depending on the function)
+  afterwards, there is another ///// followed by the creation of points
+  and boxes
+*/
+
+void
+make_draw_line_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr, bool use_building)
+{
+  Real thick = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real x0 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real y0 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real x1 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real y1 = robust_scm2double (scm_car (expr), 0.0);
+  Real slope = x1 == x0 ? infinity_f : (y1 - y0) / (x1 - x0);
+  //////////////////////
+  if (x1 < x0)
+    {
+      swap (x0, x1);
+      swap (y0, y1);
+    }
+  Offset left (x0, y0);
+  Offset right (x1, y1);
+  Direction d = DOWN;
+  do
+    {
+      Offset inter_l = get_point_in_y_direction (left, perpendicular_slope (slope), thick / 2, d);
+      Offset inter_r = get_point_in_y_direction (right, perpendicular_slope (slope), thick / 2, d);//printf ("O %4.4f %4.4f\n", inter_l[X_AXIS], inter_r[X_AXIS]);printf ("TRANNY %4.4f %4.4f %4.4f %4.4f %4.4f %4.4f\n", trans.xx, trans.xy, trans.yx, trans.yy, trans.x0, trans.y0);
+      pango_matrix_transform_point (&trans, &inter_l[X_AXIS], &inter_l[Y_AXIS]);
+      pango_matrix_transform_point (&trans, &inter_r[X_AXIS], &inter_r[Y_AXIS]);
+      if ((inter_l[X_AXIS] == inter_r[X_AXIS]) || (inter_l[Y_AXIS] == inter_r[Y_AXIS]))
+        {
+          //printf ("OO %4.4f %4.4f\n", inter_l[X_AXIS], inter_r[X_AXIS]);
+          Box b;
+          b.add_point (inter_l);
+          b.add_point (inter_r);
+          boxes.push_back (b);
+        }
+      else if (use_building)
+        buildings.push_back (Drul_array<Offset> (inter_l, inter_r));
+      else
+        {
+          Offset inter_l = get_point_in_y_direction (left, perpendicular_slope (slope), thick / 2, d);
+          Offset inter_r = get_point_in_y_direction (right, perpendicular_slope (slope), thick / 2, d);
+          pango_matrix_transform_point (&trans, &inter_l[X_AXIS], &inter_l[Y_AXIS]);
+          pango_matrix_transform_point (&trans, &inter_r[X_AXIS], &inter_r[Y_AXIS]);
+          Real length = sqrt (((inter_l[X_AXIS] - inter_r[X_AXIS]) * (inter_l[X_AXIS] - inter_r[X_AXIS])) + ((inter_l[Y_AXIS] - inter_r[Y_AXIS]) * (inter_l[Y_AXIS] - inter_r[Y_AXIS])));
+
+          vsize passes = (vsize) ((length * 2) + 1);
+          vector<Offset> points;
+
+          for (vsize i = 0; i < 1 + passes; i++)
+            {
+              Offset pt (linear_map (x0, x1, 0, passes, i),
+                         linear_map (y0, y1, 0, passes, i));
+              Offset inter = get_point_in_y_direction (pt, perpendicular_slope (slope), thick / 2, d);
+              pango_matrix_transform_point (&trans, &inter[X_AXIS], &inter[Y_AXIS]);
+              points.push_back (inter);
+            }
+          for (vsize i = 0; i < points.size () - 1; i++)
+            {
+              Box b;
+              b.add_point (points[i]);
+              b.add_point (points[i + 1]);
+              boxes.push_back (b);
+            }
+        }
+    }
+  while (flip (&d) != DOWN);
+
+  if (thick > 0.0)
+    {
+      // beg line cap
+      create_path_cap (boxes,
+                       buildings,
+                       trans,
+                       Offset (x0, y0),
+                       thick / 2,
+                       perpendicular_slope (slope),
+                       Direction (sign (slope)));
+
+      // end line cap
+      create_path_cap (boxes,
+                       buildings,
+                       trans,
+                       Offset (x1, y1),
+                       thick / 2,
+                       perpendicular_slope (slope),
+                       Direction (sign (-slope)));
+    }
+}
+
+void
+make_partial_ellipse_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr)
+{
+  Real x_rad = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real y_rad = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real start = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real end = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real th = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  bool connect = to_boolean (scm_car (expr));
+  expr = scm_cdr (expr);
+  bool fill = to_boolean (scm_car (expr));
+  //////////////////////
+  start = M_PI * start / 180;
+  end = M_PI * end / 180;
+  if (end == start)
+    end += (2 * M_PI);
+  complex<Real> sunit = polar (1.0, start);
+  complex<Real> eunit = polar (1.0, end);
+  Offset sp (real (sunit) * x_rad, imag (sunit) * y_rad);
+  Offset ep (real (eunit) * x_rad, imag (eunit) * y_rad);
+  //////////////////////
+  Drul_array<vector<Offset> > points;
+  Direction d = DOWN;
+  int quantization = max (1, (int) (((x_rad * trans.xx) + (y_rad * trans.yy)) * M_PI / QUANTIZATION_UNIT));
+  do
+    {
+      for (vsize i = 0; i < 1 + quantization; i++)
+        {
+          Real ang = linear_map (start, end, 0, quantization, i);
+          complex<Real> coord = polar (1.0, ang);
+          Offset pt (real (coord) * x_rad,
+                     imag (coord) * y_rad);
+          Real slope = pt[Y_AXIS] / pt[X_AXIS];
+          Offset inter = get_point_in_y_direction (pt, perpendicular_slope (slope), th / 2, d);
+          pango_matrix_transform_point (&trans, &inter[X_AXIS], &inter[Y_AXIS]);
+          points[d].push_back (inter);
+        }
+    }
+  while (flip (&d) != DOWN);
+
+  for (vsize i = 0; i < points[DOWN].size () - 1; i++)
+    {
+      Box b;
+      do
+        {
+          b.add_point (points[d][i]);
+          b.add_point (points[d][i + 1]);
+        }
+      while (flip (&d) != DOWN);
+      boxes.push_back (b);
+    }
+
+  if (connect || fill)
+    {
+      make_draw_line_boxes (boxes, buildings, trans, scm_list_5 (scm_from_double (th),
+                                                                 scm_from_double (sp[X_AXIS]),
+                                                                 scm_from_double (sp[Y_AXIS]),
+                                                                 scm_from_double (ep[X_AXIS]),
+                                                                 scm_from_double (ep[Y_AXIS])),
+                            false);
+    }
+
+  if (th > 0.0)
+    {
+      // beg line cap
+      complex<Real> coord = polar (1.0, start);
+      Offset pt (real (coord) * x_rad,
+                 imag (coord) * y_rad);
+      Real slope = pt[Y_AXIS] / pt[X_AXIS];
+      create_path_cap (boxes,
+                       buildings,
+                       trans,
+                       pt,
+                       th / 2,
+                       perpendicular_slope (slope),
+                       Direction (sign (slope)));
+
+      // end line cap
+      coord = polar (1.0, start);
+      pt = Offset (real (coord) * x_rad,
+                   imag (coord) * y_rad);
+      slope = pt[Y_AXIS] / pt[X_AXIS];
+      create_path_cap (boxes,
+                       buildings,
+                       trans,
+                       pt,
+                       th / 2,
+                       perpendicular_slope (slope),
+                       Direction (sign (-slope)));
+    }
+}
+
+void
+make_round_filled_box_boxes (vector<Box> &boxes, PangoMatrix trans, SCM expr)
+{
+  Real left = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real right = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real bottom = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real top = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real th = robust_scm2double (scm_car (expr), 0.0);
+  //////////////////////
+  vector<Offset> points;
+  Box b;
+  Offset p0 = Offset (-left - (th / 2), -bottom - (th / 2));
+  Offset p1 = Offset (right + (th / 2), top + (th / 2));
+  pango_matrix_transform_point (&trans, &p0[X_AXIS], &p0[Y_AXIS]);
+  pango_matrix_transform_point (&trans, &p1[X_AXIS], &p1[Y_AXIS]);
+  b.add_point (p0);
+  b.add_point (p1);
+  boxes.push_back (b);
+}
+
+void
+create_path_cap (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, Offset pt, Real rad, Real slope, Direction d)
+{
+  Real angle = atan (slope) * 180 / M_PI;
+  Real other = angle > 180 ? angle - 180 : angle + 180;
+  if (angle < other)
+    {
+      Real holder = other;
+      other = angle;
+      angle = holder;
+    }
+  other = (slope >= 0 && d == DOWN) || (slope < 0 && d == UP)
+          ? other + 360.0
+          : other;
+  PangoMatrix new_trans (trans);
+  pango_matrix_translate (&new_trans, pt[X_AXIS], pt[Y_AXIS]);
+  make_partial_ellipse_boxes (boxes, buildings, new_trans,
+                              scm_list_n (scm_from_double (rad),
+                                          scm_from_double (rad),
+                                          scm_from_double (angle),
+                                          scm_from_double (other),
+                                          scm_from_double (0.0),
+                                          SCM_BOOL_F,
+                                          SCM_BOOL_F,
+                                          SCM_UNDEFINED));
+}
+
+void
+make_draw_bezier_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr)
+{
+  Real th = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real x0 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real y0 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real x1 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real y1 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real x2 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real y2 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real x3 = robust_scm2double (scm_car (expr), 0.0);
+  expr = scm_cdr (expr);
+  Real y3 = robust_scm2double (scm_car (expr), 0.0);
+  //////////////////////
+  Bezier curve;
+  curve.control_[0] = Offset (x0, y0);
+  curve.control_[1] = Offset (x1, y1);
+  curve.control_[2] = Offset (x2, y2);
+  curve.control_[3] = Offset (x3, y3);
+  Offset temp0 (x0, y0);
+  Offset temp1 (x1, y1);
+  Offset temp2 (x2, y2);
+  Offset temp3 (x3, y3);
+  pango_matrix_transform_point (&trans, &temp0[X_AXIS], &temp0[Y_AXIS]);
+  pango_matrix_transform_point (&trans, &temp1[X_AXIS], &temp1[Y_AXIS]);
+  pango_matrix_transform_point (&trans, &temp2[X_AXIS], &temp2[Y_AXIS]);
+  pango_matrix_transform_point (&trans, &temp3[X_AXIS], &temp3[Y_AXIS]);
+  //////////////////////
+  Drul_array<vector<Offset> > points;
+  Direction d = DOWN;
+  int quantization = int (((temp1 - temp0).length ()
+                           + (temp2 - temp1).length ()
+                           + (temp3 - temp2).length ())
+                          / QUANTIZATION_UNIT);
+  do
+    {
+      Offset first = get_point_in_y_direction (curve.control_[0], perpendicular_slope (curve.slope_at_point (0.0)), th / 2, d);
+      pango_matrix_transform_point (&trans, &first[X_AXIS], &first[Y_AXIS]);
+      points[d].push_back (first);
+      for (vsize i = 1; i < quantization; i++)
+        {
+          Real pt = (i * 1.0) / quantization;
+          Offset inter = get_point_in_y_direction (curve.curve_point (pt), perpendicular_slope (curve.slope_at_point (pt)), th / 2, d);
+          pango_matrix_transform_point (&trans, &inter[X_AXIS], &inter[Y_AXIS]);
+          points[d].push_back (inter);
+        }
+      Offset last = get_point_in_y_direction (curve.control_[3], curve.slope_at_point (1.0), th / 2, d);
+      pango_matrix_transform_point (&trans, &last[X_AXIS], &last[Y_AXIS]);
+      points[d].push_back (last);
+    }
+  while (flip (&d) != DOWN);
+
+  for (vsize i = 0; i < points[DOWN].size () - 1; i++)
+    {
+      Box b;
+      do
+        {
+          b.add_point (points[d][i]);
+          b.add_point (points[d][i + 1]);
+        }
+      while (flip (&d) != DOWN);
+      boxes.push_back (b);
+    }
+
+  // beg line cap
+  if (th >= 0)
+    {
+      Real slope = curve.slope_at_point (0.0);
+      d = Direction (sign (slope == 0.0 || abs (slope) == infinity_f
+                           ? curve.slope_at_point (0.0001)
+                           : slope));
+
+      create_path_cap (boxes,
+                       buildings,
+                       trans,
+                       curve.control_[0],
+                       th / 2,
+                       perpendicular_slope (curve.slope_at_point (0.0)),
+                       d);
+
+      // end line cap
+      slope = curve.slope_at_point (1.0);
+      d = Direction (sign (slope == 0.0 || abs (slope) == infinity_f
+                           ? curve.slope_at_point (0.9999)
+                           : slope));
+
+      create_path_cap (boxes,
+                       buildings,
+                       trans,
+                       curve.control_[3],
+                       th / 2,
+                       perpendicular_slope (curve.slope_at_point (1.0)),
+                       d);
+    }
+}
+
+/*
+  converts a path into lists of 4 (line) or 8 (curve) absolute coordinates
+  for example:
+  '(moveto 1 2 lineto 3 4 rlineto -1 -1 curveto 3 3 5 5 6 6 rcurveto -1 -1 -1 -1 -1 -1 closepath)
+  becomes
+  '((1 2 3 4)
+    (3 4 2 3)
+    (2 3 3 3 5 5 6 6)
+    (6 6 5 5 4 4 3 3)
+    (3 3 1 2))
+*/
+
+SCM
+all_commands_to_absolute_and_group (SCM expr)
+{
+  SCM out = SCM_EOL;
+  Offset start (0, 0);
+  Offset current (0, 0);
+  bool first = true;
+  while (scm_is_pair (expr))
+    {
+      if (scm_car (expr) == ly_symbol2scm ("moveto")
+          || (scm_car (expr) == ly_symbol2scm ("rmoveto") && first))
+        {
+          Real x = robust_scm2double (scm_cadr (expr), 0.0);
+          Real y = robust_scm2double (scm_caddr (expr), 0.0);
+          start = Offset (x, y);
+          current = start;
+          expr = scm_cdddr (expr);
+        }
+      if (scm_car (expr) == ly_symbol2scm ("rmoveto"))
+        {
+          Real x = robust_scm2double (scm_cadr (expr), 0.0);
+          Real y = robust_scm2double (scm_caddr (expr), 0.0);
+          start = (Offset (x, y) + current);
+          current = start;
+          expr = scm_cdddr (expr);
+        }
+      else if (scm_car (expr) == ly_symbol2scm ("lineto"))
+        {
+          Real x = robust_scm2double (scm_cadr (expr), 0.0);
+          Real y = robust_scm2double (scm_caddr (expr), 0.0);
+          out = scm_cons (scm_list_4 (scm_from_double (current[X_AXIS]),
+                                      scm_from_double (current[Y_AXIS]),
+                                      scm_from_double (x),
+                                      scm_from_double (y)),
+                          out);
+          current = Offset (x, y);
+          expr = scm_cdddr (expr);
+        }
+      else if (scm_car (expr) == ly_symbol2scm ("rlineto"))
+        {
+          Real x = robust_scm2double (scm_cadr (expr), 0.0);
+          Real y = robust_scm2double (scm_caddr (expr), 0.0);
+          out = scm_cons (scm_list_4 (scm_from_double (current[X_AXIS]),
+                                      scm_from_double (current[Y_AXIS]),
+                                      scm_from_double (x + current[X_AXIS]),
+                                      scm_from_double (y + current[Y_AXIS])),
+                          out);
+          current = (Offset (x, y) + current);
+          expr = scm_cdddr (expr);
+        }
+      else if (scm_car (expr) == ly_symbol2scm ("curveto"))
+        {
+          Real x1 = robust_scm2double (scm_cadr (expr), 0.0);
+          expr = scm_cddr (expr);
+          Real y1 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          Real x2 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          Real y2 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          Real x3 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          Real y3 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          out = scm_cons (scm_list_n (scm_from_double (current[X_AXIS]),
+                                      scm_from_double (current[Y_AXIS]),
+                                      scm_from_double (x1),
+                                      scm_from_double (y1),
+                                      scm_from_double (x2),
+                                      scm_from_double (y2),
+                                      scm_from_double (x3),
+                                      scm_from_double (y3),
+                                      SCM_UNDEFINED),
+                          out);
+          current = Offset (x3, y3);
+        }
+      else if (scm_car (expr) == ly_symbol2scm ("rcurveto"))
+        {
+          Real x1 = robust_scm2double (scm_cadr (expr), 0.0);
+          expr = scm_cddr (expr);
+          Real y1 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          Real x2 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          Real y2 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          Real x3 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          Real y3 = robust_scm2double (scm_car (expr), 0.0);
+          expr = scm_cdr (expr);
+          out = scm_cons (scm_list_n (scm_from_double (current[X_AXIS]),
+                                      scm_from_double (current[Y_AXIS]),
+                                      scm_from_double (x1 + current[X_AXIS]),
+                                      scm_from_double (y1 + current[Y_AXIS]),
+                                      scm_from_double (x2 + current[X_AXIS]),
+                                      scm_from_double (y2 + current[Y_AXIS]),
+                                      scm_from_double (x3 + current[X_AXIS]),
+                                      scm_from_double (y3 + current[Y_AXIS]),
+                                      SCM_UNDEFINED),
+                          out);
+          current = (Offset (x3, y3) + current);
+        }
+      else if (scm_car (expr) == ly_symbol2scm ("closepath"))
+        {
+          if ((current[X_AXIS] != start[X_AXIS]) || (current[Y_AXIS] != start[Y_AXIS]))
+            {
+              out = scm_cons (scm_list_4 (scm_from_double (current[X_AXIS]),
+                                          scm_from_double (current[Y_AXIS]),
+                                          scm_from_double (start[X_AXIS]),
+                                          scm_from_double (start[Y_AXIS])),
+                              out);
+              current = start;
+            }
+          expr = scm_cdr (expr);
+        }
+      else
+        {
+          warning ("Malformed path for path stencil.");
+          return out;
+        }
+      first = false;
+    }
+  return scm_reverse_x (out, SCM_EOL);
+}
+
+void
+internal_make_path_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr, bool use_building)
+{
+  SCM blot = scm_car (expr);
+  expr = scm_cdr (expr);
+  SCM path = all_commands_to_absolute_and_group (expr);
+  // note that expr has more stuff that we don't need after this - simply ignore it
+  //////////////////////
+  for (SCM s = path; scm_is_pair (s); s = scm_cdr (s))
+    {
+      scm_to_int (scm_length (scm_car (s))) == 4
+      ? make_draw_line_boxes (boxes, buildings, trans, scm_cons (blot, scm_car (s)), use_building)
+      : make_draw_bezier_boxes (boxes, buildings, trans, scm_cons (blot, scm_car (s)));
+    }
+}
+
+void
+make_path_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr)
+{
+  return internal_make_path_boxes (boxes, buildings, trans, scm_cons (scm_car (expr), get_path_list (scm_cdr (expr))), false);
+}
+
+void
+make_polygon_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr)
+{
+  SCM coords = get_number_list (scm_car (expr));
+  expr = scm_cdr (expr);
+  SCM blot_diameter = scm_car (expr);
+  //////////////////////
+  bool first = true;
+  SCM l = SCM_EOL;
+  for (SCM s = coords; scm_is_pair (s); s = scm_cddr (s))
+    {
+      l = scm_cons (first ? ly_symbol2scm ("moveto") : ly_symbol2scm ("lineto"), l);
+      l = scm_cons (scm_car (s), l);
+      l = scm_cons (scm_cadr (s), l);
+      first = false;
+    }
+  l = scm_cons (ly_symbol2scm ("closepath"), l);
+  internal_make_path_boxes (boxes, buildings, trans, scm_cons (blot_diameter, scm_reverse_x (l, SCM_EOL)), true);
+}
+
+void
+make_named_glyph_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr)
+{
+  SCM fm_scm = scm_car (expr);
+  Font_metric *fm = unsmob_metrics (fm_scm);
+  expr = scm_cdr (expr);
+  SCM glyph = scm_car (expr);
+  string glyph_s = ly_scm2string (glyph);
+
+  //////////////////////
+  Open_type_font *open_fm
+    = dynamic_cast<Open_type_font *>
+      (dynamic_cast<Modified_font_metric *>(fm)->original_font ());
+  SCM_ASSERT_TYPE (open_fm, fm_scm, SCM_ARG1, __FUNCTION__, "OpenType font");
+
+  size_t gidx = open_fm->name_to_index (glyph_s);
+  // Bbox is the best approximation of the width based on how it would be
+  // calculated in open-type-font.cc if it were based on real extents
+  Box bbox = open_fm->get_unscaled_indexed_char_dimensions (gidx);
+  bbox.scale (dynamic_cast<Modified_font_metric *>(fm)->get_magnification () * open_fm->design_size () / open_fm->get_units_per_EM ());
+  // Real bbox is the real bbox of the object
+  Box real_bbox = open_fm->get_glyph_outline_bbox (gidx);
+
+  Real scale = bbox[X_AXIS].length () / real_bbox[X_AXIS].length ();
+
+  pango_matrix_scale (&trans, scale, scale);
+
+  SCM outline = open_fm->get_glyph_outline (gidx);
+  //////////////////////
+  for (SCM s = outline;
+       scm_is_pair (s);
+       s = scm_cdr (s))
+    {
+      scm_to_int (scm_length (scm_car (s))) == 4
+      ? make_draw_line_boxes (boxes, buildings, trans, scm_cons (scm_from_double (0), scm_car (s)), false)
+      : make_draw_bezier_boxes (boxes, buildings, trans, scm_cons (scm_from_double (0), scm_car (s)));
+    }
+}
+
+void
+make_glyph_string_boxes (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr)
+{
+  SCM fm_scm = scm_car (expr);
+  Font_metric *fm = unsmob_metrics (fm_scm);
+  expr = scm_cdr (expr);
+  expr = scm_cdr (expr); // font-name
+  expr = scm_cdr (expr); // size
+  expr = scm_cdr (expr); // cid?
+  SCM whxy = scm_cadar (expr);
+  vector<Real> widths;
+  vector<Interval> heights;
+  vector<Real> xos;
+  vector<Real> yos;
+  vector<string> char_ids;
+  //////////////////////
+  Pango_font *pango_fm = dynamic_cast<Pango_font *> (fm);
+  SCM_ASSERT_TYPE (pango_fm, fm_scm, SCM_ARG1, __FUNCTION__, "Pango font");
+
+  for (SCM s = whxy; scm_is_pair (s); s = scm_cdr (s))
+    {
+      SCM now = scm_car (s);
+      widths.push_back (robust_scm2double (scm_car (now), 0.0));
+      now = scm_cdr (now);
+      heights.push_back (robust_scm2interval (scm_car (now), Interval (0, 0)));
+      now = scm_cdr (now);
+      xos.push_back (robust_scm2double (scm_car (now), 0.0));
+      now = scm_cdr (now);
+      yos.push_back (robust_scm2double (scm_car (now), 0.0));
+      now = scm_cdr (now);
+      char_ids.push_back (robust_scm2string (scm_car (now), ""));
+    }
+  Real cumulative_x = 0.0;
+  for (vsize i = 0; i < widths.size (); i++)
+    {
+      PangoMatrix transcopy (trans);
+      Offset pt0 (cumulative_x + xos[i], heights[i][DOWN] + yos[i]);
+      Offset pt1 (cumulative_x + widths[i] + xos[i], heights[i][UP] + yos[i]);
+      cumulative_x += widths[i];
+
+      Box kerned_bbox;
+      kerned_bbox.add_point (pt0);
+      kerned_bbox.add_point (pt1);
+      size_t gidx = pango_fm->name_to_index (char_ids[i]);
+      Box real_bbox = pango_fm->get_scaled_indexed_char_dimensions (gidx);
+      Box bbox = pango_fm->get_unscaled_indexed_char_dimensions (gidx);
+      SCM outline = pango_fm->get_glyph_outline (gidx);
+
+      // scales may have rounding error but should be close
+      Real xlen = real_bbox[X_AXIS].length () / bbox[X_AXIS].length ();
+      Real ylen = real_bbox[Y_AXIS].length () / bbox[Y_AXIS].length ();
+
+      /*
+        TODO:
+
+        The value will be nan for whitespace, in which case we just want
+        filler, so the kerned bbox is ok.
+
+        However, if the value is inf, this likely means that LilyPond is
+        using a font that is currently difficult to get the measurements
+        from the Pango_font.  This should eventually be fixed.  The solution
+        for now is just to use the bounding box.
+      */
+      if (isnan (xlen) || isnan (ylen) || isinf (xlen) || isinf (ylen))
+        outline = box_to_scheme_lines (kerned_bbox);
+      else
+        {
+          assert (abs (xlen - ylen) < 10e-3);
+
+          Real scale_factor = max (xlen, ylen);
+          // the three operations below move the stencil from its original coordinates to current coordinates
+          pango_matrix_translate (&transcopy, kerned_bbox[X_AXIS][LEFT], kerned_bbox[Y_AXIS][DOWN] - real_bbox[Y_AXIS][DOWN]);
+          pango_matrix_translate (&transcopy, real_bbox[X_AXIS][LEFT], real_bbox[Y_AXIS][DOWN]);
+          pango_matrix_scale (&transcopy, scale_factor, scale_factor);
+          pango_matrix_translate (&transcopy, -bbox[X_AXIS][LEFT], -bbox[Y_AXIS][DOWN]);
+        }
+      //////////////////////
+      for (SCM s = outline;
+           scm_is_pair (s);
+           s = scm_cdr (s))
+        {
+          scm_to_int (scm_length (scm_car (s))) == 4
+          ? make_draw_line_boxes (boxes, buildings, transcopy, scm_cons (scm_from_double (0), scm_car (s)), false)
+          : make_draw_bezier_boxes (boxes, buildings, transcopy, scm_cons (scm_from_double (0), scm_car (s)));
+        }
+    }
+}
+
+/*
+  receives a stencil expression and a transform matrix
+  depending on the stencil name, dispatches it to the appropriate function
+*/
+
+void
+stencil_dispatcher (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings, PangoMatrix trans, SCM expr)
+{
+  if (not scm_is_pair (expr))
+    return;
+  if (scm_car (expr) == ly_symbol2scm ("draw-line"))
+    make_draw_line_boxes (boxes, buildings, trans, scm_cdr (expr), true);
+  else if (scm_car (expr) == ly_symbol2scm ("dashed-line"))
+    {
+      expr = scm_cdr (expr);
+      SCM th = scm_car (expr);
+      expr = scm_cdr (expr);
+      expr = scm_cdr (expr); // on
+      expr = scm_cdr (expr); // off
+      SCM x1 = scm_car (expr);
+      expr = scm_cdr (expr);
+      SCM x2 = scm_car (expr);
+      make_draw_line_boxes (boxes, buildings, trans, scm_list_5 (th, scm_from_double (0.0), scm_from_double (0.0), x1, x2), true);
+    }
+  else if (scm_car (expr) == ly_symbol2scm ("circle"))
+    {
+      expr = scm_cdr (expr);
+      SCM rad = scm_car (expr);
+      expr = scm_cdr (expr);
+      SCM th = scm_car (expr);
+      make_partial_ellipse_boxes (boxes, buildings, trans,
+                                  scm_list_n (rad,
+                                              rad,
+                                              scm_from_double (0.0),
+                                              scm_from_double (360.0),
+                                              th,
+                                              SCM_BOOL_F,
+                                              SCM_BOOL_T,
+                                              SCM_UNDEFINED));
+    }
+  else if (scm_car (expr) == ly_symbol2scm ("ellipse"))
+    {
+      expr = scm_cdr (expr);
+      SCM x_rad = scm_car (expr);
+      expr = scm_cdr (expr);
+      SCM y_rad = scm_car (expr);
+      expr = scm_cdr (expr);
+      SCM th = scm_car (expr);
+      make_partial_ellipse_boxes (boxes, buildings, trans,
+                                  scm_list_n (x_rad,
+                                              y_rad,
+                                              scm_from_double (0.0),
+                                              scm_from_double (360.0),
+                                              th,
+                                              SCM_BOOL_F,
+                                              SCM_BOOL_T,
+                                              SCM_UNDEFINED));
+    }
+  else if (scm_car (expr) == ly_symbol2scm ("partial-ellipse"))
+    make_partial_ellipse_boxes (boxes, buildings, trans, scm_cdr (expr));
+  else if (scm_car (expr) == ly_symbol2scm ("round-filled-box"))
+    make_round_filled_box_boxes (boxes, trans, scm_cdr (expr));
+  else if (scm_car (expr) == ly_symbol2scm ("named-glyph"))
+    make_named_glyph_boxes (boxes, buildings, trans, scm_cdr (expr));
+  else if (scm_car (expr) == ly_symbol2scm ("polygon"))
+    make_polygon_boxes (boxes, buildings, trans, scm_cdr (expr));
+  else if (scm_car (expr) == ly_symbol2scm ("path"))
+    make_path_boxes (boxes, buildings, trans, scm_cdr (expr));
+  else if (scm_car (expr) == ly_symbol2scm ("glyph-string"))
+    make_glyph_string_boxes (boxes, buildings, trans, scm_cdr (expr));
+  else
+    {
+#if 0
+      warning ("Stencil expression not supported by the veritcal skylines.");
+#endif
+      /*
+        We don't issue a warning here, as we assume that stencil-expression.cc
+        is doing stencil-checking correctly.
+      */
+    }
+}
+
+/*
+  traverses a stencil expression, returning a vector of Transform_matrix_and_expression
+  the struct Transform_matrix_and_expression contains two members,
+  a Transform_matrix that indicates where to move a stencil and the stencil expression
+  to show how to construct the stencil
+*/
+vector<Transform_matrix_and_expression>
+stencil_traverser (PangoMatrix trans, SCM expr)
+{
+  if (scm_is_null (expr))
+    return vector<Transform_matrix_and_expression> ();
+  else if (expr == ly_string2scm (""))
+    return vector<Transform_matrix_and_expression> ();
+  else if (scm_car (expr) == ly_symbol2scm ("combine-stencil"))
+    {
+      vector<Transform_matrix_and_expression> out;
+      for (SCM s = scm_cdr (expr); scm_is_pair (s); s = scm_cdr (s))
+        {
+          vector<Transform_matrix_and_expression> res = stencil_traverser (trans, scm_car (s));
+          out.insert (out.end (), res.begin (), res.end ());
+        }
+      return out;
+    }
+  else if (scm_car (expr) == ly_symbol2scm ("footnote"))
+    return vector<Transform_matrix_and_expression> ();
+  else if (scm_car (expr) == ly_symbol2scm ("translate-stencil"))
+    {
+      Real x = robust_scm2double (scm_caadr (expr), 0.0);
+      Real y = robust_scm2double (scm_cdadr (expr), 0.0);
+      pango_matrix_translate (&trans, x, y);
+      return stencil_traverser (trans, scm_caddr (expr));
+    }
+  else if (scm_car (expr) == ly_symbol2scm ("scale-stencil"))
+    {
+      Real x = robust_scm2double (scm_caadr (expr), 0.0);
+      Real y = robust_scm2double (scm_cadadr (expr), 0.0);
+      pango_matrix_scale (&trans, x, y);
+      return stencil_traverser (trans, scm_caddr (expr));
+    }
+  else if (scm_car (expr) == ly_symbol2scm ("rotate-stencil"))
+    {
+      Real ang = robust_scm2double (scm_caadr (expr), 0.0);
+      Real x = robust_scm2double (scm_car (scm_cadadr (expr)), 0.0);
+      Real y = robust_scm2double (scm_cdr (scm_cadadr (expr)), 0.0);
+      pango_matrix_translate (&trans, x, y);
+      pango_matrix_rotate (&trans, -ang);
+      pango_matrix_translate (&trans, -x, -y);
+      return stencil_traverser (trans, scm_caddr (expr));
+    }
+  else if (scm_car (expr) == ly_symbol2scm ("delay-stencil-evaluation"))
+    return stencil_traverser (trans, scm_force (scm_cadr (expr)));
+  else if (scm_car (expr) == ly_symbol2scm ("grob-cause"))
+    return stencil_traverser (trans, scm_caddr (expr));
+  else if (scm_car (expr) == ly_symbol2scm ("color"))
+    return stencil_traverser (trans, scm_caddr (expr));
+  else if (scm_car (expr) == ly_symbol2scm ("id"))
+    return stencil_traverser (trans, scm_caddr (expr));
+  else
+    {
+      vector<Transform_matrix_and_expression> out;
+      out.push_back (Transform_matrix_and_expression (trans, expr));
+      return out;
+    }
+  warning ("Stencil expression not supported by the veritcal skylines.");
+  return vector<Transform_matrix_and_expression> ();
+}
+
+SCM
+Grob::internal_simple_skylines_from_stencil (SCM smob, Axis a)
+{
+  Grob *me = unsmob_grob (smob);
+
+  if (to_boolean (me->get_property ("cross-staff")))
+    return Skyline_pair ().smobbed_copy ();
+
+  extract_grob_set (me, "elements", elts);
+  if (elts.size ())
+    return internal_skylines_from_element_stencils (smob, a);
+
+  Stencil *s = unsmob_stencil (me->get_property ("stencil"));
+  if (!s)
+    return Skyline_pair ().smobbed_copy ();
+
+  vector<Box> boxes;
+  boxes.push_back (Box (s->extent (X_AXIS), s->extent (Y_AXIS)));
+  return Skyline_pair (boxes, a).smobbed_copy ();
+}
+
+MAKE_SCHEME_CALLBACK (Grob, simple_vertical_skylines_from_stencil, 1);
+SCM
+Grob::simple_vertical_skylines_from_stencil (SCM smob)
+{
+  return internal_simple_skylines_from_stencil (smob, X_AXIS);
+}
+
+MAKE_SCHEME_CALLBACK (Grob, simple_horizontal_skylines_from_stencil, 1);
+SCM
+Grob::simple_horizontal_skylines_from_stencil (SCM smob)
+{
+  return internal_simple_skylines_from_stencil (smob, Y_AXIS);
+}
+
+SCM
+Stencil::skylines_from_stencil (SCM sten, Real pad, Axis a)
+{
+  Stencil *s = unsmob_stencil (sten);
+  if (!s)
+    return Skyline_pair ().smobbed_copy ();
+
+  vector<Transform_matrix_and_expression> data
+    = stencil_traverser (make_transform_matrix (1.0, 0.0, 0.0, 1.0, 0.0, 0.0),
+                         s->expr ());
+  vector<Box> boxes;
+  vector<Drul_array<Offset> > buildings;
+  for (vsize i = 0; i < data.size (); i++)
+    stencil_dispatcher (boxes, buildings, data[i].tm_, data[i].expr_);
+
+  // we use the bounding box if there are no boxes
+  if (!boxes.size () && !buildings.size ())
+    boxes.push_back (Box (s->extent (X_AXIS), s->extent (Y_AXIS)));
+
+  Skyline_pair out (boxes, a);
+  out.merge (Skyline_pair (buildings, a));
+
+  for (DOWN_and_UP (d))
+    out[d] = out[d].padded (pad);
+
+  out.deholify ();
+  return out.smobbed_copy ();
+}
+
+MAKE_SCHEME_CALLBACK (Grob, vertical_skylines_from_stencil, 1);
+SCM
+Grob::vertical_skylines_from_stencil (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+
+  Real pad = robust_scm2double (me->get_property ("skyline-horizontal-padding"), 0.0);
+  SCM out = Stencil::skylines_from_stencil (me->get_property ("stencil"), pad, X_AXIS);
+
+  return out;
+}
+
+MAKE_SCHEME_CALLBACK (Grob, horizontal_skylines_from_stencil, 1);
+SCM
+Grob::horizontal_skylines_from_stencil (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+
+  Real pad = robust_scm2double (me->get_property ("skyline-vertical-padding"), 0.0);
+  SCM out = Stencil::skylines_from_stencil (me->get_property ("stencil"), pad, Y_AXIS);
+
+  return out;
+}
+
+SCM
+Grob::internal_skylines_from_element_stencils (SCM smob, Axis a)
+{
+  Grob *me = unsmob_grob (smob);
+
+  extract_grob_set (me, "elements", elts);
+  vector<Real> x_pos;
+  vector<Real> y_pos;
+  Grob *x_common = common_refpoint_of_array (elts, me, X_AXIS);
+  Grob *y_common = common_refpoint_of_array (elts, me, Y_AXIS);
+  for (vsize i = 0; i < elts.size (); i++)
+    {
+      x_pos.push_back (elts[i]->relative_coordinate (x_common, X_AXIS));
+      y_pos.push_back (elts[i]->relative_coordinate (y_common, Y_AXIS));
+    }
+  Real my_x = me->relative_coordinate (x_common, X_AXIS);
+  Real my_y = me->relative_coordinate (y_common, Y_AXIS);
+  Skyline_pair res;
+  for (vsize i = 0; i < elts.size (); i++)
+    {
+      Skyline_pair *skyp = Skyline_pair::unsmob (elts[i]->get_property (a == X_AXIS ? "vertical-skylines" : "horizontal-skylines"));
+      if (skyp)
+        {
+          /*
+            Here, copying is essential.  Otherwise, the skyline pair will
+            get doubly shifted!
+          */
+          /*
+            It took Mike about 6 months of his life to add the `else' clause
+            below.  For horizontal skylines, the raise and shift calls need
+            to be reversed.  This is what was causing the problems in the
+            shifting with all of the tests. RIP 6 months!
+          */
+          Skyline_pair copy = Skyline_pair (*skyp);
+          if (a == X_AXIS)
+            {
+              copy.shift (x_pos[i] - my_x);
+              copy.raise (y_pos[i] - my_y);
+            }
+          else
+            {
+              copy.raise (x_pos[i] - my_x);
+              copy.shift (y_pos[i] - my_y);
+            }
+          res.merge (copy);
+        }
+    }
+  return res.smobbed_copy ();
+}
+
+MAKE_SCHEME_CALLBACK (Grob, vertical_skylines_from_element_stencils, 1);
+SCM
+Grob::vertical_skylines_from_element_stencils (SCM smob)
+{
+  return internal_skylines_from_element_stencils (smob, X_AXIS);
+}
+
+MAKE_SCHEME_CALLBACK (Grob, horizontal_skylines_from_element_stencils, 1);
+SCM
+Grob::horizontal_skylines_from_element_stencils (SCM smob)
+{
+  return internal_skylines_from_element_stencils (smob, Y_AXIS);
+}
index 7e346ca7f821b634977571f31b17ebc03536657d..7791f02d5ac5b040759724434c877080c690500d 100644 (file)
@@ -34,6 +34,7 @@ LY_DEFINE (ly_stencil_translate_axis, "ly:stencil-translate-axis",
   Stencil *s = unsmob_stencil (stil);
   LY_ASSERT_SMOB (Stencil, stil, 1);
   LY_ASSERT_TYPE (scm_is_number, amount, 2);
+
   LY_ASSERT_TYPE (is_axis, axis, 3);
 
   Real real_amount = scm_to_double (amount);
index be3c9ec1921ac34a571911de5e7705b87ef31c3f..e3da76687d9676704963b711c3a2e583236ccfa0 100644 (file)
@@ -36,6 +36,7 @@
 #include "pointer-group-interface.hh"
 #include "skyline-pair.hh"
 #include "staff-symbol-referencer.hh"
+#include "system-start-delimiter.hh"
 #include "text-interface.hh"
 #include "warn.hh"
 #include "unpure-pure-container.hh"
@@ -404,6 +405,37 @@ System::footnotes_after_line_breaking (SCM smob)
   return grobs_scm;
 }
 
+MAKE_SCHEME_CALLBACK (System, vertical_skyline_elements, 1);
+SCM
+System::vertical_skyline_elements (SCM smob)
+{
+  Grob *me_grob = unsmob_grob (smob);
+  vector<Grob *> vertical_skyline_grobs;
+  extract_grob_set (me_grob, "elements", my_elts);
+  for (vsize i = 0; i < my_elts.size (); i++)
+    if (System_start_delimiter::has_interface (my_elts[i]))
+      vertical_skyline_grobs.push_back (my_elts[i]);
+
+  System *me = dynamic_cast<System *> (me_grob);
+  Grob *align = unsmob_grob (me->get_object ("vertical-alignment"));
+  if (!align)
+    {
+      SCM grobs_scm = Grob_array::make_array ();
+      unsmob_grob_array (grobs_scm)->set_array (vertical_skyline_grobs);
+      return grobs_scm;
+    }
+
+  extract_grob_set (align, "elements", elts);
+
+  for (vsize i = 0; i < elts.size (); i++)
+    if (Hara_kiri_group_spanner::has_interface (elts[i]))
+      vertical_skyline_grobs.push_back (elts[i]);
+
+  SCM grobs_scm = Grob_array::make_array ();
+  unsmob_grob_array (grobs_scm)->set_array (vertical_skyline_grobs);
+  return grobs_scm;
+}
+
 void
 System::break_into_pieces (vector<Column_x_positions> const &breaking)
 {
@@ -622,7 +654,7 @@ System::get_paper_system ()
     pl->set_property ("last-in-score", SCM_BOOL_T);
 
   Interval staff_refpoints;
-  if (Grob *align = get_vertical_alignment ())
+  if (Grob *align = unsmob_grob (get_object ("vertical-alignment")))
     {
       extract_grob_set (align, "elements", staves);
       for (vsize i = 0; i < staves.size (); i++)
@@ -723,22 +755,27 @@ get_root_system (Grob *me)
   return dynamic_cast<System *> (system_grob);
 }
 
-Grob *
-System::get_vertical_alignment ()
+MAKE_SCHEME_CALLBACK (System, get_vertical_alignment, 1);
+SCM
+System::get_vertical_alignment (SCM smob)
 {
-  extract_grob_set (this, "elements", elts);
+  Grob *me = unsmob_grob (smob);
+  extract_grob_set (me, "elements", elts);
   Grob *ret = 0;
   for (vsize i = 0; i < elts.size (); i++)
     if (Align_interface::has_interface (elts[i]))
       {
         if (ret)
-          programming_error ("found multiple vertical alignments in this system");
+          me->programming_error ("found multiple vertical alignments in this system");
         ret = elts[i];
       }
 
   if (!ret)
-    programming_error ("didn't find a vertical alignment in this system");
-  return ret;
+    {
+      me->programming_error ("didn't find a vertical alignment in this system");
+      return SCM_EOL;
+    }
+  return ret->self_scm ();
 }
 
 // Finds the furthest staff in the given direction whose x-extent
@@ -746,7 +783,7 @@ System::get_vertical_alignment ()
 Grob *
 System::get_extremal_staff (Direction dir, Interval const &iv)
 {
-  Grob *align = get_vertical_alignment ();
+  Grob *align = unsmob_grob (get_object ("vertical-alignment"));
   if (!align)
     return 0;
 
@@ -770,7 +807,7 @@ System::get_extremal_staff (Direction dir, Interval const &iv)
 Grob *
 System::get_neighboring_staff (Direction dir, Grob *vertical_axis_group, Interval_t<int> bounds)
 {
-  Grob *align = get_vertical_alignment ();
+  Grob *align = unsmob_grob (get_object ("vertical-alignment"));
   if (!align)
     return 0;
 
@@ -800,7 +837,7 @@ Interval
 System::pure_refpoint_extent (vsize start, vsize end)
 {
   Interval ret;
-  Grob *alignment = get_vertical_alignment ();
+  Grob *alignment = unsmob_grob (get_object ("vertical-alignment"));
   if (!alignment)
     return Interval ();
 
@@ -827,7 +864,7 @@ System::pure_refpoint_extent (vsize start, vsize end)
 Interval
 System::part_of_line_pure_height (vsize start, vsize end, bool begin)
 {
-  Grob *alignment = get_vertical_alignment ();
+  Grob *alignment = unsmob_grob (get_object ("vertical-alignment"));
   if (!alignment)
     return Interval ();
 
@@ -960,7 +997,7 @@ static SCM
 get_maybe_spaceable_staves (SCM smob, int filter)
 {
   System *me = dynamic_cast<System *> (unsmob_grob (smob));
-  Grob *align = me->get_vertical_alignment ();
+  Grob *align = unsmob_grob (me->get_object ("vertical_alignment"));
   SCM ret = SCM_EOL;
 
   if (align)
@@ -1022,5 +1059,5 @@ ADD_INTERFACE (System,
                "in-note-stencil "
                "labels "
                "pure-Y-extent "
-               "skyline-horizontal-padding "
+               "vertical-alignment "
               );
index cd906c2e8eb7f791c58f522ea2a74415f27e8423..862e7af0b52405fdd1e0d9de0c5be7699f492231 100644 (file)
@@ -19,7 +19,9 @@
 */
 
 #include "text-interface.hh"
+#include "skyline-pair.hh"
 
+#include "lookup.hh"
 #include "config.hh"
 #include "font-interface.hh"
 #include "grob.hh"
index 40da0d3e8410663881acd57eb0d191a87626ee35..07eb9196c78101a2c58ca5d4b1dabbc77cef9ad8 100644 (file)
@@ -46,9 +46,9 @@ struct Head_event_tuple
 {
   Grob *head_;
   Moment end_moment_;
-  SCM tie_definition_;
   Stream_event *tie_stream_event_;
   Stream_event *tie_event_;
+  Spanner *tie_;
   // Indicate whether a tie from the same moment has been processed successfully
   // This is needed for tied chords, e.g. <c e g>~ g, because otherwise the c
   // and e will trigger a warning for an unterminated tie!
@@ -57,15 +57,20 @@ struct Head_event_tuple
   Head_event_tuple ()
   {
     head_ = 0;
-    tie_definition_ = SCM_EOL;
     tie_event_ = 0;
     tie_stream_event_ = 0;
     tie_from_chord_created = false;
+    tie_ = 0;
   }
 };
 
 class Tie_engraver : public Engraver
 {
+  /*
+    Whether tie event has been processed and can be deleted or should
+    be kept for later portions of a split note.
+  */
+  bool event_processed_;
   Stream_event *event_;
   vector<Grob *> now_heads_;
   vector<Head_event_tuple> heads_to_tie_;
@@ -74,8 +79,8 @@ class Tie_engraver : public Engraver
   Spanner *tie_column_;
 
 protected:
+  void process_acknowledged ();
   void stop_translation_timestep ();
-  virtual void derived_mark () const;
   void start_translation_timestep ();
   DECLARE_ACKNOWLEDGER (note_head);
   DECLARE_TRANSLATOR_LISTENER (tie);
@@ -87,18 +92,11 @@ public:
   TRANSLATOR_DECLARATIONS (Tie_engraver);
 };
 
-void
-Tie_engraver::derived_mark () const
-{
-  Engraver::derived_mark ();
-  for (vsize i = 0; i < heads_to_tie_.size (); i++)
-    scm_gc_mark (heads_to_tie_[i].tie_definition_);
-}
-
 Tie_engraver::Tie_engraver ()
 {
   event_ = 0;
   tie_column_ = 0;
+  event_processed_ = false;
 }
 
 IMPLEMENT_TRANSLATOR_LISTENER (Tie_engraver, tie);
@@ -114,7 +112,10 @@ void Tie_engraver::report_unterminated_tie (Head_event_tuple const &tie_start)
   // moment that created a tie, so this is not necessarily an unterminated
   // tie. Happens e.g. for <c e g>~ g
   if (!tie_start.tie_from_chord_created)
-    tie_start.head_->warning (_ ("unterminated tie"));
+    {
+      tie_start.tie_->warning (_ ("unterminated tie"));
+      tie_start.tie_->suicide ();
+    }
 }
 
 /*
@@ -166,20 +167,21 @@ Tie_engraver::acknowledge_note_head (Grob_info i)
       if (ly_is_equal (right_ev->get_property ("pitch"), left_ev->get_property ("pitch"))
           && (!Tie_engraver::has_autosplit_end (left_ev)))
         {
-          Grob *p = new Spanner (heads_to_tie_[i].tie_definition_);
+          Grob *p = heads_to_tie_[i].tie_;
           Moment end = heads_to_tie_[i].end_moment_;
 
-          SCM cause = heads_to_tie_[i].tie_event_
-                      ? heads_to_tie_[i].tie_event_->self_scm ()
-                      : heads_to_tie_[i].tie_stream_event_->self_scm ();
+          Stream_event *cause = heads_to_tie_[i].tie_event_
+                                    ? heads_to_tie_[i].tie_event_
+                                    : heads_to_tie_[i].tie_stream_event_;
+
+          announce_end_grob (p, cause->self_scm ());
 
-          announce_grob (p, cause);
           Tie::set_head (p, LEFT, th);
           Tie::set_head (p, RIGHT, h);
 
-          if (is_direction (unsmob_stream_event (cause)->get_property ("direction")))
+          if (is_direction (cause->get_property ("direction")))
             {
-              Direction d = to_dir (unsmob_stream_event (cause)->get_property ("direction"));
+              Direction d = to_dir (cause->get_property ("direction"));
               p->set_property ("direction", scm_from_int (d));
             }
 
@@ -229,7 +231,7 @@ Tie_engraver::start_translation_timestep ()
 }
 
 void
-Tie_engraver::stop_translation_timestep ()
+Tie_engraver::process_acknowledged ()
 {
   bool wait = to_boolean (get_property ("tieWaitForNote"));
   if (ties_.size ())
@@ -251,11 +253,6 @@ Tie_engraver::stop_translation_timestep ()
 
   vector<Head_event_tuple> new_heads_to_tie;
 
-  /*
-    Whether tie event has been processed and can be deleted or should
-    be kept for later portions of a split note.
-  */
-  bool event_processed = false;
 
   for (vsize i = 0; i < now_heads_.size (); i++)
     {
@@ -292,17 +289,16 @@ Tie_engraver::stop_translation_timestep ()
       if (left_ev && (tie_event || tie_stream_event)
           && (!Tie_engraver::has_autosplit_end (left_ev)))
         {
-          event_processed = true;
+          event_processed_ = true;
 
           Head_event_tuple event_tup;
 
-          SCM start_definition
-            = updated_grob_properties (context (), ly_symbol2scm ("Tie"));
-
           event_tup.head_ = head;
-          event_tup.tie_definition_ = start_definition;
           event_tup.tie_event_ = tie_event;
           event_tup.tie_stream_event_ = tie_stream_event;
+          event_tup.tie_ = make_spanner ("Tie", tie_event
+                                    ? tie_event->self_scm ()
+                                    : tie_stream_event->self_scm ());
 
           Moment end = now_mom ();
           if (end.grace_part_)
@@ -331,14 +327,20 @@ Tie_engraver::stop_translation_timestep ()
   for (vsize i = 0; i < new_heads_to_tie.size (); i++)
     heads_to_tie_.push_back (new_heads_to_tie[i]);
 
+  now_heads_.clear ();
+}
+
+void
+Tie_engraver::stop_translation_timestep ()
+{
   /*
     Discard event only if it has been processed with at least one
     appropriate note.
   */
-  if (event_processed)
+  if (event_processed_)
     event_ = 0;
 
-  now_heads_.clear ();
+  event_processed_ = false;
 }
 
 void
index f514b390957628461d0fa63940823086d09afdd8..304e4b3b2ad0d06e62ce2ea2598c1334f6d9169d 100644 (file)
@@ -243,8 +243,7 @@ Tie_formatting_problem::set_column_chord_outline (vector<Item *> bounds,
         boxes.push_back (Box (x, y));
     }
 
-  /* todo: the horizon_padding is somewhat arbitrary */
-  chord_outlines_[key] = Skyline (boxes, details_.skyline_padding_, Y_AXIS, -dir);
+  chord_outlines_[key] = Skyline (boxes, Y_AXIS, -dir).padded (details_.skyline_padding_);
   if (bounds[0]->break_status_dir ())
     {
       Interval iv (Axis_group_interface::staff_extent (bounds[0], x_refpoint_, X_AXIS, y_refpoint_, Y_AXIS));
index 1b75bf923cd8b9cd33ee4909dae2ed1784465061..4348044fbe002c5cc15f6a69802f4839766e536d 100644 (file)
@@ -217,7 +217,8 @@ Tuplet_engraver::acknowledge_script (Grob_info inf)
     if (tuplets_[j].bracket_)
       {
         Item *i = dynamic_cast<Item *> (inf.grob ());
-        Tuplet_bracket::add_script (tuplets_[j].bracket_, i);
+        if (!i->internal_has_interface (ly_symbol2scm ("dynamic-interface")))
+          Tuplet_bracket::add_script (tuplets_[j].bracket_, i);
       }
 }
 
index d6fb7855224349f018e762cc23aea1c13ed6cc14..188780c59171e6b5388938b4c847f836567425fe 100644 (file)
@@ -46,15 +46,32 @@ Tweak_engraver::acknowledge_grob (Grob_info info)
     ev = info.ultimate_event_cause ();
   if (ev)
     {
+      // Each tweak conses an address and a value.
+      // The address has one of the following forms:
+      // symbol -> direct tweak
+      // (grob . symbol) -> targeted tweak
+      // (#t . symbol-path) -> direct nested tweak
+      // (grob . symbol-path) -> targeted nested tweak
       for (SCM s = ev->get_property ("tweaks");
            scm_is_pair (s); s = scm_cdr (s))
         {
           if (scm_is_pair (scm_caar (s)))
             {
-              if (SCM_UNBNDP (grobname))
-                grobname = scm_from_locale_symbol (info.grob ()->name ().c_str ());
-              if (scm_is_eq (scm_caaar (s), grobname))
-                info.grob ()->set_property (scm_cdaar (s), scm_cdar (s));
+              if (scm_is_symbol (scm_caaar (s)))
+                {
+                  if (SCM_UNBNDP (grobname))
+                    grobname = scm_from_locale_symbol
+                      (info.grob ()->name ().c_str ());
+                  if (scm_is_eq (scm_caaar (s), grobname))
+                    if (scm_is_symbol (scm_cdaar (s)))
+                      info.grob ()->set_property (scm_cdaar (s), scm_cdar (s));
+                    else
+                      set_nested_property (info.grob (), scm_cdaar (s),
+                                           scm_cdar (s));
+                }
+              else if (direct)
+                set_nested_property (info.grob (), scm_cdaar (s),
+                                     scm_cdar (s));
             }
           else if (direct)
             info.grob ()->set_property (scm_caar (s), scm_cdar (s));
index 2caba1216efc9dae103655f11c5fe5315b3039e2..097cb9d80c46fc1f2baea71b6de1424a284265d9 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
 
 
   LilyPond is free software: you can redistribute it and/or modify
index 2e3148cc2884ecfde792223b7bbed4cc567fe01f..2372b511f20d306d9152a3daa229c6e4e8a0ba67 100644 (file)
@@ -67,7 +67,7 @@ private:
                                int context_info, int delta_pitch);
   bool is_stacked_head (int prefix_set,
                         int context_info);
-  Real align_heads (vector<Grob_info> primitives,
+  Real align_heads (vector<Grob_info> const &primitives,
                     Real flexa_width,
                     Real thickness);
   void check_for_prefix_loss (Item *primitive);
@@ -81,7 +81,7 @@ public:
 protected:
   virtual Spanner *create_ligature_spanner ();
   virtual void transform_heads (Spanner *ligature,
-                                vector<Grob_info> primitives);
+                                vector<Grob_info> const &primitives);
   DECLARE_TRANSLATOR_LISTENER (pes_or_flexa);
   DECLARE_TRANSLATOR_LISTENER (ligature);
 };
@@ -199,7 +199,7 @@ Vaticana_ligature_engraver::need_extra_horizontal_space (int prev_prefix_set, in
 }
 
 Real
-Vaticana_ligature_engraver::align_heads (vector<Grob_info> primitives,
+Vaticana_ligature_engraver::align_heads (vector<Grob_info> const &primitives,
                                          Real flexa_width,
                                          Real thickness)
 {
@@ -473,7 +473,7 @@ Vaticana_ligature_engraver::check_for_ambiguous_dot_pitch (Grob_info primitive)
 
 void
 Vaticana_ligature_engraver::transform_heads (Spanner *ligature,
-                                             vector<Grob_info> primitives)
+                                             vector<Grob_info> const &primitives)
 {
   Real flexa_width = robust_scm2double (ligature->get_property ("flexa-width"), 2);
 
index 317b47ee8d54e9e91f1cd31135c96aa1d0ca9816..7b0fd1341179b4cddc88e5293933debdcb4eb6b6 100644 (file)
@@ -52,7 +52,6 @@ Volta_bracket_interface::print (SCM smob)
                                             == (Spanner *)me);
 
   Output_def *layout = me->layout ();
-  Real half_space = 0.5;
 
   Item *bound = dynamic_cast<Spanner *> (me)->get_bound (LEFT);
 
@@ -92,7 +91,7 @@ Volta_bracket_interface::print (SCM smob)
 
   Interval empty;
   Offset start;
-  start[X_AXIS] = me->spanner_length () - left - half_space;
+  start[X_AXIS] = me->spanner_length () - left;
 
   /*
     ugh, Tuplet_bracket should use Horizontal_bracket, not the other way around.
@@ -138,14 +137,8 @@ Volta_bracket_interface::modify_edge_height (Spanner *me)
   else
     str = "|";
 
-  no_vertical_end
-  |= (str != ":|"
-      && str != "|:"
-      && str != "|."
-      && str != ":|:"
-      && str != ":|.|:"
-      && str != ":|.:"
-      && str != ".|");
+  no_vertical_end |= ly_scm2bool (scm_call_1 (ly_lily_module_constant ("volta-bracket::calc-hook-visibility"),
+                                             ly_string2scm (str)));
 
   if (no_vertical_end || no_vertical_start)
     {
@@ -179,5 +172,6 @@ ADD_INTERFACE (Volta_bracket_interface,
                "bars "
                "thickness "
                "height "
+               "shorten-pair "
               );
 
index 0f631885628b0b2db001efefdbf5460ec8f3e0f0..645b47ae68b234a781ce8830c87cdae9a9091662 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 \language "italiano"
 
 %%%%%%%
@@ -21,7 +21,7 @@
 %
 
 dwn = {
-  \once \override Voice.Accidental #'stencil = #(lambda (grob)
+  \once \override Voice.Accidental.stencil = #(lambda (grob)
   (ly:stencil-combine-at-edge
     (ly:accidental-interface::print grob) Y UP
     (grob-interpret-markup grob (markup #:line
index 85b216ab40693d66b0fd3c6817c728222dfaea30..ea252970aab58bc21f754f75c3799162b98231be 100644 (file)
@@ -9,7 +9,7 @@
   $Id: bagpipe.ly,v 1.12 2006/03/16 14:39:46 hanwen Exp $
 %}
 
-\version "2.16.0"
+\version "2.17.6"
 
 % Notes of the scale of the Great Highland Bagpipe. Extra high notes for bombarde.
 % Flat notes used mainly in some modern music.
@@ -38,17 +38,17 @@ pitchnames = \pitchnamesBagpipe
 
 hideKeySignature = {
   % We normally don't want to show the key signature.
-  \override Staff.KeySignature  #'stencil = ##f
+  \override Staff.KeySignature.stencil = ##f
   \set Staff.extraNatural = ##f
   \key d \major
-  \accidentalStyle "forget"
+  \accidentalStyle forget
 }
 showKeySignature = {
   % Show the key signature e.g. for BMW compatibility.
-  \override Staff.KeySignature  #'stencil = #ly:key-signature-interface::print
+  \override Staff.KeySignature.stencil = #ly:key-signature-interface::print
   \set Staff.extraNatural = ##f
   \key d \major
-  \accidentalStyle "forget"
+  \accidentalStyle forget
 }
 
 % Layout tweaks.
@@ -57,10 +57,10 @@ showKeySignature = {
   \context {
     \Voice
     % All stems go down.
-    \override Stem #'direction = #DOWN
+    \override Stem.direction = #DOWN
     % All slurs and ties are on top.
-    \override Slur #'direction = #UP
-    \override Tie #'direction = #UP
+    \override Slur.direction = #UP
+    \override Tie.direction = #UP
   }
 }
 
@@ -89,13 +89,13 @@ marchTime = {
 
 % Add appropriate tweaks needed for piping grace notes to look great.
 stemspace = #(define-music-function (parser location extent) (pair?) #{
-  \once \override Staff.Stem #'X-extent = #extent
+  \once \override Staff.Stem.X-extent = #extent
 #})
 pgrace = #(define-music-function (parser location notes) (ly:music?) #{
-  \override Score.GraceSpacing #'spacing-increment = #0
-  \override Score.Stem #'beamlet-max-length-proportion = #'(0.5 . 0.5)
+  \override Score.GraceSpacing.spacing-increment = #0
+  \override Score.Stem.beamlet-max-length-proportion = #'(0.5 . 0.5)
   \small \grace $notes \normalsize
-  \revert Score.Stem #'beamlet-default-length
+  \revert Score.Stem.beamlet-default-length
 #})
 
 % Single grace notes
index 1b8201879e7148329846618b665eac3f745cf0c7..c4378a8e6629537e9b0cec985b1ec5e2eaa0e230 100644 (file)
@@ -16,7 +16,7 @@
 %%%% You should have received a copy of the GNU General Public License
 %%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
-\version "2.16.0"
+\version "2.17.6"
 
 RemoveEmptyStaves = \with {
   \remove "Axis_group_engraver"
@@ -27,7 +27,7 @@ RemoveEmptyStaves = \with {
   % is left before adding a new one.
   \remove "Hara_kiri_engraver"
   \consists "Hara_kiri_engraver"
-  \override VerticalAxisGroup #'remove-empty = ##t
+  \override VerticalAxisGroup.remove-empty = ##t
   \description "Remove staves which are considered to be empty according
 to the list of interfaces set by @code{keepAliveInterfaces}."
 }
index f417f10d945fbbc42f7b9ca4f6b0d7d3a8a9e1b8..c2bdb96b70bfec25937f8cef51191c887028ac96 100644 (file)
@@ -16,7 +16,7 @@
 %%%% You should have received a copy of the GNU General Public License
 %%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
-\version "2.16.0"
+\version "2.17.6"
 
 %% < 1.8 compatibility switch
 #(ly:set-option 'old-relative)
@@ -54,10 +54,10 @@ bigger = #1
 center = #0
 
 %% FIXME
-%% should also set \override Beam #'breakable, but how to do it "portably"? (ie. also
+%% should also set \override Beam.breakable, but how to do it "portably"? (ie. also
 %% working with lyric sections)
 %%
-%% try \once \override Score.Beam #'breakable = ##t
+%% try \once \override Score.Beam.breakable = ##t
 
 %% rather name \newline, \pageBreak ?
 break = #(make-music 'LineBreakEvent 'break-permission 'force)
index 4d2329032da616cd4dea626c141d26140f2a4601..5698011076efd026c21625f18a473743e43c0de5 100644 (file)
@@ -16,7 +16,7 @@
 %%%% You should have received a copy of the GNU General Public License
 %%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
-\version "2.16.0"
+\version "2.17.6"
 
 \context {
   \name "Global"
@@ -85,7 +85,6 @@
   \consists "Figured_bass_position_engraver"
   \consists "Script_row_engraver"
   \consists "Cue_clef_engraver"
-  \consists "Footnote_engraver"
 
   localKeySignature = #'()
   createSpacing = ##t
 
   clefGlyph = #"clefs.percussion"
   clefPosition = #0
-  \override Script #'staff-padding = #0.75
+  \override Script.staff-padding = #0.75
 }
 
 
@@ -169,12 +168,12 @@ contained staves are not connected vertically."
   \name RhythmicStaff
   \alias "Staff"
 
-  \override BarLine #'bar-extent = #'(-2 . 2)
-  \override VoltaBracket #'staff-padding = #3
-  \override StaffSymbol #'line-count = #1
+  \override BarLine.bar-extent = #'(-2 . 2)
+  \override VoltaBracket.staff-padding = #3
+  \override StaffSymbol.line-count = #1
 
-  \override Stem  #'neutral-direction = #UP
-  \override Beam  #'neutral-direction = #UP
+  \override Stem.neutral-direction = #UP
+  \override Beam.neutral-direction = #UP
 
   \consists "Output_property_engraver"
   \consists "Font_size_engraver"
@@ -260,6 +259,7 @@ multiple voices on the same staff."
 
   \consists "Script_engraver"
   \consists "Script_column_engraver"
+  \consists "Fingering_column_engraver"
   \consists "Rhythmic_column_engraver"
   \consists "Note_spacing_engraver"
   \consists "Spanner_break_forbid_engraver"
@@ -278,9 +278,9 @@ multiple voices on the same staff."
   \name CueVoice
   \alias Voice
   fontSize = #-4
-  \override Stem #'length-fraction = #(magstep -4)
-  \override Beam #'length-fraction = #(magstep -4)
-  \override Beam #'beam-thickness = #0.35
+  \override Stem.length-fraction = #(magstep -4)
+  \override Beam.length-fraction = #(magstep -4)
+  \override Beam.beam-thickness = #0.35
 }
 
 \context {
@@ -402,18 +402,19 @@ a collection of staves, with a bracket in front and spanning bar lines."
   \consists "Dynamic_align_engraver"
   \consists "Text_engraver"
   \consists "Text_spanner_engraver"
+  \consists "Font_size_engraver"
   \consists "Axis_group_engraver"
   \consists "Tweak_engraver"
 
   pedalSustainStrings = #'("Ped." "*Ped." "*")
   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
-  \override VerticalAxisGroup #'staff-affinity = #CENTER
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
+  \override VerticalAxisGroup.staff-affinity = #CENTER
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
     #'((basic-distance . 5)
        (padding . 0.5))
-  \override TextScript #'font-shape = #'italic
-  \override DynamicLineSpanner #'Y-offset = #0
-  \override DynamicText #'X-offset =
+  \override TextScript.font-shape = #'italic
+  \override DynamicLineSpanner.Y-offset = #0
+  \override DynamicText.X-offset =
   #(ly:make-simple-closure
     `(,+
       ,(ly:make-simple-closure
@@ -447,27 +448,27 @@ printing of a single line of lyrics."
   instrumentName = #'()
   shortInstrumentName = #'()
 
-  \override VerticalAxisGroup #'remove-first = ##t
-  \override VerticalAxisGroup #'remove-empty = ##t
-  \override VerticalAxisGroup #'staff-affinity = #UP
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
+  \override VerticalAxisGroup.remove-first = ##t
+  \override VerticalAxisGroup.remove-empty = ##t
+  \override VerticalAxisGroup.staff-affinity = #UP
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
     #'((basic-distance . 5.5)
        (padding . 0.5)
        (stretchability . 1))
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing =
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing =
      #'((basic-distance . 0)
        (minimum-distance . 2.8)
        (padding . 0.2)
        (stretchability . 0))
-  \override VerticalAxisGroup #'nonstaff-unrelatedstaff-spacing #'padding = #1.5
-  \override InstrumentName #'self-alignment-Y = ##f
+  \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = #1.5
+  \override InstrumentName.self-alignment-Y = ##f
 
   %% sync with define-grobs.scm ;
-  \override InstrumentName #'font-size = #1.0
+  \override InstrumentName.font-size = #1.0
 
   %% make sure that barlines aren't collapsed, when
   %% Bar_engraver is there.
-  \override BarLine #'bar-extent = #'(-0.05 . 0.05)
+  \override BarLine.bar-extent = #'(-0.05 . 0.05)
 
 }
 
@@ -477,18 +478,17 @@ printing of a single line of lyrics."
   \description "A context for printing the names of notes."
   \consists "Axis_group_engraver"
 
-  \override VerticalAxisGroup #'staff-affinity = #UP
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing =
+  \override VerticalAxisGroup.staff-affinity = #UP
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 2.8)
        (padding . 0.2)
        (stretchability . 0))
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
     #'((basic-distance . 5.5)
        (padding . 0.5)
        (stretchability . 1))
-  \override VerticalAxisGroup
-    #'nonstaff-unrelatedstaff-spacing #'padding = 1.5
+  \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = 1.5
 
   \consists "Tie_engraver"
   \consists "Note_name_engraver"
@@ -505,11 +505,11 @@ printing of a single line of lyrics."
   \consists "Chord_name_engraver"
   \consists "Hara_kiri_engraver"
 %  \consists "Note_spacing_engraver"
-  \override VerticalAxisGroup #'remove-first = ##t
-  \override VerticalAxisGroup #'remove-empty = ##t
-  \override VerticalAxisGroup #'staff-affinity = #DOWN
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5
+  \override VerticalAxisGroup.remove-first = ##t
+  \override VerticalAxisGroup.remove-empty = ##t
+  \override VerticalAxisGroup.staff-affinity = #DOWN
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #0.5
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing.padding = #0.5
 }
 
 \context {
@@ -604,11 +604,13 @@ automatically when an output definition (a @code{\score} or
   decrescendoSpanner = #'hairpin
 
   defaultBarType = #"|"
-  doubleRepeatType = #":|:"
-  startRepeatType = #"|:"
-  endRepeatType = #":|"
+  doubleRepeatType = #":..:"
+  startRepeatType = #".|:"
+  endRepeatType = #":|."
   barNumberVisibility = #first-bar-number-invisible-and-no-parenthesized-bar-numbers
   barNumberFormatter = #robust-bar-number-function
+  clefOctavationFormatter = #clef-octavation-markup
+  cueClefOctavationFormatter = #clef-octavation-markup
   automaticBars = ##t
 
   explicitClefVisibility = #all-visible
@@ -767,11 +769,11 @@ automatically when an output definition (a @code{\score} or
   \consists "Separating_line_group_engraver"
   \consists "Hara_kiri_engraver"
 
-  \override VerticalAxisGroup #'remove-empty = ##t
-  \override VerticalAxisGroup #'remove-first = ##t
-  \override VerticalAxisGroup #'staff-affinity = #UP
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5
+  \override VerticalAxisGroup.remove-empty = ##t
+  \override VerticalAxisGroup.remove-first = ##t
+  \override VerticalAxisGroup.staff-affinity = #UP
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #0.5
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing.padding = #0.5
 }
 
 \context {
@@ -802,69 +804,69 @@ context."
   %% TabStaff increase the staff-space, which in turn
   %% increases beam thickness and spacing; beams are
   %% too big. We have to adjust the beam settings:
-  \override Beam #'beam-thickness = #0.32
-  \override Beam #'length-fraction = #0.62
+  \override Beam.beam-thickness = #0.32
+  \override Beam.length-fraction = #0.62
   %% the same goes for tremolo beams
-  \override StemTremolo #'beam-thickness = #0.32
+  \override StemTremolo.beam-thickness = #0.32
   %% NOTE: in lily/stem-tremolo.cc, we have length-fraction = 1,
   %% and the tablature staff space is scaled (1.5 by default),
   %% so we use the inversion of the scale factor:
-  \override StemTremolo #'length-fraction = #(lambda (grob)
+  \override StemTremolo.length-fraction = #(lambda (grob)
                                                (/ 1 (ly:staff-symbol-staff-space grob)))
-  \override StemTremolo #'beam-width = #stem-tremolo::calc-tab-width
+  \override StemTremolo.beam-width = #stem-tremolo::calc-tab-width
 
   %% No accidental in tablature !
   \remove "Accidental_engraver"
   %% make the Stems as short as possible to minimize their influence
   %% on the slur::calc-control-points routine
-  \override Stem #'no-stem-extend = ##t
-  \override Flag #'style = #'no-flag
-  \override Stem #'details = #'((lengths 0 0 0 0 0 0)
+  \override Stem.no-stem-extend = ##t
+  \override Flag.style = #'no-flag
+  \override Stem.details = #'((lengths 0 0 0 0 0 0)
                                 (beamed-lengths 0 0 0)
                                 (beamed-minimum-free-lengths 0 0 0)
                                 (beamed-extreme-minimum-free-lengths 0 0)
                                 (stem-shorten 0 0))
   %% after all, the stubs of the stems may still be visible, so ...
-  \override Stem #'stencil = ##f
-  \override Flag #'stencil = ##f
+  \override Stem.stencil = ##f
+  \override Flag.stencil = ##f
   %% automatic beams should be suppressed for similar reasons ...
   autoBeaming = ##f
   %% remove beams, dots and rests ...
-  \override Beam #'stencil = ##f
-  \override StemTremolo #'stencil = ##f
-  \override Dots #'stencil = ##f
-  \override Rest #'stencil = ##f
-  \override MultiMeasureRest #'stencil = ##f
-  \override MultiMeasureRestNumber #'stencil = ##f
-  \override MultiMeasureRestText #'stencil = ##f
+  \override Beam.stencil = ##f
+  \override StemTremolo.stencil = ##f
+  \override Dots.stencil = ##f
+  \override Rest.stencil = ##f
+  \override MultiMeasureRest.stencil = ##f
+  \override MultiMeasureRestNumber.stencil = ##f
+  \override MultiMeasureRestText.stencil = ##f
   %% ... all kinds of ties/slurs
-  \override Tie  #'stencil = ##f
-  \override RepeatTie #'stencil = ##f
-  \override LaissezVibrerTie #'stencil = ##f
-  \override Slur #'stencil = #slur::draw-tab-slur
-  \override PhrasingSlur #'stencil = ##f
+  \override Tie.stencil = ##f
+  \override RepeatTie.stencil = ##f
+  \override LaissezVibrerTie.stencil = ##f
+  \override Slur.stencil = #slur::draw-tab-slur
+  \override PhrasingSlur.stencil = ##f
   %% 'tied to' fret numbers become invisible or parenthesized, respectively)
-  \override Tie #'after-line-breaking = #tie::handle-tab-note-head
-  \override RepeatTie #'after-line-breaking = #repeat-tie::handle-tab-note-head
+  \override Tie.after-line-breaking = #tie::handle-tab-note-head
+  \override RepeatTie.after-line-breaking = #repeat-tie::handle-tab-note-head
   %% ... and all kinds of markups, spanners etc.
-  \override TupletBracket #'stencil = ##f
-  \override TupletNumber #'stencil = ##f
-  \override DynamicText #'stencil = ##f
-  \override DynamicTextSpanner #'stencil = ##f
-  \override TextSpanner #'stencil = ##f
-  \override Hairpin #'stencil = ##f
-  \override Script #'stencil = ##f
-  \override TextScript #'stencil = ##f
-  \override Glissando #'stencil = #glissando::draw-tab-glissando
+  \override TupletBracket.stencil = ##f
+  \override TupletNumber.stencil = ##f
+  \override DynamicText.stencil = ##f
+  \override DynamicTextSpanner.stencil = ##f
+  \override TextSpanner.stencil = ##f
+  \override Hairpin.stencil = ##f
+  \override Script.stencil = ##f
+  \override TextScript.stencil = ##f
+  \override Glissando.stencil = #glissando::draw-tab-glissando
   %% the direction for glissando lines will be automatically corrected
-  \override Glissando #'extra-dy = #glissando::calc-tab-extra-dy
-  \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
+  \override Glissando.extra-dy = #glissando::calc-tab-extra-dy
+  \override Glissando.bound-details.right = #`((attach-dir . ,LEFT)
                                                   (padding . 0.3))
-  \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
+  \override Glissando.bound-details.left = #`((attach-dir . ,RIGHT)
                                                   (padding . 0.3))
   %% dead notes
-  \override TabNoteHead #'glyph-name = #tab-note-head::calc-glyph-name
-  \override TabNoteHead #'stencil = #tab-note-head::whiteout-if-style-set
+  \override TabNoteHead.glyph-name = #tab-note-head::calc-glyph-name
+  \override TabNoteHead.stencil = #tab-note-head::whiteout-if-style-set
 }
 
 \context {
@@ -881,10 +883,10 @@ contexts and handles the line spacing, the tablature clef etc. properly."
   \defaultchild "TabVoice"
 
   %% 6 strings, bigger spacing
-  \override StaffSymbol #'staff-space = #1.5
+  \override StaffSymbol.staff-space = #1.5
 
   %% Don't draw stems over the tablature figures !
-  \override Stem #'avoid-note-head = ##t
+  \override Stem.avoid-note-head = ##t
 
   %% No accidental in tablature !
   \remove "Accidental_engraver"
@@ -892,14 +894,14 @@ contexts and handles the line spacing, the tablature clef etc. properly."
 
   \remove "Ottava_spanner_engraver"
   %% the clef handler
-  \override Clef #'stencil = #clef::print-modern-tab-if-set
+  \override Clef.stencil = #clef::print-modern-tab-if-set
   %% no time signature
-  \override TimeSignature #'stencil = ##f
+  \override TimeSignature.stencil = ##f
   %% no arpeggios
-  \override Arpeggio #'stencil = ##f
+  \override Arpeggio.stencil = ##f
   %% we ignore collision warnings that may occur due to
   %% stem overlapping, because we have no stems ;-)
-  \override NoteColumn #'ignore-collision = ##t
+  \override NoteColumn.ignore-collision = ##t
   %% Special "TAB" clef
   clefGlyph = #"clefs.tab"
   clefPosition = #0
@@ -925,11 +927,11 @@ of Editio Vaticana."
   \consists "Episema_engraver"
 
   %% Set default head for notes outside of \[ \].
-  \override NoteHead #'style = #'vaticana.punctum
+  \override NoteHead.style = #'vaticana.punctum
 
   %% Put some space before and after divisiones.
   %% FIXME: This does not seem to show any effect.
-  \override Script #'padding = #0.5
+  \override Script.padding = #0.5
 
   %% There are no beams in Gregorian Chant notation.
   autoBeaming = ##f
@@ -953,13 +955,13 @@ of Editio Vaticana."
   %% We can not remove Bar_engraver; otherwise clefs and custodes will
   %% not show up any more among other line breaking issues.
   %% Instead, we make the grob transparent.
-  \override BarLine #'transparent = ##t
+  \override BarLine.transparent = ##t
 
-  \override StaffSymbol #'line-count = #4
-  \override StaffSymbol #'thickness = #0.6
+  \override StaffSymbol.line-count = #4
+  \override StaffSymbol.thickness = #0.6
 
   %% FIXME: unit on StaffSymbol's width should be \linewidth.
-  %% \override StaffSymbol #'width = #60.0
+  %% \override StaffSymbol.width = #60.0
 
   %% Choose vaticana do clef on 3rd line as default.
   clefGlyph = #"clefs.vaticana.do"
@@ -969,12 +971,12 @@ of Editio Vaticana."
   clefOctavation = #0
 
   %% Select vaticana style font.
-  \override KeySignature #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
-  \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
-  \override Custos #'style = #'vaticana
-  \override Custos #'neutral-position = #3
-  \override Custos #'neutral-direction = #DOWN
-  \override Dots #'style = #'vaticana
+  \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist
+  \override Accidental.glyph-name-alist = #alteration-vaticana-glyph-name-alist
+  \override Custos.style = #'vaticana
+  \override Custos.neutral-position = #3
+  \override Custos.neutral-direction = #DOWN
+  \override Dots.style = #'vaticana
 }
 
 \context {
@@ -987,11 +989,11 @@ of Editio Vaticana."
   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
   %% warning for every "\[" and "\]".  Therefore, we make the grob
   %% transparent instead.
-  \override LigatureBracket #'transparent = ##t
+  \override LigatureBracket.transparent = ##t
 
   %% Put some space before and after divisiones.
   %% FIXME: This does not seem to show any effect.
-  \override Script #'padding = #0.5
+  \override Script.padding = #0.5
 
   %% There are no beams in Gregorian Chant notation.
   autoBeaming = ##f
@@ -1009,7 +1011,7 @@ of Editio Vaticana."
   %% We can not remove Bar_engraver; otherwise clefs and custodes will
   %% not show up any more among other line breaking issues.
   %% Instead, we make the grob transparent.
-  \override BarLine #'transparent = ##t
+  \override BarLine.transparent = ##t
 }
 
 \context {
@@ -1024,9 +1026,9 @@ accommodated for typesetting a piece in mensural style."
   \consists "Mensural_ligature_engraver"
 
   %% Set default head for notes outside of \[ \].
-  \override NoteHead #'style = #'mensural
-  \override Rest #'style = #'mensural
-  \override Flag #'style = #'mensural
+  \override NoteHead.style = #'mensural
+  \override Rest.style = #'mensural
+  \override Flag.style = #'mensural
 
   %% There are no beams in mensural notation.
   autoBeaming = ##f
@@ -1047,12 +1049,12 @@ accommodated for typesetting a piece in mensural style."
   %% We can not remove Bar_engraver; otherwise clefs and custodes will
   %% not show up any more among other line breaking issues.
   %% Instead, we make the grob transparent.
-  \override BarLine #'transparent = ##t
+  \override BarLine.transparent = ##t
 
-  \override StaffSymbol #'thickness = #0.6
+  \override StaffSymbol.thickness = #0.6
 
   %% FIXME: unit on StaffSymbol's width should be \linewidth.
-  %% \override StaffSymbol #'width = #60.0
+  %% \override StaffSymbol.width = #60.0
 
   %% Choose mensural g clef on 2nd line as default.
   clefGlyph = #"clefs.mensural.g"
@@ -1062,15 +1064,15 @@ accommodated for typesetting a piece in mensural style."
   clefOctavation = #0
 
   %% Select mensural style font.
-  \override TimeSignature #'style = #'mensural
-  \override KeySignature #'glyph-name-alist = #alteration-mensural-glyph-name-alist
-  \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
-  \override Custos #'style = #'mensural
-  \override Custos #'neutral-position = #3
-  \override Custos #'neutral-direction = #DOWN
+  \override TimeSignature.style = #'mensural
+  \override KeySignature.glyph-name-alist = #alteration-mensural-glyph-name-alist
+  \override Accidental.glyph-name-alist = #alteration-mensural-glyph-name-alist
+  \override Custos.style = #'mensural
+  \override Custos.neutral-position = #3
+  \override Custos.neutral-direction = #DOWN
 
   %% Accidentals are valid only once (same as
-  %% \accidentalStyle "forget")
+  %% \accidentalStyle forget)
   extraNatural = ##f
   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1))
   autoCautionaries = #'()
@@ -1088,12 +1090,12 @@ accommodated for typesetting a piece in Petrucci style."
   \consists "Mensural_ligature_engraver"
 
   %% Set glyph styles.
-  \override NoteHead #'style = #'petrucci
-  \override Rest #'style = #'mensural
+  \override NoteHead.style = #'petrucci
+  \override Rest.style = #'mensural
 
   % Thickens and shortens stems.
-  \override Stem #'thickness = #1.7
-  \override Stem #'length = #5
+  \override Stem.thickness = #1.7
+  \override Stem.length = #5
 
   %% There are no beams in Petrucci notation.
   autoBeaming = ##f
@@ -1111,7 +1113,7 @@ accommodated for typesetting a piece in Petrucci style."
 
   \consists "Custos_engraver"
 
-  \override StaffSymbol #'thickness = #1.3
+  \override StaffSymbol.thickness = #1.3
 
   %% Choose Petrucci g clef on 2nd line as default.
   clefGlyph = #"clefs.petrucci.g"
@@ -1120,9 +1122,9 @@ accommodated for typesetting a piece in Petrucci style."
   clefPosition = #-2
   clefOctavation = #0
 
-  \override Custos #'style = #'mensural
-  \override Custos #'neutral-position = #3
-  \override Custos #'neutral-direction = #DOWN
+  \override Custos.style = #'mensural
+  \override Custos.neutral-position = #3
+  \override Custos.neutral-direction = #DOWN
 
   %% Accidentals are valid only once (if the following note is different)
   extraNatural = ##f
@@ -1140,11 +1142,18 @@ accommodated for typesetting a piece in Petrucci style."
 accommodated for typesetting a piece in Kievan style."
 
  %% Set glyph styles.
- \override NoteHead #'style = #'kievan
- \override Rest #'style = #'mensural
- \override Accidental #'glyph-name-alist = #alteration-kievan-glyph-name-alist
- \override Dots #'style = #'kievan
- \override Slur #'stencil = ##f
+ \override NoteHead.style = #'kievan
+ \override Stem.X-offset = #stem::kievan-offset-callback
+ \override Stem.stencil = ##f
+ \override Flag.stencil = ##f
+ \override Rest.style = #'mensural
+ \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
+ \override Dots.style = #'kievan
+ \override Slur.stencil = ##f
+ \override Stem.length = #0.0
+ \override Beam.positions = #beam::get-kievan-positions
+ \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
+ \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
 
  %% There are beams in Kievan notation, but they are invoked manually
  autoBeaming = ##f
index abbfd8a3d9b7d2e1d5bf0dd59f4af92ee7973103..6fe32f49fbaf513055c94b2fa103d6cf368a23e5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 startGraceSlur = #(make-music 'SlurEvent 'span-direction START 'spanner-id "grace")
 stopGraceSlur = #(make-music 'SlurEvent 'span-direction STOP 'spanner-id "grace")
@@ -21,18 +21,18 @@ stopAppoggiaturaMusic =  {
 
 startAcciaccaturaMusic =  {
     <>\startGraceSlur
-    \override Flag  #'stroke-style = #"grace"
+    \temporary \override Flag.stroke-style = #"grace"
 }
 
 stopAcciaccaturaMusic =  {
-    \revert Flag #'stroke-style
+    \revert Flag.stroke-style
     <>\stopGraceSlur
 }
 
 startSlashedGraceMusic =  {
-  \override Flag #'stroke-style = #"grace"
+  \temporary \override Flag.stroke-style = #"grace"
 }
 
 stopSlashedGraceMusic =  {
-  \revert Flag #'stroke-style
+  \revert Flag.stroke-style
 }
index 9c6bd051a6d19ad0d47872b7ce357cbbce6a8bba..e16fc683bade23e8685d1f0dc0d554f6edcf8284 100644 (file)
@@ -3,7 +3,7 @@
   $Id$
 %}
 
-\version "2.16.0"
+\version "2.17.6"
 
 %
 % Declare memorable shortcuts for special unicode characters
@@ -49,86 +49,91 @@ responsum =
 % Declare head prefix shortcuts.
 %
 virga =
-  \once \override NoteHead  #'virga = ##t
+  \once \override NoteHead.virga = ##t
 stropha =
-  \once \override NoteHead  #'stropha = ##t
+  \once \override NoteHead.stropha = ##t
 inclinatum =
-  \once \override NoteHead  #'inclinatum = ##t
+  \once \override NoteHead.inclinatum = ##t
 auctum =
-  \once \override NoteHead  #'auctum = ##t
+  \once \override NoteHead.auctum = ##t
 descendens =
-  \once \override NoteHead  #'descendens = ##t
+  \once \override NoteHead.descendens = ##t
 ascendens =
-  \once \override NoteHead  #'ascendens = ##t
+  \once \override NoteHead.ascendens = ##t
 pes =
-  \once \override NoteHead  #'pes-or-flexa = ##t
+  \once \override NoteHead.pes-or-flexa = ##t
 flexa =
-  \once \override NoteHead  #'pes-or-flexa = ##t
+  \once \override NoteHead.pes-or-flexa = ##t
 oriscus =
-  \once \override NoteHead  #'oriscus = ##t
+  \once \override NoteHead.oriscus = ##t
 quilisma =
-  \once \override NoteHead  #'quilisma = ##t
+  \once \override NoteHead.quilisma = ##t
 deminutum =
-  \once \override NoteHead  #'deminutum = ##t
+  \once \override NoteHead.deminutum = ##t
 linea =
-  \once \override NoteHead  #'linea = ##t
+  \once \override NoteHead.linea = ##t
 cavum =
-  \once \override NoteHead  #'cavum = ##t
+  \once \override NoteHead.cavum = ##t
 
 %
 % Declare divisiones shortcuts.
 %
 virgula = {
-  \once \override BreathingSign  #'text = #(make-musicglyph-markup "scripts.rcomma")
-  \once \override BreathingSign  #'font-size = #-2
+  \once \override BreathingSign.text = #(make-musicglyph-markup "scripts.rcomma")
+  \once \override BreathingSign.font-size = #-2
 
   % Workaround: add padding.  Correct fix would be spacing engine handle this.
-  \once \override BreathingSign  #'extra-X-extent = #'(-1.0 . 0)
+  \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+  \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
 
   \breathe
 }
 caesura = {
-  \once \override BreathingSign  #'text = #(make-musicglyph-markup "scripts.rvarcomma")
-  \once \override BreathingSign  #'font-size = #-2
+  \once \override BreathingSign.text = #(make-musicglyph-markup "scripts.rvarcomma")
+  \once \override BreathingSign.font-size = #-2
 
   % Workaround: add padding.  Correct fix would be spacing engine handle this.
-  \once \override BreathingSign  #'extra-X-extent = #'(-1.0 . 0)
+  \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+  \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
 
   \breathe
 }
 divisioMinima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-minima
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-minima
 
   % Workaround: add padding.  Correct fix would be spacing engine handle this.
-  \once \override BreathingSign  #'extra-X-extent = #'(-1.0 . 0)
+  \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+  \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
 
   \breathe
 }
 divisioMaior = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maior
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maior
+  \once \override BreathingSign.Y-offset = #0
 
   % Workaround: add padding.  Correct fix would be spacing engine handle this.
-  \once \override BreathingSign  #'extra-X-extent = #'(-1.0 . 0)
+  \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+  \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
 
   \breathe
 }
 divisioMaxima = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::divisio-maxima
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maxima
+  \once \override BreathingSign.Y-offset = #0
 
   % Workaround: add padding.  Correct fix would be spacing engine handle this.
-  \once \override BreathingSign  #'extra-X-extent = #'(-1.0 . 0)
+  \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+  \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
 
   \breathe
 }
 finalis = {
-  \once \override BreathingSign  #'stencil = #ly:breathing-sign::finalis
-  \once \override BreathingSign  #'Y-offset = #0
+  \once \override BreathingSign.stencil = #ly:breathing-sign::finalis
+  \once \override BreathingSign.Y-offset = #0
 
   % Workaround: add padding.  Correct fix would be spacing engine handle this.
-  \once \override BreathingSign  #'extra-X-extent = #'(-1.0 . 0)
-  \once \override BreathingSign  #'extra-spacing-height = #'(-0.5 . 0.5)
+  \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+  \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
 
   \breathe
 }
@@ -221,8 +226,8 @@ ligature = #(define-music-function
 
     \context {
        \VaticanaStaff
-        \override StaffSymbol #'color = #red
-        \override LedgerLineSpanner #'color = #red
+        \override StaffSymbol.color = #red
+        \override LedgerLineSpanner.color = #red
     }
     \context {
        \Score
@@ -245,7 +250,7 @@ ligature = #(define-music-function
        %%%
        barAlways = ##f
 
-       \override SpacingSpanner #'packed-spacing = ##t
+       \override SpacingSpanner.packed-spacing = ##t
 
        %%%
        %%% TODO: Play around with the following SpacingSpanner
@@ -255,11 +260,11 @@ ligature = #(define-music-function
        %%% causes tons of "programming error: adding reverse spring,
        %%% setting to unit" messages.
        %%%
-       %\override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 4)
-       %\override SpacingSpanner #'shortest-duration-space = #0
-       %\override SpacingSpanner #'average-spacing-wishes = ##f
-       %\override SpacingSpanner #'spacing-increment = #0.0
-       %\override SpacingSpanner #'uniform-stretching = ##t
+       %\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 4)
+       %\override SpacingSpanner.shortest-duration-space = #0
+       %\override SpacingSpanner.average-spacing-wishes = ##f
+       %\override SpacingSpanner.spacing-increment = #0.0
+       %\override SpacingSpanner.uniform-stretching = ##t
     }
 }
 
@@ -280,18 +285,18 @@ neumeDemoLayout = \layout {
        \Staff
        \remove "Clef_engraver"
        \remove "Key_engraver"
-       \override StaffSymbol #'transparent = ##t
+       \override StaffSymbol.transparent = ##t
        \remove "Time_signature_engraver"
        \remove "Bar_engraver"
-       \override VerticalAxisGroup #'staff-staff-spacing = #'()
+       \override VerticalAxisGroup.staff-staff-spacing = #'()
     }
     \context {
        \Voice
        \remove "Ligature_bracket_engraver"
        \consists "Vaticana_ligature_engraver"
-       \override NoteHead #'style = #'vaticana.punctum
-       \override Stem #'transparent = ##t
-       \override Flag #'transparent = ##t
+       \override NoteHead.style = #'vaticana.punctum
+       \override Stem.transparent = ##t
+       \override Flag.transparent = ##t
     }
 }
 
index a8bcc65d1143daa0a9904b2f7d3f71f02154731f..7daa84929c6e578d423e4a2d353cb387874cc56d 100644 (file)
@@ -6,43 +6,18 @@
 
 \version "2.16.0"
 
-#(if (not (ly:undead? lilypond-declarations))
-     (ly:parser-include-string parser
-                              "\\include \"declarations-init.ly\""))
+#(session-initialize
+  (lambda ()
+   ;; we can't use ly:parser-include-string here since that does not
+   ;; actually do any parsing but merely switches inputs, so the
+   ;; session saved by the session initializer after calling this
+   ;; function has not actually started.  A parser clone, in contrast,
+   ;; can run and complete synchronously and shares the module with
+   ;; the current parser.
+   (ly:parser-parse-string (ly:parser-clone parser)
+    "\\include \"declarations-init.ly\"")))
 
-%% We need to save the variables of the current module along with
-%% their values: functions defined in the module might refer to the
-%% variables
-
-#(if lilypond-declarations
-     (if (ly:undead? lilypond-declarations)
-        (begin
-          (for-each
-           (lambda (p)
-             (let ((var (cadr p))
-                   (val (cddr p)))
-               (variable-set! var
-                              (if (ly:output-def? val)
-                                  (ly:output-def-clone val)
-                                  val))
-               (module-add! (current-module) (car p) var)))
-           (ly:get-undead lilypond-declarations))
-          (note-names-language parser default-language))
-        (let ((decl '()))
-          (module-for-each
-           (lambda (s v)
-             (let ((val (variable-ref v)))
-               (if (not (ly:lily-parser? val))
-                   (set! decl
-                         (cons
-                          (cons*
-                           s v
-                           (if (ly:output-def? val)
-                               (ly:output-def-clone val)
-                               val))
-                          decl)))))
-           (current-module))
-          (set! lilypond-declarations (ly:make-undead decl)))))
+#(note-names-language parser default-language)
 
 #(ly:set-option 'old-relative #f)
 #(define toplevel-scores (list))
index 1209bc130dced64eb8260ccd5e08ec9b0f56273d..cf6852a02859a7c4de70270a29d71e11b5b5298d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.17.6"
 
 %{
 
@@ -144,11 +144,11 @@ makamGlyphs = #`((1 . "accidentals.doublesharp")
 \layout {
   \context {
     \Score
-    \override KeySignature #'glyph-name-alist = \makamGlyphs
-    \override Accidental #'glyph-name-alist = \makamGlyphs
-    \override AccidentalCautionary #'glyph-name-alist = \makamGlyphs
-    \override TrillPitchAccidental #'glyph-name-alist = \makamGlyphs
-    \override AmbitusAccidental #'glyph-name-alist = \makamGlyphs
+    \override KeySignature.glyph-name-alist = \makamGlyphs
+    \override Accidental.glyph-name-alist = \makamGlyphs
+    \override AccidentalCautionary.glyph-name-alist = \makamGlyphs
+    \override TrillPitchAccidental.glyph-name-alist = \makamGlyphs
+    \override AmbitusAccidental.glyph-name-alist = \makamGlyphs
   }
 }
 
index 0fa79af3ddb63acd68e1861710c29cfa6903ccf6..f3210832186e5b4510fcec365b6c3f2ef4312d3b 100644 (file)
@@ -18,7 +18,7 @@
 %%%% You should have received a copy of the GNU General Public License
 %%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
-\version "2.16.0"
+\version "2.17.6"
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -86,35 +86,38 @@ markups), or inside a score.")
                                           'break-permission 'allow))))
 
 alterBroken =
-#(define-music-function (parser location name property arg)
-  (string? scheme? list?)
-  (_i "Override @var{property} for pieces of broken spanner @var{name} with
-values @var{arg}.")
-  (let* ((name (string-delete name char-set:blank)) ; remove any spaces
-         (name-components (string-split name #\.))
-         (context-name "Bottom")
-         (grob-name #f))
-
-    (if (> 2 (length name-components))
-        (set! grob-name (car name-components))
-        (begin
-          (set! grob-name (cadr name-components))
-          (set! context-name (car name-components))))
-
-    ;; only apply override if grob is a spanner
-    (let ((description
-            (assoc-get (string->symbol grob-name) all-grob-descriptions)))
-      (if (and description
-               (member 'spanner-interface
-                       (assoc-get 'interfaces
-                                  (assoc-get 'meta description))))
-          #{
-            \override $context-name . $grob-name $property =
-              #(value-for-spanner-piece arg)
-          #}
+#(define-music-function (parser location property arg item)
+  (symbol-list-or-symbol? list? symbol-list-or-music?)
+  (_i "Override @var{property} for pieces of broken spanner @var{item}
+with values @var{arg}.  @var{item} may either be music in the form of
+a starting spanner event, or a symbol list in the form
+@samp{Context.Grob} or just @samp{Grob}.  Iff @var{item} is in the
+form of a spanner event, @var{property} may also have the form
+@samp{Grob.property} for specifying a directed tweak.")
+  (if (ly:music? item)
+      (if (eq? (ly:music-property item 'span-direction) START)
+          #{ \tweak #property #(value-for-spanner-piece arg) #item #}
           (begin
-            (ly:input-warning location (_ "not a spanner name, `~a'") grob-name)
-            (make-music 'SequentialMusic 'void #t))))))
+            (ly:music-warning item (_ "not a spanner"))
+            item))
+      (let* ((p (check-grob-path item parser location
+                                 #:default 'Bottom
+                                 #:min 2
+                                 #:max 2))
+             (name (and p (second p)))
+             (description
+              (and name (assoc-get name all-grob-descriptions))))
+        (if (and description
+                 (member 'spanner-interface
+                         (assoc-get 'interfaces
+                                    (assoc-get 'meta description))))
+            #{
+              \override #item . #property =
+              #(value-for-spanner-piece arg)
+            #}
+            (begin
+              (ly:input-warning location (_ "not a spanner name, `~a'") name)
+              (make-music 'Music))))))
 
 appendToTag =
 #(define-music-function (parser location tag more music)
@@ -257,24 +260,24 @@ as @code{\\compoundMeter #'((3 2 8))} or shorter
          (timesig (cons (ly:moment-main-numerator mlen)
                         (ly:moment-main-denominator mlen))))
   #{
-    \once \override Staff.TimeSignature #'stencil = #(lambda (grob)
+    \once \override Staff.TimeSignature.stencil = #(lambda (grob)
       (grob-interpret-markup grob (format-compound-time args)))
-    \set Timing.timeSignatureFraction = $timesig
-    \set Timing.baseMoment = $beat
-    \set Timing.beatStructure = $beatGrouping
+    \set Timing.timeSignatureFraction = #timesig
+    \set Timing.baseMoment = #beat
+    \set Timing.beatStructure = #beatGrouping
     \set Timing.beamExceptions = #'()
-    \set Timing.measureLength = $mlen
+    \set Timing.measureLength = #mlen
   #} ))
 
 crossStaff =
 #(define-music-function (parser location notes) (ly:music?)
   (_i "Create cross-staff stems")
   #{
-  \override Stem #'cross-staff = #cross-staff-connect
-  \override Flag #'style = #'no-flag
-  $notes
-  \revert Stem #'cross-staff
-  \revert Flag #'style
+  \temporary \override Stem.cross-staff = #cross-staff-connect
+  \temporary \override Flag.style = #'no-flag
+  #notes
+  \revert Stem.cross-staff
+  \revert Flag.style
 #})
 
 cueClef =
@@ -379,24 +382,23 @@ featherDurations=
      argument))
 
 footnote =
-#(define-music-function (parser location mark offset grob-name footnote music)
-   ((markup?) number-pair? (symbol?) markup? (ly:music?))
-   (_i "Make the markup @var{footnote} a footnote on @var{music}.  The
+#(define-music-function (parser location mark offset footnote item)
+   ((markup?) number-pair? markup? symbol-list-or-music?)
+   (_i "Make the markup @var{footnote} a footnote on @var{item}.  The
 footnote is marked with a markup @var{mark} moved by @var{offset} with
 respect to the marked music.
 
 If @var{mark} is not given or specified as @var{\\default}, it is
-replaced by an automatically generated sequence number.  If a symbol
-@var{grob-name} is specified, then grobs of that type will be marked
-if they have @var{music} as their ultimate cause; by default all grobs
-having @var{music} as their @emph{direct} cause will be marked,
-similar to the way @code{\\tweak} works.
-
-If @var{music} is given as @code{\\default}, a footnote event
-affecting @emph{all} grobs matching @var{grob-name} at a given time
-step is generated.  This may be required for creating footnotes on
-time signatures, clefs, and other items not cooperating with
-@code{\\tweak}.
+replaced by an automatically generated sequence number.  If @var{item}
+is a symbol list of form @samp{Grob} or @samp{Context.Grob}, then
+grobs of that type will be marked at the current time step in the
+given context (default @code{Bottom}).
+
+If @var{item} is music, the music will get a footnote attached to a
+grob immediately attached to the event, like @var{\\tweak} does.  For
+attaching a footnote to an @emph{indirectly} caused grob, write
+@code{\\single\\footnote}, use @var{item} to specify the grob, and
+follow it with the music to annotate.
 
 Like with @code{\\tweak}, if you use a footnote on a following
 post-event, the @code{\\footnote} command itself needs to be attached
@@ -407,21 +409,8 @@ to the preceding note or rest as a post-event with @code{-}.")
               'Y-offset (cdr offset)
               'automatically-numbered (not mark)
               'text (or mark (make-null-markup))
-              'footnote-text footnote
-              'symbol (or grob-name '()))))
-     (cond (music
-           (set! (ly:music-property music 'tweaks)
-                 (acons (if grob-name
-                            (cons grob-name 'footnote-music)
-                            'footnote-music)
-                        mus
-                        (ly:music-property music 'tweaks)))
-           music)
-          (grob-name mus)
-          (else
-           (ly:input-warning location
-                             (_ "\\footnote requires music or grob-name"))
-           (make-music 'Music)))))
+              'footnote-text footnote)))
+     #{ \tweak footnote-music #mus #item #}))
 
 grace =
 #(def-grace-function startGraceMusic stopGraceMusic
@@ -441,18 +430,18 @@ harmonicByFret = #(define-music-function (parser location fret music) (number? l
 harmonics played on a fretted instrument by touching the strings at @var{fret}.")
   #{
     \set harmonicDots = ##t
-    \override TabNoteHead #'stencil = #(tab-note-head::print-custom-fret-label (number->string fret))
-    \override NoteHead #'Y-extent = #(ly:make-unpure-pure-container ly:grob::stencil-height
+    \temporary \override TabNoteHead.stencil = #(tab-note-head::print-custom-fret-label (number->string fret))
+    \temporary \override NoteHead.Y-extent = #(ly:make-unpure-pure-container ly:grob::stencil-height
                                        (lambda (grob start end)
                                                (ly:grob::stencil-height grob)))
-    \override NoteHead #'stencil = #(lambda (grob) (ly:grob-set-property! grob 'style 'harmonic-mixed)
+    \temporary \override NoteHead.stencil = #(lambda (grob) (ly:grob-set-property! grob 'style 'harmonic-mixed)
                                             (ly:note-head::print grob))
-    $(make-harmonic
+    #(make-harmonic
        (calc-harmonic-pitch (fret->pitch (number->string fret)) music))
     \unset harmonicDots
-    \revert TabNoteHead #'stencil
-    \revert NoteHead #'Y-extent
-    \revert NoteHead #'stencil
+    \revert TabNoteHead.stencil
+    \revert NoteHead.Y-extent
+    \revert NoteHead.stencil
   #})
 
 harmonicByRatio = #(define-music-function (parser location ratio music) (number? ly:music?)
@@ -461,20 +450,33 @@ harmonics played on a fretted instrument by touching the strings at the point
 given through @var{ratio}.")
   #{
     \set harmonicDots = ##t
-    \override TabNoteHead #'stencil = #(tab-note-head::print-custom-fret-label (ratio->fret ratio))
-    \override NoteHead #'Y-extent = #(ly:make-unpure-pure-container ly:grob::stencil-height
+    \temporary \override TabNoteHead.stencil = #(tab-note-head::print-custom-fret-label (ratio->fret ratio))
+    \temporary \override NoteHead.Y-extent = #(ly:make-unpure-pure-container ly:grob::stencil-height
                                        (lambda (grob start end)
                                                (ly:grob::stencil-height grob)))
-    \override NoteHead #'stencil = #(lambda (grob) (ly:grob-set-property! grob 'style 'harmonic-mixed)
+    \temporary \override NoteHead.stencil = #(lambda (grob) (ly:grob-set-property! grob 'style 'harmonic-mixed)
                                             (ly:note-head::print grob))
-    $(make-harmonic
+    #(make-harmonic
       (calc-harmonic-pitch (ratio->pitch ratio) music))
     \unset harmonicDots
-    \revert TabNoteHead #'stencil
-    \revert NoteHead #'Y-extent
-    \revert NoteHead #'stencil
+    \revert TabNoteHead.stencil
+    \revert NoteHead.Y-extent
+    \revert NoteHead.stencil
   #})
 
+hide =
+#(define-music-function (parser location item) (symbol-list-or-music?)
+   (_i "Set @var{item}'s @samp{transparent} property to @code{#t},
+making it invisible while still retaining its dimensions.
+
+If @var{item} is a symbol list of form @code{GrobName} or
+@code{Context.GrobName}, the result is an override for the grob name
+specified by it.  If @var{item} is a music expression, the result is
+the same music expression with an appropriate tweak applied to it.")
+   (if (ly:music? item)
+       #{ \tweak transparent ##t #item #}
+       #{ \override #item . transparent = ##t #}))
+
 inStaffSegno =
 #(define-music-function (parser location) ()
    (_i "Put the segno variant 'varsegno' at this position into the staff,
@@ -511,15 +513,21 @@ instrumentSwitch =
 
 
 keepWithTag =
-#(define-music-function (parser location tag music) (symbol? ly:music?)
-   (_i "Include only elements of @var{music} that are tagged with @var{tag}.")
+#(define-music-function (parser location tag music)
+   (symbol-list-or-symbol? ly:music?)
+   (_i "Include only elements of @var{music} that are either untagged
+or tagged with one of the tags in @var{tag}.  @var{tag} may be either
+a single symbol or a list of symbols.")
    (music-filter
-    (lambda (m)
-      (let* ((tags (ly:music-property m 'tags))
-            (res (memq tag tags)))
-       (or
-        (eq? tags '())
-        res)))
+    (if (symbol? tag)
+        (lambda (m)
+          (let ((music-tags (ly:music-property m 'tags)))
+            (or (null? music-tags)
+                (memq tag music-tags))))
+        (lambda (m)
+          (let ((music-tags (ly:music-property m 'tags)))
+            (or (null? music-tags)
+                (any (lambda (t) (memq t music-tags)) tag)))))
     music))
 
 key =
@@ -664,6 +672,19 @@ octaveCheck =
    (make-music 'RelativeOctaveCheck
                'pitch pitch))
 
+omit =
+#(define-music-function (parser location item) (symbol-list-or-music?)
+   (_i "Set @var{item}'s @samp{stencil} property to @code{#f},
+effectively omitting it without taking up space.
+
+If @var{item} is a symbol list of form @code{GrobName} or
+@code{Context.GrobName}, the result is an override for the grob name
+specified by it.  If @var{item} is a music expression, the result is
+the same music expression with an appropriate tweak applied to it.")
+   (if (ly:music? item)
+       #{ \tweak stencil ##f #item #}
+       #{ \override #item . stencil = ##f #}))
+
 once =
 #(define-music-function (parser location music) (ly:music?)
    (_i "Set @code{once} to @code{#t} on all layout instruction events in @var{music}.")
@@ -697,31 +718,30 @@ of @var{base-moment}, @var{beat-structure}, and @var{beam-exceptions}.")
     (override-time-signature-setting time-signature setting)))
 
 overrideProperty =
-#(define-music-function (parser location name property value)
-   (string? symbol? scheme?)
+#(define-music-function (parser location grob-property-path value)
+   (symbol-list? scheme?)
 
-   (_i "Set @var{property} to @var{value} in all grobs named @var{name}.
-The @var{name} argument is a string of the form @code{\"Context.GrobName\"}
-or @code{\"GrobName\"}.")
+   (_i "Set the grob property specified by @var{grob-property-path} to
+@var{value}.  @var{grob-property-path} is a symbol list of the form
+@code{Context.GrobName.property} or @code{GrobName.property}, possibly
+with subproperties given as well.")
+   (let ((p (check-grob-path grob-property-path parser location
+                             #:default 'Bottom
+                             #:min 3)))
+     (if p
+         (make-music 'ApplyOutputEvent
+                     'context-type (first p)
+                     'procedure
+                     (lambda (grob orig-context context)
+                       (if (equal?
+                            (cdr (assoc 'name (ly:grob-property grob 'meta)))
+                            (second p))
+                           (ly:grob-set-nested-property!
+                            grob (cddr p) value))))
+         (make-music 'Music))))
 
-   (let ((name-components (string-split name #\.))
-        (context-name 'Bottom)
-        (grob-name #f))
 
-     (if (> 2 (length name-components))
-        (set! grob-name (string->symbol (car name-components)))
-        (begin
-          (set! grob-name (string->symbol (list-ref name-components 1)))
-          (set! context-name (string->symbol (list-ref name-components 0)))))
 
-     (make-music 'ApplyOutputEvent
-                'context-type context-name
-                'procedure
-                (lambda (grob orig-context context)
-                  (if (equal?
-                       (cdr (assoc 'name (ly:grob-property grob 'meta)))
-                       grob-name)
-                      (set! (ly:grob-property grob property) value))))))
 
 
 
@@ -995,13 +1015,19 @@ relative =
               'element music))
 
 removeWithTag =
-#(define-music-function (parser location tag music) (symbol? ly:music?)
-   (_i "Remove elements of @var{music} that are tagged with @var{tag}.")
+#(define-music-function (parser location tag music)
+   (symbol-list-or-symbol? ly:music?)
+   (_i "Remove elements of @var{music} that are tagged with one of the
+tags in @var{tag}.  @var{tag} may be either a single symbol or a list
+of symbols.")
    (music-filter
-    (lambda (m)
-      (let* ((tags (ly:music-property m 'tags))
-            (res (memq tag tags)))
-       (not res)))
+    (if (symbol? tag)
+        (lambda (m)
+          (not (memq tag (ly:music-property m 'tags))))
+        (lambda (m)
+          (let ((music-tags (ly:music-property m 'tags)))
+            (or (null? music-tags)
+                (not (any (lambda (t) (memq t music-tags)) tag))))))
     music))
 
 resetRelativeOctave =
@@ -1095,12 +1121,16 @@ a context modification duplicating their effect.")
      mods))
 
 shape =
-#(define-music-function (parser location grob offsets)
-   (string? list?)
-   (_i "Offset control-points of @var{grob} by @var{offsets}.  The argument
-is a list of number pairs or list of such lists.  Each element of a pair
-represents an offset to one of the coordinates of a control-point.")
-   (define ((shape-curve offsets) grob)
+#(define-music-function (parser location offsets item)
+   (list? symbol-list-or-music?)
+   (_i "Offset control-points of @var{item} by @var{offsets}.  The
+argument is a list of number pairs or list of such lists.  Each
+element of a pair represents an offset to one of the coordinates of a
+control-point.  If @var{item} is a string, the result is
+@code{\\once\\override} for the specified grob type.  If @var{item} is
+a music expression, the result is the same music expression with an
+appropriate tweak applied.")
+   (define (shape-curve grob)
      (let* ((orig (ly:grob-original grob))
             (siblings (if (ly:spanner? grob)
                           (ly:spanner-broken-into orig) '()))
@@ -1131,10 +1161,7 @@ represents an offset to one of the coordinates of a control-point.")
        (if (>= total-found 2)
            (helper siblings offsets)
            (offset-control-points (car offsets)))))
-
-   #{
-     \once \override $grob #'control-points = #(shape-curve offsets)
-   #})
+   #{ \tweak control-points #shape-curve #item #})
 
 shiftDurations =
 #(define-music-function (parser location dur dots arg)
@@ -1146,6 +1173,30 @@ shiftDurations =
     (lambda (x)
       (shift-one-duration-log x dur dots)) arg))
 
+single =
+#(define-music-function (parser location overrides music)
+   (ly:music? ly:music?)
+   (_i "Convert @var{overrides} to tweaks and apply them to @var{music}.
+This does not convert @code{\\revert}, @code{\\set} or @code{\\unset}.")
+   (set! (ly:music-property music 'tweaks)
+         (fold-some-music
+          (lambda (m) (eq? (ly:music-property m 'name)
+                           'OverrideProperty))
+          (lambda (m tweaks)
+            (let ((p (cond
+                      ((ly:music-property m 'grob-property #f) => list)
+                      (else
+                       (ly:music-property m 'grob-property-path)))))
+              (acons (cons (ly:music-property m 'symbol) ;grob name
+                           (if (pair? (cdr p))
+                               p ;grob property path
+                               (car p))) ;grob property
+                     (ly:music-property m 'grob-value)
+                     tweaks)))
+          (ly:music-property music 'tweaks)
+          overrides))
+   music)
+
 skip =
 #(define-music-function (parser location dur) (ly:duration?)
   (_i "Skip forward by @var{dur}.")
@@ -1163,28 +1214,70 @@ spacingTweaks =
    (_i "Set the system stretch, by reading the 'system-stretch property of
 the `parameters' assoc list.")
    #{
-     \overrideProperty #"Score.NonMusicalPaperColumn"
-     #'line-break-system-details
+     \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
      #(list (cons 'alignment-extra-space (cdr (assoc 'system-stretch parameters)))
             (cons 'system-Y-extent (cdr (assoc 'system-Y-extent parameters))))
    #})
 
 styledNoteHeads =
 #(define-music-function (parser location style heads music)
-   (symbol? list-or-symbol? ly:music?)
+   (symbol? symbol-list-or-symbol? ly:music?)
    (_i "Set @var{heads} in @var{music} to @var{style}.")
    (style-note-heads heads style music))
 
 tag =
-#(define-music-function (parser location tag arg) (symbol? ly:music?)
-
-   (_i "Add @var{tag} to the @code{tags} property of @var{arg}.")
+#(define-music-function (parser location tag music) (symbol-list-or-symbol? ly:music?)
+   (_i "Tag the following @var{music} with @var{tag} and return the
+result, by adding the single symbol or symbol list @var{tag} to the
+@code{tags} property of @var{music}.")
 
    (set!
-    (ly:music-property arg 'tags)
-    (cons tag
-         (ly:music-property arg 'tags)))
-   arg)
+    (ly:music-property music 'tags)
+    ((if (symbol? tag) cons append)
+     tag
+     (ly:music-property music 'tags)))
+   music)
+
+temporary =
+#(define-music-function (parser location music)
+   (ly:music?)
+   (_i "Make any @code{\\override} in @var{music} replace an existing
+grob property value only temporarily, restoring the old value when a
+corresponding @code{\\revert} is executed.  This is achieved by
+clearing the @samp{pop-first} property normally set on
+@code{\\override}s.
+
+An @code{\\override}/@/@code{\\revert} sequence created by using
+@code{\\temporary} and @code{\\undo} on the same music containing
+overrides will cancel out perfectly or cause a@tie{}warning.
+
+Non-property-related music is ignored, warnings are generated for any
+property-changing music that isn't an @code{\\override}.")
+   (define warned #f)
+   (for-some-music
+    (lambda (m)
+      (and (or (music-is-of-type? m 'layout-instruction-event)
+               (music-is-of-type? m 'context-specification)
+               (music-is-of-type? m 'apply-context)
+               (music-is-of-type? m 'time-signature-music))
+           (case (ly:music-property m 'name)
+             ((OverrideProperty)
+              (if (ly:music-property m 'pop-first #f)
+                  (set! (ly:music-property m 'pop-first) '()))
+              (if (ly:music-property m 'once #f)
+                  (set! (ly:music-property m 'once) '()))
+              #t)
+             ((ContextSpeccedMusic)
+              #f)
+             (else
+              (if (not warned)
+                  (begin
+                    (ly:input-warning location (_ "Cannot make ~a revertible")
+                                      (ly:music-property m 'name))
+                    (set! warned #t)))
+              #t))))
+    music)
+   music)
 
 time =
 #(define-music-function (parser location beat-structure fraction)
@@ -1243,27 +1336,102 @@ transposition =
     'Staff))
 
 tweak =
-#(define-music-function (parser location grob prop value music)
-   ((string?) symbol? scheme? ly:music?)
-   (_i "Add a tweak to the following @var{music}.
-Layout objects created by @var{music} get their property @var{prop}
-set to @var{value}.  If @var{grob} is specified, like with
+#(define-music-function (parser location prop value item)
+   (symbol-list-or-symbol? scheme? symbol-list-or-music?)
+   (_i "Add a tweak to the following @var{item}, usually music.
+Layout objects created by @var{item} get their property @var{prop}
+set to @var{value}.  If @var{prop} has the form @samp{Grob.property}, like with
 @example
-\\tweak Accidental #'color #red cis'
+\\tweak Accidental.color #red cis'
 @end example
 an indirectly created grob (@samp{Accidental} is caused by
 @samp{NoteHead}) can be tweaked; otherwise only directly created grobs
-are affected.")
-   (if (not (object-property prop 'backend-type?))
-       (begin
-        (ly:input-warning location (_ "cannot find property type-check for ~a") prop)
-        (ly:warning (_ "doing assignment anyway"))))
-   (set!
-    (ly:music-property music 'tweaks)
-    (acons (if grob (cons (string->symbol grob) prop) prop)
-          value
-          (ly:music-property music 'tweaks)))
-   music)
+are affected.
+
+As a special case, @var{item} may be a symbol list specifying a grob
+path, in which case @code{\\once\\override} is called on it instead of
+creating tweaked music.  This is mainly useful when using
+@code{\\tweak} as as a component for building other functions.
+
+@var{prop} can contain additional elements in which case a nested
+property (inside of an alist) is tweaked.")
+   (if (ly:music? item)
+       (let ((p (check-grob-path prop parser location
+                                 #:start 1
+                                 #:default #t
+                                 #:min 2)))
+         (if p
+             (set! (ly:music-property item 'tweaks)
+                   (acons (cond ((pair? (cddr p)) p)
+                                ((symbol? (car p))
+                                 (cons (car p) (cadr p)))
+                                (else (cadr p)))
+                          value
+                          (ly:music-property item 'tweaks))))
+         item)
+       ;; We could just throw this at \override and let it sort this
+       ;; out on its own, but this way we should get better error
+       ;; diagnostics.
+       (let ((a (check-grob-path item parser location
+                                 #:default 'Bottom #:min 2 #:max 2))
+             (b (check-grob-path prop parser location
+                                 #:start 2)))
+         (if (and a b)
+             #{ \once\override #(append a b) = #value #}
+             (make-music 'Music)))))
+
+undo =
+#(define-music-function (parser location music)
+   (ly:music?)
+   (_i "Convert @code{\\override} and @code{\\set} in @var{music} to
+@code{\\revert} and @code{\\unset}, respectively.  Any reverts and
+unsets already in @var{music} cause a warning.  Non-property-related music is ignored.")
+   (define warned #f)
+   (let loop
+       ((music music))
+     (let
+         ((lst
+           (fold-some-music
+            (lambda (m) (or (music-is-of-type? m 'layout-instruction-event)
+                            (music-is-of-type? m 'context-specification)
+                            (music-is-of-type? m 'apply-context)
+                            (music-is-of-type? m 'time-signature-music)))
+            (lambda (m overrides)
+              (case (ly:music-property m 'name)
+                ((OverrideProperty)
+                 (cons
+                  (make-music 'RevertProperty
+                              'symbol (ly:music-property m 'symbol)
+                              'grob-property-path
+                              (cond
+                               ((ly:music-property m 'grob-property #f) => list)
+                               (else
+                                (ly:music-property m 'grob-property-path))))
+                  overrides))
+                ((PropertySet)
+                 (cons
+                  (make-music 'PropertyUnset
+                              'symbol (ly:music-property m 'symbol))
+                  overrides))
+                ((ContextSpeccedMusic)
+                 (cons
+                  (make-music 'ContextSpeccedMusic
+                              'element (loop (ly:music-property m 'element))
+                              'context-type (ly:music-property m 'context-type))
+                  overrides))
+                (else
+                 (if (not warned)
+                     (begin
+                       (ly:input-warning location (_ "Cannot revert ~a")
+                                         (ly:music-property m 'name))
+                       (set! warned #t)))
+                 overrides)))
+            '()
+            music)))
+       (cond
+        ((null? lst) (make-music 'Music))
+        ((null? (cdr lst)) (car lst))
+        (else (make-sequential-music lst))))))
 
 unfoldRepeats =
 #(define-music-function (parser location music) (ly:music?)
index c50681c27866b3b034e0249912487593c3d66ca7..07ee79176b16ae316671d52980d1737a493c8f66 100644 (file)
@@ -97,9 +97,9 @@
   %%
   %% Page breaking
   %%
-  blank-after-score-page-force = 2
-  blank-last-page-force = 0
-  blank-page-force = 5
+  blank-after-score-page-penalty = 2
+  blank-last-page-penalty = 0
+  blank-page-penalty = 5
   page-breaking = #ly:optimal-breaking
 
 
index 71000148b6708d4770c60beac2e1a35bcf7df470..705e9628720702b5f24ad21daf9948a2a268f3fb 100644 (file)
 % chord-shape-table
 
 addChordShape =
-#(define-music-function (parser location key-symbol tuning shape-definition)
+#(define-void-function (parser location key-symbol tuning shape-definition)
    (symbol? pair? string-or-pair?)
    (_i "Add chord shape @var{shape-definition} to the @var{chord-shape-table}
 hash with the key @code{(cons @var{key-symbol} @var{tuning})}.")
    (hash-set! chord-shape-table
                (cons key-symbol tuning)
-               shape-definition)
-   (make-music 'SequentialMusic 'void #t))
+               shape-definition))
 
 #(define (chord-shape shape-code tuning)
    (get-chord-shape shape-code tuning chord-shape-table))
@@ -62,7 +61,7 @@ table @code{rest}."
 % fretboard-table
 
 storePredefinedDiagram =
-#(define-music-function
+#(define-void-function
    (parser location fretboard-table chord tuning diagram-definition)
    (hash-table? ly:music? pair? string-or-pair?)
   (_i "Add predefined fret diagram defined by @var{diagram-definition}
@@ -75,5 +74,4 @@ storePredefinedDiagram =
                                  diagram-definition)))
   (hash-set! fretboard-table
              hash-key
-             verbose-definition)
-  (make-music 'SequentialMusic 'void #t)))
+             verbose-definition)))
index e36c3c04650fb83ac0a00bd150bc0d19bde1c694..2c538ce86cb8dc0c308d67ba97c807e7902bcfb8 100644 (file)
@@ -1,6 +1,6 @@
 % property-init.ly
 
-\version "2.16.0"
+\version "2.17.6"
 
 %% for dashed slurs, phrasing slurs, and ties
 #(define (make-simple-dash-definition dash-fraction dash-period)
@@ -13,18 +13,21 @@ defaultNoteHeads =
    (_i "Revert to the default note head style.")
    (revert-head-style '(NoteHead TabNoteHead)))
 
-
 accidentalStyle =
 #(define-music-function
-   (parser location context style) ((symbol?) string?)
-   (_i "Set accidental style to @var{style}, a string.  If an optional
-@var{context} symbol is given, e.g. @code{#'Staff} or @code{#'Voice},
-the settings are applied to that context.  Otherwise, the context
-defaults to @samp{Staff}, except for piano styles, which use
-@samp{GrandStaff} as a context." )
-   (if context
-       (set-accidental-style (string->symbol style) context)
-       (set-accidental-style (string->symbol style))))
+   (parser location style) (symbol-list?)
+   (_i "Set accidental style to symbol list @var{style} in the form
+@samp{piano-cautionary}.  If @var{style} has a form like
+@samp{Staff.piano-cautionary}, the settings are applied to that
+context.  Otherwise, the context defaults to @samp{Staff}, except for
+piano styles, which use @samp{GrandStaff} as a context." )
+   (case (length style)
+    ((1) (set-accidental-style (car style)))
+    ((2) (set-accidental-style (cadr style) (car style)))
+    (else
+     (ly:parser-error parser (_ "not an accidental style")
+      location)
+     (make-music 'Music))))
 
 %% arpeggios
 
@@ -35,34 +38,34 @@ defaults to @samp{Staff}, except for piano styles, which use
 
 arpeggio = #(make-music 'ArpeggioEvent)
 arpeggioArrowUp = {
-  \revert Arpeggio  #'stencil
-  \revert Arpeggio #'X-extent
-  \override Arpeggio  #'arpeggio-direction = #UP
+  \revert Arpeggio.stencil
+  \revert Arpeggio.X-extent
+  \override Arpeggio.arpeggio-direction = #UP
 }
 arpeggioArrowDown = {
-  \revert Arpeggio #'stencil
-  \revert Arpeggio #'X-extent
-  \override Arpeggio  #'arpeggio-direction = #DOWN
+  \revert Arpeggio.stencil
+  \revert Arpeggio.X-extent
+  \override Arpeggio.arpeggio-direction = #DOWN
 }
 arpeggioNormal = {
-  \revert Arpeggio #'stencil
-  \revert Arpeggio #'X-extent
-  \revert Arpeggio #'arpeggio-direction
-  \revert Arpeggio #'dash-definition
+  \revert Arpeggio.stencil
+  \revert Arpeggio.X-extent
+  \revert Arpeggio.arpeggio-direction
+  \revert Arpeggio.dash-definition
 }
 arpeggioBracket = {
-  \revert Arpeggio #'X-extent
-  \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket
+  \revert Arpeggio.X-extent
+  \override Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
 }
 arpeggioParenthesis = {
-  \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
-  \override Arpeggio #'X-extent = #ly:grob::stencil-width
-  \revert Arpeggio #'dash-definition
+  \override Arpeggio.stencil = #ly:arpeggio::brew-chord-slur
+  \override Arpeggio.X-extent = #ly:grob::stencil-width
+  \revert Arpeggio.dash-definition
 }
 arpeggioParenthesisDashed = {
-  \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
-  \override Arpeggio #'X-extent = #ly:grob::stencil-width
-  \override Arpeggio #'dash-definition = #'((0 1 0.4 0.75))
+  \override Arpeggio.stencil = #ly:arpeggio::brew-chord-slur
+  \override Arpeggio.X-extent = #ly:grob::stencil-width
+  \override Arpeggio.dash-definition = #'((0 1 0.4 0.75))
 }
 
 
@@ -75,15 +78,32 @@ autoBeamOff = \set autoBeaming = ##f
 %% balloon length
 
 balloonLengthOn = {
-  \override BalloonTextItem #'extra-spacing-width = #'(0 . 0)
-  \override BalloonTextItem #'extra-spacing-height = #'(-inf.0 . +inf.0)
+  \override BalloonTextItem.extra-spacing-width = #'(0 . 0)
+  \override BalloonTextItem.extra-spacing-height = #'(-inf.0 . +inf.0)
 }
 balloonLengthOff = {
-  \override BalloonTextItem #'extra-spacing-width = #'(+inf.0 . -inf.0)
-  \override BalloonTextItem #'extra-spacing-height = #'(0 . 0)
+  \override BalloonTextItem.extra-spacing-width = #'(+inf.0 . -inf.0)
+  \override BalloonTextItem.extra-spacing-height = #'(0 . 0)
 }
 
 
+%% bar lines
+
+defineBarLine =
+#(define-void-function
+   (parser location bar glyph-list) (string? list?)
+   (_i "Define bar line settings for bar line @var{bar}.
+     The list @var{glyph-list} must have three entries which define
+     the appearance at the end of line, at the beginning of the next line,
+     and the span bar, respectively." )
+  (if (not (= (length glyph-list) 3))
+      (ly:error (_ "Argument list for bar '~a' must have three components.") bar)
+      (define-bar-line bar
+                       (car glyph-list)
+                       (cadr glyph-list)
+                       (caddr glyph-list))))
+
+
 %% bass figures
 
 bassFigureExtendersOn = {
@@ -95,11 +115,11 @@ bassFigureExtendersOff = {
   \set Staff.useBassFigureExtenders = ##f
 }
 bassFigureStaffAlignmentDown =
-  \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
+  \override Staff.BassFigureAlignmentPositioning.direction = #DOWN
 bassFigureStaffAlignmentUp =
-  \override Staff.BassFigureAlignmentPositioning #'direction = #UP
+  \override Staff.BassFigureAlignmentPositioning.direction = #UP
 bassFigureStaffAlignmentNeutral =
-  \revert Staff.BassFigureAlignmentPositioning #'direction
+  \revert Staff.BassFigureAlignmentPositioning.direction
 
 
 %% cadenzas
@@ -147,40 +167,40 @@ expandFullBarRests   = \set Score.skipBars = ##f
 
 %% dots
 
-dotsUp      = \override Dots #'direction = #UP
-dotsDown    = \override Dots #'direction = #DOWN
-dotsNeutral = \revert Dots #'direction
+dotsUp      = \override Dots.direction = #UP
+dotsDown    = \override Dots.direction = #DOWN
+dotsNeutral = \revert Dots.direction
 
 
 %% dynamics
 
 dynamicUp = {
-  \override DynamicText #'direction = #UP
-  \override DynamicLineSpanner #'direction = #UP
+  \override DynamicText.direction = #UP
+  \override DynamicLineSpanner.direction = #UP
 }
 dynamicDown = {
-  \override DynamicText #'direction = #DOWN
-  \override DynamicLineSpanner #'direction = #DOWN
+  \override DynamicText.direction = #DOWN
+  \override DynamicLineSpanner.direction = #DOWN
 }
 dynamicNeutral = {
-  \revert DynamicText #'direction
-  \revert DynamicLineSpanner #'direction
+  \revert DynamicText.direction
+  \revert DynamicLineSpanner.direction
 }
 
 
 %% easy heads
 
 easyHeadsOn = {
-  \override NoteHead #'stencil = #note-head::brew-ez-stencil
-  \override NoteHead #'font-size = #-8
-  \override NoteHead #'font-family = #'sans
-  \override NoteHead #'font-series = #'bold
+  \override NoteHead.stencil = #note-head::brew-ez-stencil
+  \override NoteHead.font-size = #-8
+  \override NoteHead.font-family = #'sans
+  \override NoteHead.font-series = #'bold
 }
 easyHeadsOff = {
-  \revert NoteHead #'stencil
-  \revert NoteHead #'font-size
-  \revert NoteHead #'font-family
-  \revert NoteHead #'font-series
+  \revert NoteHead.stencil
+  \revert NoteHead.font-size
+  \revert NoteHead.font-family
+  \revert NoteHead.font-series
 }
 
 
@@ -189,8 +209,8 @@ easyHeadsOff = {
 %% End the incipit and print a ``normal line start''.
 endincipit = \context Staff {
   \partial 16 s16  % Hack to handle e.g. \bar ".|" \endincipit
-  \once \override Staff.Clef #'full-size-change = ##t
-  \once \override Staff.Clef #'non-default = ##t
+  \once \override Staff.Clef.full-size-change = ##t
+  \once \override Staff.Clef.non-default = ##t
   \bar ""
 }
 
@@ -240,26 +260,26 @@ harmonicNote =
 
 hideNotes = {
   % hide notes, accidentals, etc.
-  \override Dots #'transparent = ##t
-  \override NoteHead #'transparent = ##t
-  \override NoteHead #'no-ledgers = ##t
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
-  \override Beam #'transparent = ##t
-  \override Accidental #'transparent = ##t
-  \override Rest #'transparent = ##t
-  \override TabNoteHead #'transparent = ##t
+  \override Dots.transparent = ##t
+  \override NoteHead.transparent = ##t
+  \override NoteHead.no-ledgers = ##t
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
+  \override Beam.transparent = ##t
+  \override Accidental.transparent = ##t
+  \override Rest.transparent = ##t
+  \override TabNoteHead.transparent = ##t
 }
 unHideNotes = {
-  \revert Accidental #'transparent
-  \revert Beam #'transparent
-  \revert Stem #'transparent
-  \revert Flag #'transparent
-  \revert NoteHead #'transparent
-  \revert NoteHead #'no-ledgers
-  \revert Dots #'transparent
-  \revert Rest #'transparent
-  \revert TabNoteHead #'transparent
+  \revert Accidental.transparent
+  \revert Beam.transparent
+  \revert Stem.transparent
+  \revert Flag.transparent
+  \revert NoteHead.transparent
+  \revert NoteHead.no-ledgers
+  \revert Dots.transparent
+  \revert Rest.transparent
+  \revert TabNoteHead.transparent
 }
 
 
@@ -267,34 +287,63 @@ unHideNotes = {
 
 improvisationOn = {
   \set squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Accidental #'stencil = ##f
-  \override AccidentalCautionary #'stencil = ##f
+  \override NoteHead.style = #'slash
+  \override Accidental.stencil = ##f
+  \override AccidentalCautionary.stencil = ##f
 }
 improvisationOff = {
   \unset squashedPosition
-  \revert NoteHead #'style
-  \revert Accidental #'stencil
-  \revert AccidentalCautionary #'stencil
+  \revert NoteHead.style
+  \revert Accidental.stencil
+  \revert AccidentalCautionary.stencil
+}
+
+%% kievan
+kievanOn = {
+ \override NoteHead.style = #'kievan
+ \override Stem.X-offset = #stem::kievan-offset-callback
+ \override Stem.stencil = ##f
+ \override Flag.stencil = ##f
+ \override Rest.style = #'mensural
+ \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
+ \override Dots.style = #'kievan
+ \override Slur.stencil = ##f
+ \override Stem.length = #0.0
+ \override Beam.positions = #beam::get-kievan-positions
+ \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
+ \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
+}
+kievanOff = {
+ \revert NoteHead.style
+ \revert Stem.X-offset
+ \revert Stem.stencil
+ \revert Rest.style
+ \revert Accidental.glyph-name-alist
+ \revert Dots.style
+ \revert Slur.stencil
+ \revert Flag.stencil
+ \revert Stem.length
+ \revert Beam.positions
+ \revert Beam.quantized-positions
+ \revert NoteHead.duration-log
 }
 
-
 %% merging
 
 mergeDifferentlyDottedOn =
-  \override Staff.NoteCollision #'merge-differently-dotted = ##t
+  \override Staff.NoteCollision.merge-differently-dotted = ##t
 mergeDifferentlyDottedOff =
-  \revert Staff.NoteCollision #'merge-differently-dotted
+  \revert Staff.NoteCollision.merge-differently-dotted
 mergeDifferentlyHeadedOn =
-  \override Staff.NoteCollision #'merge-differently-headed = ##t
+  \override Staff.NoteCollision.merge-differently-headed = ##t
 mergeDifferentlyHeadedOff =
-  \revert Staff.NoteCollision #'merge-differently-headed
+  \revert Staff.NoteCollision.merge-differently-headed
 
 
 %% numeric time signature
 
-numericTimeSignature = \override Staff.TimeSignature #'style = #'numbered
-defaultTimeSignature = \revert Staff.TimeSignature #'style
+numericTimeSignature = \override Staff.TimeSignature.style = #'numbered
+defaultTimeSignature = \revert Staff.TimeSignature.style
 
 
 %% palm mutes
@@ -313,9 +362,9 @@ palmMute =
 %% phrasing slurs
 
 % directions
-phrasingSlurUp      = \override PhrasingSlur #'direction = #UP
-phrasingSlurDown    = \override PhrasingSlur #'direction = #DOWN
-phrasingSlurNeutral = \revert PhrasingSlur #'direction
+phrasingSlurUp      = \override PhrasingSlur.direction = #UP
+phrasingSlurDown    = \override PhrasingSlur.direction = #DOWN
+phrasingSlurNeutral = \revert PhrasingSlur.direction
 
 % dash-patterns (make-simple-dash-definition defined at top of file)
 phrasingSlurDashPattern =
@@ -324,42 +373,40 @@ phrasingSlurDashPattern =
    (_i "Set up a custom style of dash pattern for @var{dash-fraction} ratio of
 line to space repeated at @var{dash-period} interval for phrasing slurs.")
   #{
-     \override PhrasingSlur #'dash-definition =
+     \override PhrasingSlur.dash-definition =
        $(make-simple-dash-definition dash-fraction dash-period)
   #})
 phrasingSlurDashed =
-  \override PhrasingSlur #'dash-definition = #'((0 1 0.4 0.75))
+  \override PhrasingSlur.dash-definition = #'((0 1 0.4 0.75))
 phrasingSlurDotted =
-  \override PhrasingSlur #'dash-definition = #'((0 1 0.1 0.75))
+  \override PhrasingSlur.dash-definition = #'((0 1 0.1 0.75))
 phrasingSlurHalfDashed =
-  \override PhrasingSlur #'dash-definition = #'((0 0.5 0.4 0.75)
+  \override PhrasingSlur.dash-definition = #'((0 0.5 0.4 0.75)
                                                (0.5 1 1 1))
 phrasingSlurHalfSolid =
-  \override PhrasingSlur #'dash-definition = #'((0 0.5 1 1)
+  \override PhrasingSlur.dash-definition = #'((0 0.5 1 1)
                                                (0.5 1 0.4 0.75))
 phrasingSlurSolid =
-  \revert PhrasingSlur #'dash-definition
+  \revert PhrasingSlur.dash-definition
 
 
 %% point and click
 
 pointAndClickOn  =
-#(define-music-function (parser location) ()
+#(define-void-function (parser location) ()
    (_i "Enable generation of code in final-format (e.g. pdf) files to reference the
 originating lilypond source statement;
 this is helpful when developing a score but generates bigger final-format files.")
-   (ly:set-option 'point-and-click #t)
-   (make-music 'SequentialMusic 'void #t))
+   (ly:set-option 'point-and-click #t))
 
 pointAndClickOff =
-#(define-music-function (parser location) ()
+#(define-void-function (parser location) ()
    (_i "Suppress generating extra code in final-format (e.g. pdf) files to point
 back to the lilypond source statement.")
-   (ly:set-option 'point-and-click #f)
-   (make-music 'SequentialMusic 'void #t))
+   (ly:set-option 'point-and-click #f))
 
 pointAndClickTypes =
-#(define-void-function (parser location types) (list-or-symbol?)
+#(define-void-function (parser location types) (symbol-list-or-symbol?)
   (_i "Set a type or list of types (such as @code{#'note-event}) for which point-and-click info is generated.")
   (ly:set-option 'point-and-click types))
 
@@ -393,18 +440,18 @@ walkerHeadsMinor =
 
 %% shifts
 
-shiftOn   = \override NoteColumn #'horizontal-shift = #1
-shiftOnn  = \override NoteColumn #'horizontal-shift = #2
-shiftOnnn = \override NoteColumn #'horizontal-shift = #3
-shiftOff  = \revert NoteColumn #'horizontal-shift
+shiftOn   = \override NoteColumn.horizontal-shift = #1
+shiftOnn  = \override NoteColumn.horizontal-shift = #2
+shiftOnnn = \override NoteColumn.horizontal-shift = #3
+shiftOff  = \revert NoteColumn.horizontal-shift
 
 
 %% slurs
 
 % directions
-slurUp         = \override Slur #'direction = #UP
-slurDown       = \override Slur #'direction = #DOWN
-slurNeutral    = \revert Slur #'direction
+slurUp         = \override Slur.direction = #UP
+slurDown       = \override Slur.direction = #DOWN
+slurNeutral    = \revert Slur.direction
 
 % dash-patterns (make-simple-dash-definition defined at top of file)
 slurDashPattern =
@@ -413,16 +460,16 @@ slurDashPattern =
   (_i "Set up a custom style of dash pattern for @var{dash-fraction}
 ratio of line to space repeated at @var{dash-period} interval for slurs.")
   #{
-     \override Slur #'dash-definition =
+     \override Slur.dash-definition =
        $(make-simple-dash-definition dash-fraction dash-period)
   #})
-slurDashed     = \override Slur #'dash-definition = #'((0 1 0.4 0.75))
-slurDotted     = \override Slur #'dash-definition = #'((0 1 0.1 0.75))
-slurHalfDashed = \override Slur #'dash-definition = #'((0 0.5 0.4 0.75)
+slurDashed     = \override Slur.dash-definition = #'((0 1 0.4 0.75))
+slurDotted     = \override Slur.dash-definition = #'((0 1 0.1 0.75))
+slurHalfDashed = \override Slur.dash-definition = #'((0 0.5 0.4 0.75)
                                                       (0.5 1 1 1))
-slurHalfSolid  = \override Slur #'dash-definition = #'((0 0.5 1 1)
+slurHalfSolid  = \override Slur.dash-definition = #'((0 0.5 1 1)
                                                       (0.5 1 0.4 0.75))
-slurSolid      = \revert Slur #'dash-definition
+slurSolid      = \revert Slur.dash-definition
 
 
 %% staff switches
@@ -433,9 +480,9 @@ hideStaffSwitch = \set followVoice = ##f
 
 %% stems
 
-stemUp      = \override Stem #'direction = #UP
-stemDown    = \override Stem #'direction = #DOWN
-stemNeutral = \revert Stem #'direction
+stemUp      = \override Stem.direction = #UP
+stemDown    = \override Stem.direction = #DOWN
+stemNeutral = \revert Stem.direction
 
 
 %% tablature
@@ -443,91 +490,91 @@ stemNeutral = \revert Stem #'direction
 % switch to full notation
 tabFullNotation = {
   % time signature
-  \revert TabStaff.TimeSignature #'stencil
+  \revert TabStaff.TimeSignature.stencil
   % stems (the half note gets a double stem)
-  \revert TabVoice.Stem #'length
-  \revert TabVoice.Stem #'no-stem-extend
-  \revert TabVoice.Flag #'style
-  \revert TabVoice.Stem #'details
-  \revert TabVoice.Stem #'stencil
-  \revert TabVoice.Flag #'stencil
-  \override TabVoice.Stem #'stencil = #tabvoice::draw-double-stem-for-half-notes
-  \override TabVoice.Stem #'X-extent = #tabvoice::make-double-stem-width-for-half-notes
+  \revert TabVoice.Stem.length
+  \revert TabVoice.Stem.no-stem-extend
+  \revert TabVoice.Flag.style
+  \revert TabVoice.Stem.details
+  \revert TabVoice.Stem.stencil
+  \revert TabVoice.Flag.stencil
+  \override TabVoice.Stem.stencil = #tabvoice::draw-double-stem-for-half-notes
+  \override TabVoice.Stem.X-extent = #tabvoice::make-double-stem-width-for-half-notes
   \set TabVoice.autoBeaming = ##t
-  \revert TabVoice.NoteColumn #'ignore-collision
+  \revert TabVoice.NoteColumn.ignore-collision
   % beams, dots
-  \revert TabVoice.Beam #'stencil
-  \revert TabVoice.StemTremolo #'stencil
-  \revert TabVoice.Dots #'stencil
-  \revert TabVoice.Tie #'stencil
-  \revert TabVoice.Tie #'after-line-breaking
-  \revert TabVoice.RepeatTie #'stencil
-  \revert TabVoice.RepeatTie #'after-line-breaking
-  \revert TabVoice.LaissezVibrerTie #'stencil
-  \revert TabVoice.Slur #'stencil
-  \revert TabVoice.PhrasingSlur #'stencil
+  \revert TabVoice.Beam.stencil
+  \revert TabVoice.StemTremolo.stencil
+  \revert TabVoice.Dots.stencil
+  \revert TabVoice.Tie.stencil
+  \revert TabVoice.Tie.after-line-breaking
+  \revert TabVoice.RepeatTie.stencil
+  \revert TabVoice.RepeatTie.after-line-breaking
+  \revert TabVoice.LaissezVibrerTie.stencil
+  \revert TabVoice.Slur.stencil
+  \revert TabVoice.PhrasingSlur.stencil
   % tuplet stuff
-  \revert TabVoice.TupletBracket #'stencil
-  \revert TabVoice.TupletNumber #'stencil
+  \revert TabVoice.TupletBracket.stencil
+  \revert TabVoice.TupletNumber.stencil
   % dynamic signs
-  \revert TabVoice.DynamicText #'stencil
-  \revert TabVoice.DynamicTextSpanner #'stencil
-  \revert TabVoice.DynamicTextSpanner #'stencil
-  \revert TabVoice.Hairpin #'stencil
+  \revert TabVoice.DynamicText.stencil
+  \revert TabVoice.DynamicTextSpanner.stencil
+  \revert TabVoice.DynamicTextSpanner.stencil
+  \revert TabVoice.Hairpin.stencil
   % rests
-  \revert TabVoice.Rest #'stencil
-  \revert TabVoice.MultiMeasureRest #'stencil
-  \revert TabVoice.MultiMeasureRestNumber #'stencil
-  \revert TabVoice.MultiMeasureRestText #'stencil
+  \revert TabVoice.Rest.stencil
+  \revert TabVoice.MultiMeasureRest.stencil
+  \revert TabVoice.MultiMeasureRestNumber.stencil
+  \revert TabVoice.MultiMeasureRestText.stencil
   % markups etc.
-  \revert TabVoice.Glissando #'stencil
-  \revert TabVoice.Script #'stencil
-  \revert TabVoice.TextScript #'stencil
-  \revert TabVoice.TextSpanner #'stencil
-  \revert TabStaff.Arpeggio #'stencil
-  \revert TabStaff.NoteColumn #'ignore-collision
+  \revert TabVoice.Glissando.stencil
+  \revert TabVoice.Script.stencil
+  \revert TabVoice.TextScript.stencil
+  \revert TabVoice.TextSpanner.stencil
+  \revert TabStaff.Arpeggio.stencil
+  \revert TabStaff.NoteColumn.ignore-collision
 }
 
 %tie/repeat tie behaviour
 hideSplitTiedTabNotes = {
-  \override TabVoice.TabNoteHead #'(details tied-properties break-visibility) = #all-invisible
-  \override TabVoice.TabNoteHead #'(details tied-properties parenthesize) = ##f
-  \override TabVoice.TabNoteHead #'(details repeat-tied-properties note-head-visible) = ##f
-  \override TabVoice.TabNoteHead #'(details repeat-tied-properties parenthesize) = ##f
+  \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #all-invisible
+  \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##f
+  \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##f
+  \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##f
 }
 
 showSplitTiedTabNotes = {
-  \override TabVoice.TabNoteHead #'(details tied-properties break-visibility) = #begin-of-line-visible
-  \override TabVoice.TabNoteHead #'(details tied-properties parenthesize) = ##t
-  \override TabVoice.TabNoteHead #'(details repeat-tied-properties note-head-visible) = ##t
-  \override TabVoice.TabNoteHead #'(details repeat-tied-properties parenthesize) = ##t
+  \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #begin-of-line-visible
+  \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##t
+  \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##t
+  \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##t
 }
 
 %% text length
 
 textLengthOn = {
-  \override TextScript #'extra-spacing-width = #'(0 . 0)
-  \override TextScript #'extra-spacing-height = #'(-inf.0 . +inf.0)
+  \override TextScript.extra-spacing-width = #'(0 . 0)
+  \override TextScript.extra-spacing-height = #'(-inf.0 . +inf.0)
 }
 textLengthOff = {
-  \override TextScript #'extra-spacing-width = #'(+inf.0 . -inf.0)
-  \override TextScript #'extra-spacing-height = #'(0 . 0)
+  \override TextScript.extra-spacing-width = #'(+inf.0 . -inf.0)
+  \override TextScript.extra-spacing-height = #'(0 . 0)
 }
 
 
 %% text spanners
 
-textSpannerUp      = \override TextSpanner #'direction = #UP
-textSpannerDown    = \override TextSpanner #'direction = #DOWN
-textSpannerNeutral = \revert TextSpanner #'direction
+textSpannerUp      = \override TextSpanner.direction = #UP
+textSpannerDown    = \override TextSpanner.direction = #DOWN
+textSpannerNeutral = \revert TextSpanner.direction
 
 
 %% ties
 
 % directions
-tieUp      = \override Tie #'direction = #UP
-tieDown    = \override Tie #'direction = #DOWN
-tieNeutral = \revert Tie #'direction
+tieUp      = \override Tie.direction = #UP
+tieDown    = \override Tie.direction = #DOWN
+tieNeutral = \revert Tie.direction
 
 % dash-patterns (make-simple-dash-definition defined at top of file)
 tieDashPattern =
@@ -536,23 +583,23 @@ tieDashPattern =
   (_i "Set up a custom style of dash pattern for @var{dash-fraction}
 ratio of line to space repeated at @var{dash-period} interval for ties.")
   #{
-     \override Tie #'dash-definition =
+     \override Tie.dash-definition =
        $(make-simple-dash-definition dash-fraction dash-period)
   #})
-tieDashed     = \override Tie #'dash-definition = #'((0 1 0.4 0.75))
-tieDotted     = \override Tie #'dash-definition = #'((0 1 0.1 0.75))
-tieHalfDashed = \override Tie #'dash-definition = #'((0 0.5 0.4 0.75)
+tieDashed     = \override Tie.dash-definition = #'((0 1 0.4 0.75))
+tieDotted     = \override Tie.dash-definition = #'((0 1 0.1 0.75))
+tieHalfDashed = \override Tie.dash-definition = #'((0 0.5 0.4 0.75)
                                                     (0.5 1 1 1))
-tieHalfSolid  = \override Tie #'dash-definition = #'((0 0.5 1 1)
+tieHalfSolid  = \override Tie.dash-definition = #'((0 0.5 1 1)
                                                     (0.5 1 0.4 0.75))
-tieSolid      = \revert Tie #'dash-definition
+tieSolid      = \revert Tie.dash-definition
 
 
 %% tuplets
 
-tupletUp      = \override TupletBracket #'direction = #UP
-tupletDown    = \override TupletBracket #'direction = #DOWN
-tupletNeutral = \revert TupletBracket #'direction
+tupletUp      = \override TupletBracket.direction = #UP
+tupletDown    = \override TupletBracket.direction = #DOWN
+tupletNeutral = \revert TupletBracket.direction
 
 
 %% voice properties
@@ -568,42 +615,48 @@ oneVoice   = #(context-spec-music (make-voice-props-revert) 'Voice)
 %% voice styles
 
 voiceOneStyle = {
-  \override NoteHead #'style = #'diamond
-  \override NoteHead #'color = #red
-  \override Stem #'color = #red
-  \override Flag #'color = #red
-  \override Beam #'color = #red
+  \override NoteHead.style = #'diamond
+  \override NoteHead.color = #red
+  \override Stem.color = #red
+  \override Flag.color = #red
+  \override Beam.color = #red
 }
 voiceTwoStyle = {
-  \override NoteHead #'style = #'triangle
-  \override NoteHead #'color = #blue
-  \override Stem #'color = #blue
-  \override Flag #'color = #blue
-  \override Beam #'color = #blue
+  \override NoteHead.style = #'triangle
+  \override NoteHead.color = #blue
+  \override Stem.color = #blue
+  \override Flag.color = #blue
+  \override Beam.color = #blue
 }
 voiceThreeStyle = {
-  \override NoteHead #'style = #'xcircle
-  \override NoteHead #'color = #green
-  \override Stem #'color = #green
-  \override Flag #'color = #green
-  \override Beam #'color = #green
+  \override NoteHead.style = #'xcircle
+  \override NoteHead.color = #green
+  \override Stem.color = #green
+  \override Flag.color = #green
+  \override Beam.color = #green
 }
 voiceFourStyle = {
-  \override NoteHead #'style = #'cross
-  \override NoteHead #'color = #magenta
-  \override Stem #'color = #magenta
-  \override Flag #'color = #magenta
-  \override Beam #'color = #magenta
+  \override NoteHead.style = #'cross
+  \override NoteHead.color = #magenta
+  \override Stem.color = #magenta
+  \override Flag.color = #magenta
+  \override Beam.color = #magenta
 }
 voiceNeutralStyle = {
-  \revert NoteHead #'style
-  \revert NoteHead #'color
-  \revert Stem #'color
-  \revert Flag #'color
-  \revert Beam #'color
+  \revert NoteHead.style
+  \revert NoteHead.color
+  \revert Stem.color
+  \revert Flag.color
+  \revert Beam.color
 }
 
 
+%% volta brackets
+
+allowVoltaHook =
+#(define-void-function (parser location bar) (string?)
+                       (allow-volta-hook bar))
+
 %% x notes
 
 xNotesOn =
index b507d01829a527abe49866bfdf36a77fbd970732..44dcdb663352fb5a5974daf78ed7b0ee7dcb8bb4 100644 (file)
@@ -10,6 +10,10 @@ enddecr = #(make-span-event 'DecrescendoEvent STOP)
 endcr = #(make-span-event 'CrescendoEvent STOP) 
 
 
+startMeasureCount = #(make-span-event 'MeasureCounterEvent START)
+stopMeasureCount = #(make-span-event 'MeasureCounterEvent STOP)
+
+
 startTextSpan = #(make-span-event 'TextSpanEvent START)
 stopTextSpan = #(make-span-event 'TextSpanEvent STOP)
 
index 98ad8b2e63ce89d6ddabb2aa5aa85be825767d07..c90f6ee5d242ebc3a0dbcb3b6acd4d7f845cff93 100644 (file)
@@ -107,14 +107,25 @@ book last one."
    empty-stencil))
 
 %% Bookpart first page and last page predicates
+#(define (part-first-page? layout props)
+  (= (chain-assoc-get 'page:page-number props -1)
+     (ly:output-def-lookup layout 'first-page-number)))
+
+#(define (part-last-page? layout props)
+  (chain-assoc-get 'page:is-bookpart-last-page props #f))
+
 #(define (part-first-page layout props arg)
-  (if (= (chain-assoc-get 'page:page-number props -1)
-         (ly:output-def-lookup layout 'first-page-number))
+  (if (part-first-page? layout props)
+      (interpret-markup layout props arg)
+      empty-stencil))
+
+#(define (not-part-first-page layout props arg)
+  (if (not (part-first-page? layout props))
       (interpret-markup layout props arg)
       empty-stencil))
 
 #(define (part-last-page layout props arg)
-  (if (chain-assoc-get 'page:is-bookpart-last-page props #f)
+  (if (part-last-page? layout props)
       (interpret-markup layout props arg)
       empty-stencil))
 
@@ -132,7 +143,7 @@ book last one."
    empty-stencil))
 
 #(define (print-page-number-check-first layout props arg)
-  (if (or (not (book-first-page? layout props))
+  (if (or (not (part-first-page? layout props))
           (eq? (ly:output-def-lookup layout 'print-first-page-number) #t))
    (create-page-number-stencil layout props arg)
    empty-stencil))
@@ -142,7 +153,7 @@ oddHeaderMarkup = \markup
   %% force the header to take some space, otherwise the
   %% page layout becomes a complete mess.
   " "
-  \on-the-fly #not-first-page \fromproperty #'header:instrument
+  \on-the-fly #not-part-first-page \fromproperty #'header:instrument
   \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string
 }
 
@@ -151,7 +162,7 @@ oddHeaderMarkup = \markup
 evenHeaderMarkup = \markup
 \fill-line {
   \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string
-  \on-the-fly #not-first-page \fromproperty #'header:instrument
+  \on-the-fly #not-part-first-page \fromproperty #'header:instrument
   " "
 }
 
@@ -159,11 +170,11 @@ oddFooterMarkup = \markup {
   \column {
     \fill-line {
       %% Copyright header field only on first page.
-      \on-the-fly #first-page \fromproperty #'header:copyright
+      \on-the-fly #part-first-page \fromproperty #'header:copyright
     }
     \fill-line {
       %% Tagline header field only on last page.
-      \on-the-fly #last-page \fromproperty #'header:tagline
+      \on-the-fly #part-last-page \fromproperty #'header:tagline
     }
   }
 }
diff --git a/make/GNUmakefile b/make/GNUmakefile
deleted file mode 100644 (file)
index 1f26abc..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-depth = ..
-
-STEPMAKE_TEMPLATES=makedir install
-
-include $(depth)/make/stepmake.make
-
-default: spec
-
index f8fda6c5b1ce7ef213c439ea7885a9cf753196bf..ef394cd41e7c949f6f43bf6bb1d947a6f78719b3 100644 (file)
@@ -3,5 +3,3 @@
 ABC_FILES = $(call src-wildcard,*.abc)
 OUT_LY_FILES = $(sort ${ABC_FILES:%.abc=$(outdir)/%.ly})
 OUT_FILES = $(OUT_LY_FILES)
-
-EXTRA_DIST_FILES += $(ABC_FILES)
index d12c27ebcde1749725581a12db10403de7f0598d..b27aa56e14ca1e8e0b429e1981a0b7c46bfc3ee2 100644 (file)
@@ -52,5 +52,5 @@ $(outdir)/%.xml:  %.lyxml
 # Add the xml => pdf rule only if we have dblatex
 ifeq (,$(findstring dblatex,$(MISSING_OPTIONAL)))
 $(outdir)/%.pdf:  $(outdir)/%.xml
-       cd $(outdir) && $(DBLATEX) $(notdir $<)
+       cd $(outdir) && $(buildscript-dir)/run-and-check "$(DBLATEX) $(notdir $<)" "$*.dblatex.log"
 endif
index 954626f6bcacc5f54db067aff178dea5aa623bd3..25dd5b2fbbb64afbc1a0bd315f46694cb15c8389 100644 (file)
@@ -46,4 +46,5 @@ $(outdir)/others-did.itexi $(outdir)/we-wrote.itexi: $(outdir)/%.itexi: $(top-sr
        BSTINPUTS=$(top-src-dir)/Documentation/web/ $(buildscript-dir)/bib2texi \
                -s $(top-src-dir)/Documentation/lily-bib \
                -o $(outdir)/$*.itexi \
+               -q \
                $(top-src-dir)/Documentation/web/$*.bib
index 7d572adb750c212847b326e9729adb16288d46ab..4757ad8b57ccd2abcd5a2b75a0923625b0f5c132 100644 (file)
@@ -12,8 +12,6 @@ ILY_FILES := $(call src-wildcard,*.ily)
 
 TEXINFO_SOURCES += $(TELY_FILES) $(ITELY_FILES) $(ITEXI_FILES)
 
-EXTRA_DIST_FILES +=$(TELY_FILES) $(LY_FILES) $(ITEXI_FILES) $(ITELY_FILES) $(ILY_FILES)
-
 # prerequisites for all rules invoking compiled lilypond binary
 ifeq ($(LILYPOND_EXTERNAL_BINARY),)
 INIT_LY_SOURCES = $(wildcard $(top-src-dir)/scm/*.scm)
index 7b3a27613fd076f2bb7e61e27999d9556fae2759..8aef6eea4b465c2026cd0db99ba74cec530cdcc5 100644 (file)
@@ -6,5 +6,3 @@ HEADER_FIELDS = texidoc options
 OUT_DIFF_FILES = ${LY_FILES:%.ly=$(outdir)/%.diff}
 MIDI2LY_IGNORE_RES = -I 'Lily was here' -I '^\\version ' -I 'TEXT_EVENT.*GNU LilyPond' -I '^% included from'
 DIFF = diff
-
-EXTRA_DIST_FILES += $(MIDI_FILES) $(HEADER_FILES)
index 7706e58151a5cd1cc7619e8bc2a48ec71a55fa49..84dc36446b65cdb3dd6761518e1a4b1251936b03 100644 (file)
@@ -4,5 +4,3 @@ MUSICXML_FILES = $(call src-wildcard,*.xml)
 MUSICMXL_FILES = $(call src-wildcard,*.mxl)  # Allow .mxl for compressed files
 OUT_LY_FILES = $(sort ${MUSICXML_FILES:%.xml=$(outdir)/%.ly} ${MUSICMXL_FILES:%.mxl=$(outdir)/%.ly})
 OUT_FILES = $(OUT_LY_FILES)
-
-EXTRA_DIST_FILES += $(MUSICXML_FILES) $(MUSICMXL_FILES) $(call src-wildcard,*.broken)
index 83859dbe66fc2b4af51bd7bf63947d9700db6913..7b4cbf455d1e18d48c4c8c0b33d83c5808a634f7 100644 (file)
@@ -1737,6 +1737,59 @@ fet_beginchar ("Straight caesura", "caesura.straight");
 fet_endchar;
 
 
+% A tick character to use instead of a comma or caesura as a breath mark.
+% Very common in vocal notation.
+
+fet_beginchar ("Tick mark", "tickmark");
+       save end_rad, bot_rad, pat, x_centre, x_extent;
+       path pat;
+
+       end_rad = linethickness / 2;
+       bot_rad = linethickness;
+
+       x_centre# = 0.6 staff_space#;
+       x_extent# = 1.7 staff_space#;
+
+       define_pixels (x_centre, x_extent);
+
+       pickup pencircle scaled end_rad;
+
+       lft x1 = -x_centre;
+       y1 = 0.8 staff_space;
+
+       x2 = 0;
+       y2l = 0;
+
+       top rt z3 = (x_extent - x_centre, x_extent);
+
+       x4 = lft x1;
+       y4 = staff_space;
+
+       penpos2 (0.4 staff_space, 90);
+       penpos3 (end_rad, angle(z4 - z3) + 90);
+       penpos1 (end_rad, angle(z2 - z1) + 90);
+
+       pat = z1r
+             .. top z1
+             .. z1l{z2 - z1}
+             .. {z2 - (z1 + (0.3 staff_space,0))}z2l + (-bot_rad, bot_rad)
+             .. z2l
+             .. z2l + (bot_rad, bot_rad){z3 - (0.6 staff_space, 0) - z2}
+             .. {z3 - z4}z3r
+             .. rt z3
+             .. {z4 - z3}z3l
+             .. {z2 - (z3 - (0.6 staff_space, 0))}rt z2r
+             .. {z1 - z2}lft z2r{z1 - z2}
+             .. cycle;
+       fill pat;
+
+       set_char_box (x_centre#, x_extent# - x_centre#, 0, x_extent#);
+
+       penlabels (1, 2, 3);
+       labels (4);
+fet_endchar;
+
+
 fet_beginchar ("snap pizzicato (Bartok pizzicato)", "snappizzicato");
        save height, width, thickness, superness;
 
index 34a09cf20bc40d7b0def688c2af66fc54731362f..8cc936380ef113c632d7acc0d0d0ad460f4572e4 100644 (file)
@@ -443,6 +443,7 @@ def draw_brevis (expr exact_center, bwidth, bheight, blinethickness) =
        penlabels (1, 2, 3);
 enddef;
 
+
 %
 % Draw two brevis notes; the second one shifted down by `shift'.
 % The other parameters are the same as with `draw_brevis'.
@@ -522,87 +523,6 @@ def draw_double_brevis (expr exact_center, bwidth, bheight,
 enddef;
 
 
-%
-% Draw three brevis notes; the second one shifted down by `shift',
-% the third one by `2 shift'.
-% The other parameters are the same as with `draw_brevis'.
-%
-def draw_triple_brevis (expr exact_center, bwidth, bheight,
-                            blinethickness, shift) =
-       save brevis_width, brevis_height, linethickness;
-
-       brevis_width# = bwidth;
-       brevis_height# = bheight;
-       linethickness# = blinethickness;
-
-       save beam_width, beam_height;
-       save serif_size, serif_protrude, hole_height;
-
-       beam_width# = 1.4 linethickness#;
-       hole_height# = 3 linethickness#;
-       2 beam_height# + hole_height# = brevis_height#;
-       serif_size# = (hole_height# - linethickness#) / 2;
-       serif_protrude# = 1.5 serif_size#;
-
-       save xoffs, yoffs;
-
-       xoffs# = xpart exact_center;
-       yoffs# = ypart exact_center;
-
-       define_pixels (xoffs, yoffs);
-       define_pixels (brevis_width, brevis_height, linethickness);
-       define_pixels (beam_width, beam_height, serif_size, serif_protrude);
-
-       z1l = (xoffs, yoffs - linethickness);
-       z2r = z1r + serif_size * (1, -1);
-       z3l = z2l + (-serif_size, -serif_protrude);
-
-       penpos1 (beam_width, 0);
-       penpos2 (beam_height, 90);
-       penpos3 (beam_width, 180);
-
-       z7 = z1 shifted (0, -2 shift);
-       z8 = z2 shifted (0, -2 shift);
-       z9 = z3 shifted (0, -2 shift);
-       
-       penpos7 (beam_width, 0);
-       penpos8 (beam_height, 90);
-       penpos9 (beam_width, 180);
-
-       save pat_in, pat_out;
-       path pat_in, pat_out;
-
-       pat_out := z9r{down}
-                  .. z9l{up}
-                  .. z8l{right};
-       pat_out := pat_out
-                  -- reverse pat_out xscaled -1
-                                     shifted (2 xoffs + brevis_width, 0);
-       pat_out := pat_out
-                  -- reverse pat_out yscaled -1
-                                     shifted (0, -2 yoffs)
-                  -- cycle;
-
-       fill pat_out;
-
-       pat_in := z1r{down}
-                 .. z2r{right};
-       pat_in := pat_in
-                 -- reverse pat_in xscaled -1
-                                   shifted (2 xoffs + brevis_width, 0);
-       pat_in := pat_in
-                 -- reverse pat_in yscaled -1
-                                   shifted (0, 2 yoffs)
-                 -- cycle;
-
-       unfill pat_in;
-       unfill pat_in shifted (0, -shift);
-       unfill pat_in shifted (0, -2 shift);
-
-       penlabels (1, 2, 3, 7, 8, 9);
-enddef;
-
-
 def draw_neomensural_c_clef (expr exact_center, reduction) = 
        save reduced_il, reduced_slt, stem_width;
 
@@ -841,97 +761,108 @@ fet_beginchar ("petrucci c5 clef", "petrucci.c5_change");
 fet_endchar;
 
 
-def draw_mensural_c_clef (expr exact_center, reduction) =
-       % inspired by Ockeghem, "Missa Prolationum", in: MGG, volume
-       % 9, table 94.
-
-       save reduced_il;
+def draw_mensural_c_clef (expr exact_center, reduction, fill_char) =
+       save reduced_il, vert_thick, hor_thick, blot_rad;
 
        reduced_il# = staff_space# * reduction;
+       vert_thick# = linethickness# * 1.4;
+       hor_thick# = staff_space# * reduction * 0.25;
+
+       blot_rad = blot_diameter / 2;
+
+       define_pixels (reduced_il, vert_thick, hor_thick);
+
+       pickup pencircle scaled blot_diameter;
+
+       penpos1 (vert_thick, 0);
+       penpos2 (vert_thick, 0);
+       penpos3 (hor_thick, 90);
+       penpos4 (hor_thick, 90);
+       penpos5 (hor_thick, 90);
+       penpos6 (hor_thick, 90);
+       penpos7 (vert_thick, 0);
+       penpos8 (hor_thick, 90);
+
+       z1l = (0, 0);
+       x2l = 0;
+       top y2 = 2.2 reduced_il;
+       z3 = (vert_thick, 0.75 reduced_il);
+       z4 = z3 + (reduced_il - vert_thick, 0);
+       z5 = z4 + (vert_thick, -0.5 reduced_il);
+       z6 = z5 - (reduced_il, 0);
+       z7 = z4 + (0.5 vert_thick, 0.5 reduced_il);
+       z8 = z5 - (vert_thick, 0);
+
+       save pat, pat_mid;
+       path pat, pat_mid;
+
+       pat = z1l
+             -- z2l{up}
+             .. z2 + (0, blot_rad)
+             .. {down}z2r
+             -- top z3r{down}
+             .. {right}rt z3r
+             -- lft z4r{right}
+             .. {up}top z4r
+             -- z7l{up}
+             .. z7 + (0, blot_rad)
+             .. {down}z7r
+             -- top z5l{down}
+             .. {left}lft z5l
+             -- rt z6l{left}
+             .. {down}bot z6l
+             --z1r;
+       pat := pat
+              -- reverse pat yscaled -1
+              -- cycle;
+       fill pat;
 
-       define_pixels (reduced_il);
-
-       draw_triple_brevis (exact_center + (0, 0.5 staff_space#),
-                           2 reduced_il#, 0.8 staff_space#,
-                           0.8 linethickness#, staff_space);
-
-       save half_reduced_il;
-
-       half_reduced_il# = staff_space# * sqrt (reduction);
-
-       define_pixels (half_reduced_il);
-
-       set_char_box (0 - xpart exact_center,
-                     2 reduced_il# + xpart exact_center,
-                     2.2 half_reduced_il# + staff_space# -
-                       2 ypart exact_center,
-                     2.2 half_reduced_il# + 2 ypart exact_center);
-
-       save xoffs, yoffs;
-
-       xoffs# = xpart exact_center;
-       yoffs# = ypart exact_center;
-
-       define_pixels (xoffs, yoffs);
-
-       save ellipse, T;
-       path ellipse;
-       transform T;
+       if fill_char:
+               pat_mid = bot z3l{up}
+                         .. {right}rt z3l
+                         -- lft z4l{right}
+                         .. {down}bot z4l
+                         -- top z8r{down}
+                         .. {left}lft z8r
+                         -- rt z6r{left}
+                         .. {up}top z6r
+                         --cycle;
+               unfill pat_mid;
+
+               pat_mid := pat_mid shifted (0, -reduced_il);
+               unfill pat_mid;
+       fi;
 
-       T := identity xscaled 1.4 linethickness
-                     yscaled blot_diameter;
-       pickup pencircle transformed T;
-       ellipse := fullcircle transformed T;
+       set_char_box (0, reduced_il# + vert_thick#,
+                     2.2 reduced_il#, 2.2 reduced_il#);
 
-       lft x11 = lft x13 = xoffs;
-       top y11 = yoffs + 2.2 half_reduced_il;
-       bot y13 = yoffs - 2.2 half_reduced_il - staff_space;
-       rt x15 = rt x17 = xoffs + brevis_width;
-       y15 = yoffs + 1.4 half_reduced_il;
-       y17 = yoffs - 1.4 half_reduced_il - staff_space;
+       penlabels (1, 2, 3, 4, 5, 6, 7, 8);
+enddef;
 
-       z12 = z14 yscaled -1 shifted (0, -staff_space);
-       z14 = z9;
-       z16 = z18 yscaled -1 shifted (0, -staff_space);
-       rt z18 = lft z14 shifted (brevis_width, 0);
 
-       penpos12 (1.4 linethickness, 0);
-       penpos14 (1.4 linethickness, 0);
-       penpos16 (1.4 linethickness, 0);
-       penpos18 (1.4 linethickness, 0);
+fet_beginchar ("mensural c clef", "mensural.c");
+       if test = 1:
+               draw_staff (-1, 3, 0.0);
+       fi;
+       draw_mensural_c_clef ((0, 0), 1.0, true);
+fet_endchar;
 
-       fill get_subpath (ellipse, up, down, z11)
-            -- z12l
-            -- z12r
-            -- cycle;
-       fill get_subpath (ellipse, down, up, z13)
-            -- z14r
-            -- z14l
-            -- cycle;
-       fill get_subpath (ellipse, up, down, z15)
-            -- z16l
-            -- z16r
-            -- cycle;
-       fill get_subpath (ellipse, down, up, z17)
-            -- z18r
-            -- z18l
-            -- cycle;
 
-       labels (11, 13, 15, 17);
-       penlabels (12, 14, 16, 18);
-enddef;
+fet_beginchar ("mensural c clef", "mensural.c_change");
+       draw_mensural_c_clef ((0, 0), .8, true);
+fet_endchar;
 
 
-fet_beginchar ("mensural c clef", "mensural.c");
+fet_beginchar ("black mensural c clef", "blackmensural.c");
        if test = 1:
                draw_staff (-1, 3, 0.0);
        fi;
-       draw_mensural_c_clef ((0, 0), 1.0);
+       draw_mensural_c_clef ((0, 0), 1.0, false);
 fet_endchar;
 
 
-fet_beginchar ("mensural c clef", "mensural.c_change");
-       draw_mensural_c_clef ((0, 0), .8);
+fet_beginchar ("black mensural c clef", "blackmensural.c_change");
+       draw_mensural_c_clef ((0, 0), 0.8, false);
 fet_endchar;
 
 
index c327e86751e708d5316b00f17885dbdd99b8fca3..49f5dd6a637eef2a43502f5760359c15ae7cd830 100644 (file)
@@ -6,17 +6,17 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.16.0\n"
+"Project-Id-Version: lilypond 2.17.8\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu."
 "lilypond.bugs\n"
-"POT-Creation-Date: 2012-08-24 11:03+0200\n"
+"POT-Creation-Date: 2012-12-01 17:00+0000\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"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
 #: book_base.py:26
 #, python-format
@@ -47,68 +47,68 @@ msgid ""
 "%s"
 msgstr ""
 
-#: book_snippets.py:409
+#: book_snippets.py:406
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr ""
 
-#: book_snippets.py:411
+#: book_snippets.py:408
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr ""
 
-#: book_snippets.py:414
+#: book_snippets.py:411
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr ""
 
-#: book_snippets.py:416
+#: book_snippets.py:413
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr ""
 
-#: book_snippets.py:533
+#: book_snippets.py:530
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr ""
 
-#: book_snippets.py:624
+#: book_snippets.py:621
 #, python-format
 msgid "Missing files: %s"
 msgstr ""
 
-#: book_snippets.py:654
+#: book_snippets.py:651
 #, python-format
 msgid "Could not overwrite file %s"
 msgstr ""
 
-#: book_snippets.py:741
+#: book_snippets.py:738
 #, python-format
 msgid "Running through filter `%s'"
 msgstr ""
 
-#: book_snippets.py:761
+#: book_snippets.py:759
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr ""
 
-#: book_snippets.py:762
+#: book_snippets.py:760
 msgid "The error log is as follows:"
 msgstr ""
 
-#: book_snippets.py:882
+#: book_snippets.py:880
 #, python-format
 msgid "Converting MusicXML file `%s'...\n"
 msgstr ""
 
-#: book_snippets.py:909
+#: book_snippets.py:907
 #, python-format
 msgid ""
 "%s: duplicate filename but different contents of original file,\n"
 "printing diff against existing file."
 msgstr ""
 
-#: book_snippets.py:922
+#: book_snippets.py:920
 #, python-format
 msgid ""
 "%s: duplicate filename but different contents of converted lilypond file,\n"
@@ -137,7 +137,7 @@ msgstr ""
 msgid "%s has been replaced by %s"
 msgstr ""
 
-#: convertrules.py:24 lilylib.py:131 warn.cc:223
+#: convertrules.py:24 lilylib.py:136 warn.cc:223
 #, c-format, python-format
 msgid "warning: %s"
 msgstr ""
@@ -786,37 +786,37 @@ msgstr ""
 msgid "Writing fonts to %s"
 msgstr ""
 
-#: lilylib.py:96
+#: lilylib.py:101
 #, python-format
 msgid "Setting loglevel to %s"
 msgstr ""
 
-#: lilylib.py:99
+#: lilylib.py:104
 #, python-format
 msgid "Unknown or invalid loglevel '%s'"
 msgstr ""
 
-#: lilylib.py:128 warn.cc:211
+#: lilylib.py:133 warn.cc:211
 #, c-format, python-format
 msgid "error: %s"
 msgstr ""
 
-#: lilylib.py:185
+#: lilylib.py:190
 #, python-format
 msgid "Processing %s.ly"
 msgstr ""
 
-#: lilylib.py:189 lilylib.py:250
+#: lilylib.py:194 lilylib.py:255
 #, python-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: lilylib.py:191 lilylib.py:252
+#: lilylib.py:196 lilylib.py:257
 #, python-format
 msgid "Running %s..."
 msgstr ""
 
-#: lilylib.py:328
+#: lilylib.py:333
 #, python-format
 msgid "Usage: %s"
 msgstr ""
@@ -875,41 +875,41 @@ msgstr ""
 msgid "Unable to find instrument for ID=%s\n"
 msgstr ""
 
-#: abc2ly.py:1376 convert-ly.py:81 lilypond-book.py:122 midi2ly.py:1044
+#: abc2ly.py:1386 convert-ly.py:84 lilypond-book.py:122 midi2ly.py:1044
 #, python-format
 msgid "%s [OPTION]... FILE"
 msgstr ""
 
-#: abc2ly.py:1377
+#: abc2ly.py:1387
 #, python-format
 msgid ""
 "abc2ly converts ABC music files (see\n"
 "%s) to LilyPond input.\n"
 msgstr ""
 
-#: abc2ly.py:1385 convert-ly.py:88 etf2ly.py:1208 lilypond-book.py:231
-#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:174
+#: abc2ly.py:1395 convert-ly.py:91 etf2ly.py:1208 lilypond-book.py:231
+#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:138
 msgid "show version number and exit"
 msgstr ""
 
-#: abc2ly.py:1388 convert-ly.py:92 etf2ly.py:1204 lilypond-book.py:140
-#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:153
+#: abc2ly.py:1398 convert-ly.py:95 etf2ly.py:1204 lilypond-book.py:140
+#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:117
 msgid "show this help and exit"
 msgstr ""
 
-#: abc2ly.py:1391 etf2ly.py:1209 midi2ly.py:1071
+#: abc2ly.py:1401 etf2ly.py:1209 midi2ly.py:1071
 msgid "write output to FILE"
 msgstr ""
 
-#: abc2ly.py:1394
+#: abc2ly.py:1404
 msgid "be strict about success"
 msgstr ""
 
-#: abc2ly.py:1397
+#: abc2ly.py:1407
 msgid "preserve ABC's notion of beams"
 msgstr ""
 
-#: abc2ly.py:1400
+#: abc2ly.py:1410
 msgid "suppress progress messages"
 msgstr ""
 
@@ -917,8 +917,8 @@ msgstr ""
 #. "Report bugs in English via %s",
 #. or if there is a LilyPond users list or forum in your language
 #. "Report bugs in English via %s or in YOUR_LANG via URI"
-#: abc2ly.py:1403 convert-ly.py:146 etf2ly.py:1218 lilypond-book.py:258
-#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:285
+#: abc2ly.py:1413 convert-ly.py:149 etf2ly.py:1218 lilypond-book.py:258
+#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:249
 #, c-format, python-format
 msgid "Report bugs via %s"
 msgstr ""
@@ -929,102 +929,106 @@ msgid ""
 "version taken from the \\version command, to the current LilyPond version."
 msgstr ""
 
-#: convert-ly.py:48 lilypond-book.py:82
+#: convert-ly.py:49
+msgid "If FILE is `-', read from standard input."
+msgstr ""
+
+#: convert-ly.py:51 lilypond-book.py:82
 msgid "Examples:"
 msgstr ""
 
-#: convert-ly.py:75 etf2ly.py:1191 lilypond-book.py:115 midi2ly.py:81
+#: convert-ly.py:78 etf2ly.py:1191 lilypond-book.py:115 midi2ly.py:81
 #, python-format
 msgid "Copyright (c) %s by"
 msgstr ""
 
-#: convert-ly.py:77 etf2ly.py:1193 lilypond-book.py:117 midi2ly.py:83
+#: convert-ly.py:80 etf2ly.py:1193 lilypond-book.py:117 midi2ly.py:83
 msgid "Distributed under terms of the GNU General Public License."
 msgstr ""
 
-#: convert-ly.py:78 etf2ly.py:1194 lilypond-book.py:118 midi2ly.py:84
+#: convert-ly.py:81 etf2ly.py:1194 lilypond-book.py:118 midi2ly.py:84
 msgid "It comes with NO WARRANTY."
 msgstr ""
 
-#: convert-ly.py:96 convert-ly.py:137
+#: convert-ly.py:99 convert-ly.py:140
 msgid "VERSION"
 msgstr ""
 
-#: convert-ly.py:98
+#: convert-ly.py:101
 msgid "start from VERSION [default: \\version found in file]"
 msgstr ""
 
-#: convert-ly.py:101
+#: convert-ly.py:104
 msgid "edit in place"
 msgstr ""
 
-#: convert-ly.py:105 lilypond-book.py:179 musicxml2ly.py:2627
+#: convert-ly.py:108 lilypond-book.py:179 musicxml2ly.py:2627
 msgid ""
 "Print log messages according to LOGLEVEL (NONE, ERROR, WARNING, PROGRESS "
 "(default), DEBUG)"
 msgstr ""
 
-#: convert-ly.py:107 lilypond-book.py:163 lilypond-book.py:181
-#: musicxml2ly.py:2629 main.cc:167
+#: convert-ly.py:110 lilypond-book.py:163 lilypond-book.py:181
+#: musicxml2ly.py:2629 main.cc:131
 msgid "LOGLEVEL"
 msgstr ""
 
-#: convert-ly.py:113
+#: convert-ly.py:116
 msgid "do not add \\version command if missing"
 msgstr ""
 
-#: convert-ly.py:119
+#: convert-ly.py:122
 #, python-format
 msgid "force updating \\version number to %s"
 msgstr ""
 
-#: convert-ly.py:125
+#: convert-ly.py:128
 msgid "only update \\version number if file is modified"
 msgstr ""
 
-#: convert-ly.py:131
+#: convert-ly.py:134
 #, python-format
 msgid "show rules [default: -f 0, -t %s]"
 msgstr ""
 
-#: convert-ly.py:136
+#: convert-ly.py:139
 #, python-format
 msgid "convert to VERSION [default: %s]"
 msgstr ""
 
-#: convert-ly.py:141 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096
-#: main.cc:176
+#: convert-ly.py:144 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096
+#: main.cc:140
 msgid "show warranty and copyright"
 msgstr ""
 
-#: convert-ly.py:186
+#: convert-ly.py:189
 msgid "Applying conversion: "
 msgstr ""
 
-#: convert-ly.py:202
+#: convert-ly.py:204
 msgid "Error while converting"
 msgstr ""
 
-#: convert-ly.py:204
+#: convert-ly.py:206
 msgid "Stopping at last successful rule"
 msgstr ""
 
-#: convert-ly.py:231
+#: convert-ly.py:234
 #, python-format
 msgid "Processing `%s'... "
 msgstr ""
 
-#: convert-ly.py:338
+#: convert-ly.py:344
 #, python-format
 msgid "%s: Unable to open file"
 msgstr ""
 
-#: convert-ly.py:345
+#: convert-ly.py:350
 #, python-format
 msgid "%s: Unable to determine version.  Skipping"
 msgstr ""
 
-#: convert-ly.py:350
+#: convert-ly.py:356
 #, python-format
 msgid ""
 "%s: Invalid version string `%s' \n"
@@ -1032,6 +1036,13 @@ msgid ""
 "`2.8.12'"
 msgstr ""
 
+#: convert-ly.py:362
+#, python-format
+msgid "There was %d error."
+msgid_plural "There were %d errors."
+msgstr[0] ""
+msgstr[1] ""
+
 #: etf2ly.py:1197
 #, python-format
 msgid "%s [OPTION]... ETF-FILE"
@@ -1045,7 +1056,7 @@ msgid ""
 msgstr ""
 
 #: etf2ly.py:1210 midi2ly.py:1067 midi2ly.py:1072 musicxml2ly.py:2659
-#: main.cc:159 main.cc:171
+#: main.cc:123 main.cc:135
 msgid "FILE"
 msgstr ""
 
@@ -1085,7 +1096,7 @@ msgid "add DIR to include path"
 msgstr ""
 
 #: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:169
-#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:158
+#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:122
 msgid "DIR"
 msgstr ""
 
@@ -1556,15 +1567,15 @@ msgstr ""
 msgid "Unable to find input file %s"
 msgstr ""
 
-#: website_post.py:123
+#: website_post.py:125
 msgid "English"
 msgstr ""
 
-#: website_post.py:126
+#: website_post.py:128
 msgid "Other languages"
 msgstr ""
 
-#: website_post.py:127
+#: website_post.py:129
 #, python-format
 msgid "About <a href=\"%s\">automatic language selection</a>."
 msgstr ""
@@ -1644,12 +1655,12 @@ msgstr ""
 msgid "procedure or context-name expected for accidental rule, found %s"
 msgstr ""
 
-#: accidental.cc:200
+#: accidental.cc:169
 #, c-format
 msgid "Could not find glyph-name for alteration %s"
 msgstr ""
 
-#: accidental.cc:215
+#: accidental.cc:184
 msgid "natural alteration glyph not found"
 msgstr ""
 
@@ -1683,7 +1694,12 @@ msgstr ""
 msgid "removing this vertical group"
 msgstr ""
 
-#: axis-group-interface.cc:668
+#: axis-group-interface.cc:686
+#, c-format
+msgid "\"%s\" is not a valid outside-staff-placement-directive"
+msgstr ""
+
+#: axis-group-interface.cc:756
 msgid "an outside-staff object should have a direction, defaulting to up"
 msgstr ""
 
@@ -1717,7 +1733,7 @@ msgstr ""
 msgid "no viable initial configuration found: may not find good beam slope"
 msgstr ""
 
-#: beam.cc:181
+#: beam.cc:268
 msgid "removing beam with no stems"
 msgstr ""
 
@@ -1773,8 +1789,7 @@ msgstr ""
 msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul"
 msgstr ""
 
-#. if we get to here, just put everything on one line
-#: constrained-breaking.cc:187 constrained-breaking.cc:205
+#: constrained-breaking.cc:187 constrained-breaking.cc:206
 msgid "cannot find line breaking that satisfies constraints"
 msgstr ""
 
@@ -1867,12 +1882,12 @@ msgstr ""
 msgid "unterminated extender"
 msgstr ""
 
-#: flag.cc:113
+#: flag.cc:134
 #, c-format
 msgid "flag `%s' not found"
 msgstr ""
 
-#: flag.cc:133
+#: flag.cc:154
 #, c-format
 msgid "flag stroke `%s' not found"
 msgstr ""
@@ -1905,7 +1920,7 @@ msgstr ""
 msgid "Building font database..."
 msgstr ""
 
-#: footnote-engraver.cc:110
+#: footnote-engraver.cc:87
 msgid "Must be footnote-event."
 msgstr ""
 
@@ -1922,15 +1937,15 @@ msgstr ""
 msgid "unterminated glissando"
 msgstr ""
 
-#: global-context-scheme.cc:96 global-context-scheme.cc:114
+#: global-context-scheme.cc:95 global-context-scheme.cc:113
 msgid "no music found in score"
 msgstr ""
 
-#: global-context-scheme.cc:104
+#: global-context-scheme.cc:103
 msgid "Interpreting music..."
 msgstr ""
 
-#: global-context-scheme.cc:126
+#: global-context-scheme.cc:125
 #, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr ""
@@ -1970,11 +1985,16 @@ msgstr ""
 msgid "%d: %s"
 msgstr ""
 
+#: grob.cc:478
+#, c-format
+msgid "ignored infinite %s-offset"
+msgstr ""
+
 #: hairpin.cc:60
 msgid "Asking for broken bound padding at a non-broken bound."
 msgstr ""
 
-#: hairpin.cc:254
+#: hairpin.cc:256
 msgid "decrescendo too small"
 msgstr ""
 
@@ -2072,16 +2092,16 @@ msgstr ""
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
 
-#: lily-lexer.cc:255
+#: lily-lexer.cc:246
 msgid "include files are not allowed in safe mode"
 msgstr ""
 
-#: lily-lexer.cc:282
+#: lily-lexer.cc:273
 #, c-format
 msgid "identifier name is a keyword: `%s'"
 msgstr ""
 
-#: lily-lexer.cc:303 lily-lexer.cc:316
+#: lily-lexer.cc:294 lily-lexer.cc:307
 #, c-format
 msgid "%s:EOF"
 msgstr ""
@@ -2118,12 +2138,13 @@ msgid ""
 "include-string instead."
 msgstr ""
 
-#: lily-parser.cc:109
+#: lily-parser.cc:108
 msgid "Parsing..."
 msgstr ""
 
-#: line-spanner.cc:373
-msgid "Line spanner's left point is to the right of its right point."
+#: lookup.cc:181
+#, c-format
+msgid "Not drawing a box with negative dimension, %.2f by %.2f."
 msgstr ""
 
 #: lyric-combine-music-iterator.cc:199
@@ -2139,7 +2160,7 @@ msgstr ""
 msgid "Lyric syllable does not have note.  Use \\lyricsto or associatedVoice."
 msgstr ""
 
-#: main.cc:101
+#: main.cc:70
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -2148,7 +2169,7 @@ msgid ""
 "information.\n"
 msgstr ""
 
-#: main.cc:107
+#: main.cc:76
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License as \n"
@@ -2166,98 +2187,98 @@ msgid ""
 "Boston, MA 02111-1307, USA.\n"
 msgstr ""
 
-#: main.cc:141
+#: main.cc:105
 msgid "SYM[=VAL]"
 msgstr ""
 
-#: main.cc:142
+#: main.cc:106
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
 msgstr ""
 
-#: main.cc:146
+#: main.cc:110
 msgid "EXPR"
 msgstr ""
 
-#: main.cc:146
+#: main.cc:110
 msgid "evaluate scheme code"
 msgstr ""
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:149
+#: main.cc:113
 msgid "FORMATs"
 msgstr ""
 
-#: main.cc:149
+#: main.cc:113
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr ""
 
-#: main.cc:150
+#: main.cc:114
 msgid "generate PDF (default)"
 msgstr ""
 
-#: main.cc:151
+#: main.cc:115
 msgid "generate PNG"
 msgstr ""
 
-#: main.cc:152
+#: main.cc:116
 msgid "generate PostScript"
 msgstr ""
 
-#: main.cc:155
+#: main.cc:119
 msgid "FIELD"
 msgstr ""
 
-#: main.cc:155
+#: main.cc:119
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
 msgstr ""
 
-#: main.cc:158
+#: main.cc:122
 msgid "add DIR to search path"
 msgstr ""
 
-#: main.cc:159
+#: main.cc:123
 msgid "use FILE as init file"
 msgstr ""
 
-#: main.cc:162
+#: main.cc:126
 msgid "USER, GROUP, JAIL, DIR"
 msgstr ""
 
-#: main.cc:162
+#: main.cc:126
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
 msgstr ""
 
-#: main.cc:167
+#: main.cc:131
 msgid ""
 "print log messages according to LOGLEVEL.  Possible values are:\n"
 "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG."
 msgstr ""
 
-#: main.cc:171
+#: main.cc:135
 msgid "write output to FILE (suffix will be added)"
 msgstr ""
 
-#: main.cc:172
+#: main.cc:136
 msgid "relocate using directory of lilypond program"
 msgstr ""
 
-#: main.cc:173
+#: main.cc:137
 msgid "no progress, only error messages (equivalent to loglevel=ERROR)"
 msgstr ""
 
-#: main.cc:175
+#: main.cc:139
 msgid "be verbose (equivalent to loglevel=DEBUG)"
 msgstr ""
 
 #. Do not update the copyright years here, run `make grand-replace'
-#: main.cc:242
+#: main.cc:206
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -2265,74 +2286,74 @@ msgid ""
 msgstr ""
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:269
+#: main.cc:233
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr ""
 
-#: main.cc:271
+#: main.cc:235
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr ""
 
-#: main.cc:273
+#: main.cc:237
 msgid "LilyPond produces beautiful music notation."
 msgstr ""
 
-#: main.cc:275
+#: main.cc:239
 #, c-format
 msgid "For more information, see %s"
 msgstr ""
 
-#: main.cc:277
+#: main.cc:241
 msgid "Options:"
 msgstr ""
 
-#: main.cc:331
+#: main.cc:295
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr ""
 
-#: main.cc:345
+#: main.cc:309
 #, c-format
 msgid "no such user: %s"
 msgstr ""
 
-#: main.cc:347
+#: main.cc:311
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr ""
 
-#: main.cc:362
+#: main.cc:326
 #, c-format
 msgid "no such group: %s"
 msgstr ""
 
-#: main.cc:364
+#: main.cc:328
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr ""
 
-#: main.cc:372
+#: main.cc:336
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr ""
 
-#: main.cc:379
+#: main.cc:343
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr ""
 
-#: main.cc:385
+#: main.cc:349
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr ""
 
-#: main.cc:391
+#: main.cc:355
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr ""
 
-#: main.cc:639
+#: main.cc:601
 #, c-format
 msgid "exception caught: %s"
 msgstr ""
@@ -2346,37 +2367,37 @@ msgstr ""
 msgid "mark label must be a markup object"
 msgstr ""
 
-#: mensural-ligature-engraver.cc:96
+#: mensural-ligature-engraver.cc:100
 msgid "ligature with less than 2 heads -> skipping"
 msgstr ""
 
-#: mensural-ligature-engraver.cc:123
+#: mensural-ligature-engraver.cc:127
 msgid "cannot determine pitch of ligature primitive -> skipping"
 msgstr ""
 
-#: mensural-ligature-engraver.cc:137
+#: mensural-ligature-engraver.cc:141
 msgid "single note ligature - skipping"
 msgstr ""
 
-#: mensural-ligature-engraver.cc:148
+#: mensural-ligature-engraver.cc:152
 msgid "prime interval within ligature -> skipping"
 msgstr ""
 
-#: mensural-ligature-engraver.cc:159
+#: mensural-ligature-engraver.cc:163
 msgid "mensural ligature: duration none of Mx, L, B, S -> skipping"
 msgstr ""
 
-#: mensural-ligature-engraver.cc:202
+#: mensural-ligature-engraver.cc:206
 msgid "semibrevis must be followed by another one -> skipping"
 msgstr ""
 
-#: mensural-ligature-engraver.cc:212
+#: mensural-ligature-engraver.cc:216
 msgid ""
 "semibreves can only appear at the beginning of a ligature,\n"
 "and there may be only zero or two of them"
 msgstr ""
 
-#: mensural-ligature-engraver.cc:232
+#: mensural-ligature-engraver.cc:236
 msgid ""
 "invalid ligatura ending:\n"
 "when the last note is a descending brevis,\n"
@@ -2384,7 +2405,7 @@ msgid ""
 "or the ligatura must be LB or SSB"
 msgstr ""
 
-#: mensural-ligature-engraver.cc:387
+#: mensural-ligature-engraver.cc:396
 msgid "unexpected case fall-through"
 msgstr ""
 
@@ -2462,11 +2483,11 @@ msgstr ""
 msgid "placing below"
 msgstr ""
 
-#: note-collision.cc:496
+#: note-collision.cc:497
 msgid "ignoring too many clashing note columns"
 msgstr ""
 
-#: note-column.cc:147
+#: note-column.cc:172
 msgid "cannot have note heads and rests together on a stem"
 msgstr ""
 
@@ -2479,37 +2500,37 @@ msgstr ""
 msgid "NoteEvent without pitch"
 msgstr ""
 
-#: open-type-font.cc:44
+#: open-type-font.cc:45
 #, c-format
 msgid "cannot allocate %lu bytes"
 msgstr ""
 
-#: open-type-font.cc:48
+#: open-type-font.cc:49
 #, c-format
 msgid "cannot load font table: %s"
 msgstr ""
 
-#: open-type-font.cc:53
+#: open-type-font.cc:54
 #, c-format
 msgid "FreeType error: %s"
 msgstr ""
 
-#: open-type-font.cc:110
+#: open-type-font.cc:111
 #, c-format
 msgid "unsupported font format: %s"
 msgstr ""
 
-#: open-type-font.cc:112
+#: open-type-font.cc:113
 #, c-format
 msgid "error reading font file %s: %s"
 msgstr ""
 
-#: open-type-font.cc:187
+#: open-type-font.cc:188
 #, c-format
 msgid "FT_Get_Glyph_Name () Freetype error: %s"
 msgstr ""
 
-#: open-type-font.cc:318 pango-font.cc:189
+#: open-type-font.cc:336 pango-font.cc:256
 #, c-format
 msgid "FT_Get_Glyph_Name () error: %s"
 msgstr ""
@@ -2519,37 +2540,37 @@ msgstr ""
 msgid "Finding the ideal number of pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:85
+#: optimal-page-breaking.cc:92
 msgid ""
 "could not satisfy systems-per-page and page-count at the same time, ignoring "
 "systems-per-page"
 msgstr ""
 
-#: optimal-page-breaking.cc:105
+#: optimal-page-breaking.cc:112
 msgid "Fitting music on 1 page..."
 msgstr ""
 
-#: optimal-page-breaking.cc:107
+#: optimal-page-breaking.cc:114
 #, c-format
 msgid "Fitting music on %d pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:109
+#: optimal-page-breaking.cc:116
 #, c-format
 msgid "Fitting music on %d or %d pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:119 optimal-page-breaking.cc:172
+#: optimal-page-breaking.cc:126 optimal-page-breaking.cc:179
 #, c-format
 msgid "trying %d systems"
 msgstr ""
 
-#: optimal-page-breaking.cc:138 optimal-page-breaking.cc:200
+#: optimal-page-breaking.cc:145 optimal-page-breaking.cc:207
 #, c-format
 msgid "best score for this sys-count: %f"
 msgstr ""
 
-#: optimal-page-breaking.cc:207 page-turn-page-breaking.cc:248
+#: optimal-page-breaking.cc:214 page-turn-page-breaking.cc:248
 #: paper-score.cc:162
 msgid "Drawing systems..."
 msgstr ""
@@ -2641,19 +2662,24 @@ msgstr ""
 msgid "\tprevious break: %d"
 msgstr ""
 
-#: pango-font.cc:205
+#: pango-font.cc:245
+#, c-format
+msgid "no glyph for character U+%0X in font `%s'"
+msgstr ""
+
+#: pango-font.cc:272
 #, c-format
 msgid ""
 "Glyph has no name, but font supports glyph naming.\n"
 "Skipping glyph U+%0X, file %s"
 msgstr ""
 
-#: pango-font.cc:242
+#: pango-font.cc:322
 #, c-format
 msgid "no PostScript font name for font `%s'"
 msgstr ""
 
-#: pango-font.cc:291
+#: pango-font.cc:372
 msgid "FreeType face has no PostScript font name"
 msgstr ""
 
@@ -2800,38 +2826,38 @@ msgstr ""
 msgid "Relocation: framework_prefix=%s"
 msgstr ""
 
-#: relocate.cc:186
+#: relocate.cc:172
 #, c-format
 msgid "Relocation: is absolute: argv0=%s\n"
 msgstr ""
 
-#: relocate.cc:192
+#: relocate.cc:178
 #, c-format
-msgid "Relocation: from cwd: argv0=%s\n"
+msgid "Relocation : from cwd: argv0=%s\n"
 msgstr ""
 
-#: relocate.cc:208
+#: relocate.cc:194
 #, c-format
 msgid ""
 "Relocation: from PATH=%s\n"
-"argv0=%s"
+"argv0=%s\n"
 msgstr ""
 
-#: relocate.cc:235
+#: relocate.cc:220
 msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR"
 msgstr ""
 
-#: relocate.cc:360
+#: relocate.cc:345
 #, c-format
 msgid "Relocation file: %s"
 msgstr ""
 
-#: relocate.cc:364 source-file.cc:65
+#: relocate.cc:349 source-file.cc:65
 #, c-format
 msgid "cannot open file: `%s'"
 msgstr ""
 
-#: relocate.cc:394
+#: relocate.cc:379
 #, c-format
 msgid "Unknown relocation command %s"
 msgstr ""
@@ -2884,15 +2910,15 @@ msgid "errors found, ignoring music expression"
 msgstr ""
 
 #. FIXME:
-#: script-engraver.cc:113
+#: script-engraver.cc:115
 msgid "do not know how to interpret articulation:"
 msgstr ""
 
-#: script-engraver.cc:114
+#: script-engraver.cc:116
 msgid " scheme encoding: "
 msgstr ""
 
-#: skyline-pair.cc:131
+#: skyline-pair.cc:160
 msgid "direction must not be CENTER in ly:skyline-pair::skyline"
 msgstr ""
 
@@ -2945,24 +2971,24 @@ msgstr ""
 msgid "weird stem size, check for narrow beams"
 msgstr ""
 
-#: system.cc:200
+#: system.cc:201
 #, c-format
 msgid "Element count %d"
 msgstr ""
 
-#: system.cc:480
+#: system.cc:512
 #, c-format
 msgid "Grob count %d"
 msgstr ""
 
 #. TODO: Also print the arguments of the markup!
-#: text-interface.cc:129
+#: text-interface.cc:131
 #, c-format
 msgid "Cyclic markup detected: %s"
 msgstr ""
 
 #. TODO: Also print the arguments of the markup!
-#: text-interface.cc:142
+#: text-interface.cc:144
 #, c-format
 msgid "Markup depth exceeds maximal value of %d; Markup: %s"
 msgstr ""
@@ -2979,11 +3005,11 @@ msgstr ""
 msgid "unterminated text spanner"
 msgstr ""
 
-#: tie-engraver.cc:117
+#: tie-engraver.cc:116
 msgid "unterminated tie"
 msgstr ""
 
-#: tie-engraver.cc:348
+#: tie-engraver.cc:350
 msgid "lonely tie"
 msgstr ""
 
@@ -2999,7 +3025,7 @@ msgstr ""
 
 #. If there is no such symbol, we default to the numbered style.
 #. (Here really with a warning!)
-#: time-signature.cc:122
+#: time-signature.cc:89
 #, c-format
 msgid "time signature symbol `%s' not found; reverting to numbered style"
 msgstr ""
@@ -3091,142 +3117,181 @@ msgstr ""
 msgid "giving up"
 msgstr ""
 
-#: parser.yy:161 parser.yy:175
+#: parser.yy:174 parser.yy:188 /home/phil/lilypond-git/lily/parser.yy:174
+#: /home/phil/lilypond-git/lily/parser.yy:188
 msgid "Too much lookahead"
 msgstr ""
 
-#: parser.yy:835 parser.yy:1284
+#: parser.yy:466 parser.yy:736 parser.yy:803
+#: /home/phil/lilypond-git/lily/parser.yy:466
+#: /home/phil/lilypond-git/lily/parser.yy:736
+#: /home/phil/lilypond-git/lily/parser.yy:803
+msgid "bad expression type"
+msgstr ""
+
+#: parser.yy:632 parser.yy:1106 /home/phil/lilypond-git/lily/parser.yy:632
+#: /home/phil/lilypond-git/lily/parser.yy:1106
 msgid "not a context mod"
 msgstr ""
 
-#: parser.yy:1027
+#: parser.yy:838 /home/phil/lilypond-git/lily/parser.yy:838
+msgid "score expected"
+msgstr ""
+
+#: parser.yy:854 /home/phil/lilypond-git/lily/parser.yy:854
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr ""
 
-#: parser.yy:1051
+#: parser.yy:878 /home/phil/lilypond-git/lily/parser.yy:878
 msgid "need \\paper for paper block"
 msgstr ""
 
-#: parser.yy:1204
+#: parser.yy:1031 /home/phil/lilypond-git/lily/parser.yy:1031
 msgid "Ignoring non-music expression"
 msgstr ""
 
-#: parser.yy:2044
+#: parser.yy:1042 parser.yy:2352 /home/phil/lilypond-git/lily/parser.yy:1042
+#: /home/phil/lilypond-git/lily/parser.yy:2352
+msgid "music expected"
+msgstr ""
+
+#: parser.yy:1316 /home/phil/lilypond-git/lily/parser.yy:1316
+msgid "not a symbol"
+msgstr ""
+
+#: parser.yy:2049 parser.yy:2162 parser.yy:2175 parser.yy:2184
+#: /home/phil/lilypond-git/lily/parser.yy:2049
+#: /home/phil/lilypond-git/lily/parser.yy:2162
+#: /home/phil/lilypond-git/lily/parser.yy:2175
+#: /home/phil/lilypond-git/lily/parser.yy:2184
+msgid "bad grob property path"
+msgstr ""
+
+#: parser.yy:2142 /home/phil/lilypond-git/lily/parser.yy:2142
 msgid "only \\consists and \\remove take non-string argument."
 msgstr ""
 
-#: parser.yy:2057
-msgid "Grob name should be alphanumeric"
+#: parser.yy:2203 /home/phil/lilypond-git/lily/parser.yy:2203
+msgid "bad context property path"
+msgstr ""
+
+#: parser.yy:2296 parser.yy:2300 parser.yy:2318
+#: /home/phil/lilypond-git/lily/parser.yy:2296
+#: /home/phil/lilypond-git/lily/parser.yy:2300
+#: /home/phil/lilypond-git/lily/parser.yy:2318
+msgid "simple string expected"
 msgstr ""
 
-#: parser.yy:2261
+#: parser.yy:2461 /home/phil/lilypond-git/lily/parser.yy:2461
 msgid "not a rhythmic event"
 msgstr ""
 
-#: parser.yy:2357 parser.yy:2362
+#: parser.yy:2557 parser.yy:2562 /home/phil/lilypond-git/lily/parser.yy:2557
+#: /home/phil/lilypond-git/lily/parser.yy:2562
 msgid "have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:2477
+#: parser.yy:2677 /home/phil/lilypond-git/lily/parser.yy:2677
 msgid "expecting string as script definition"
 msgstr ""
 
-#: parser.yy:2637 parser.yy:2681
+#: parser.yy:2778 /home/phil/lilypond-git/lily/parser.yy:2778
+msgid "not an articulation"
+msgstr ""
+
+#: parser.yy:2850 parser.yy:2896 /home/phil/lilypond-git/lily/parser.yy:2850
+#: /home/phil/lilypond-git/lily/parser.yy:2896
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
-#: parser.yy:2800
+#: parser.yy:2913 /home/phil/lilypond-git/lily/parser.yy:2913
+msgid "bass number expected"
+msgstr ""
+
+#: parser.yy:3027 /home/phil/lilypond-git/lily/parser.yy:3027
 msgid "have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:2855
+#: parser.yy:3086 /home/phil/lilypond-git/lily/parser.yy:3086
 msgid "have to be in Chord mode for chords"
 msgstr ""
 
-#: parser.yy:3115
+#: parser.yy:3321 /home/phil/lilypond-git/lily/parser.yy:3321
 msgid "not a markup"
 msgstr ""
 
-#: lexer.ll:218
+#: lexer.ll:209 /home/phil/lilypond-git/lily/lexer.ll:209
 msgid "stray UTF-8 BOM encountered"
 msgstr ""
 
-#: lexer.ll:221
+#: lexer.ll:212 /home/phil/lilypond-git/lily/lexer.ll:212
 msgid "Skipping UTF-8 BOM"
 msgstr ""
 
-#: lexer.ll:279
+#: lexer.ll:270 /home/phil/lilypond-git/lily/lexer.ll:270
 #, c-format
 msgid "Renaming input to: `%s'"
 msgstr ""
 
-#: lexer.ll:296
+#: lexer.ll:287 /home/phil/lilypond-git/lily/lexer.ll:287
 msgid "quoted string expected after \\version"
 msgstr ""
 
-#: lexer.ll:300
+#: lexer.ll:291 /home/phil/lilypond-git/lily/lexer.ll:291
 msgid "quoted string expected after \\sourcefilename"
 msgstr ""
 
-#: lexer.ll:304
+#: lexer.ll:295 /home/phil/lilypond-git/lily/lexer.ll:295
 msgid "integer expected after \\sourcefileline"
 msgstr ""
 
-#: lexer.ll:327
+#: lexer.ll:319 /home/phil/lilypond-git/lily/lexer.ll:318
 msgid "\\maininput not allowed outside init files"
 msgstr ""
 
-#: lexer.ll:351
+#: lexer.ll:343 /home/phil/lilypond-git/lily/lexer.ll:342
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr ""
 
-#: lexer.ll:377
+#: lexer.ll:369 /home/phil/lilypond-git/lily/lexer.ll:368
 msgid "string expected after \\include"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:387
+#: lexer.ll:379 /home/phil/lilypond-git/lily/lexer.ll:378
 msgid "end quote missing"
 msgstr ""
 
-#: lexer.ll:558
-msgid "Brace found at end of lyric.  Did you forget a space?"
-msgstr ""
-
-#: lexer.ll:672
-msgid "Brace found at end of markup.  Did you forget a space?"
-msgstr ""
-
-#: lexer.ll:684
+#: lexer.ll:691 /home/phil/lilypond-git/lily/lexer.ll:690
 msgid "EOF found inside a comment"
 msgstr ""
 
-#: lexer.ll:782
+#: lexer.ll:791 /home/phil/lilypond-git/lily/lexer.ll:792
 #, c-format
 msgid "invalid character: `%s'"
 msgstr ""
 
-#: lexer.ll:903 lexer.ll:904
+#: lexer.ll:914 /home/phil/lilypond-git/lily/lexer.ll:916
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr ""
 
-#: lexer.ll:1186 lexer.ll:1187
+#: lexer.ll:1197 /home/phil/lilypond-git/lily/lexer.ll:1199
 msgid "non-UTF-8 input"
 msgstr ""
 
-#: lexer.ll:1230 lexer.ll:1231
+#: lexer.ll:1241 /home/phil/lilypond-git/lily/lexer.ll:1243
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr ""
 
-#: lexer.ll:1231 lexer.ll:1232
+#: lexer.ll:1242 /home/phil/lilypond-git/lily/lexer.ll:1244
 msgid "consider updating the input with the convert-ly script"
 msgstr ""
 
-#: lexer.ll:1237 lexer.ll:1238
+#: lexer.ll:1248 /home/phil/lilypond-git/lily/lexer.ll:1250
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr ""
@@ -3263,6 +3328,36 @@ msgstr ""
 msgid "missing stencil expression `~S'"
 msgstr ""
 
+#: bar-line.scm:140
+#, scheme-format
+msgid "Bar glyph ~a not known. Ignoring."
+msgstr ""
+
+#: bar-line.scm:168
+#, scheme-format
+msgid ""
+"Annotation '~a' is allowed in the first argument of a bar line definition "
+"only."
+msgstr ""
+
+#: bar-line.scm:176
+#, scheme-format
+msgid ""
+"Replacement '~a' is allowed in the last argument of a bar line definition "
+"only."
+msgstr ""
+
+#: bar-line.scm:237
+#, scheme-format
+msgid ""
+"add-bar-glyph-print-procedure: glyph '~a' has to be a single ASCII character."
+msgstr ""
+
+#: bar-line.scm:808
+#, scheme-format
+msgid "No span bar glyph defined for bar glyph '~a'; ignoring."
+msgstr ""
+
 #: chord-entry.scm:52
 #, scheme-format
 msgid "Spurious garbage following chord: ~A"
@@ -3274,7 +3369,7 @@ msgstr ""
 msgid "symbol ~S redefined"
 msgstr ""
 
-#: define-event-classes.scm:67
+#: define-event-classes.scm:69
 #, scheme-format
 msgid "unknown parent class `~a'"
 msgstr ""
@@ -3303,35 +3398,35 @@ msgstr ""
 msgid "not a valid duration string: ~a"
 msgstr ""
 
-#: define-music-types.scm:765
+#: define-music-types.scm:770
 #, scheme-format
 msgid "symbol expected: ~S"
 msgstr ""
 
-#: define-music-types.scm:768
+#: define-music-types.scm:773
 #, scheme-format
 msgid "cannot find music object: ~S"
 msgstr ""
 
-#: define-music-types.scm:787
+#: define-music-types.scm:792
 #, scheme-format
 msgid "unknown repeat type `~S'"
 msgstr ""
 
-#: define-music-types.scm:788
+#: define-music-types.scm:793
 msgid "See define-music-types.scm for supported repeats"
 msgstr ""
 
-#: define-note-names.scm:962
+#: define-note-names.scm:971
 msgid "Select note names language."
 msgstr ""
 
-#: define-note-names.scm:968
+#: define-note-names.scm:977
 #, scheme-format
 msgid "Using `~a' note names..."
 msgstr ""
 
-#: define-note-names.scm:971
+#: define-note-names.scm:980
 #, scheme-format
 msgid "Could not find language `~a'.  Ignoring."
 msgstr ""
@@ -3437,84 +3532,88 @@ msgstr ""
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr ""
 
-#: lily-library.scm:299
+#: lily-library.scm:305
 msgid "Music unsuitable for context-mod"
 msgstr ""
 
-#: lily-library.scm:349
+#: lily-library.scm:361
 #, scheme-format
 msgid "Cannot find context-def \\~a"
 msgstr ""
 
-#: lily-library.scm:365
+#: lily-library.scm:377
 msgid "Music unsuitable for output-def"
 msgstr ""
 
-#: lily-library.scm:892
+#: lily-library.scm:904
 msgid ""
 "Find the index between @var{start} and @var{end} (an integer)\n"
 "which produces the closest match to @var{target-val} if\n"
 "applied to function @var{getter}."
 msgstr ""
 
-#: lily-library.scm:966
+#: lily-library.scm:978
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr ""
 
-#: lily-library.scm:991
+#: lily-library.scm:1003
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr ""
 
-#: lily-library.scm:997
+#: lily-library.scm:1009
 msgid "old relative compatibility not used"
 msgstr ""
 
-#: lily.scm:234
+#: lily.scm:63
+msgid "define-session used after session start"
+msgstr ""
+
+#: lily.scm:311
 msgid "Using (ice-9 curried-definitions) module\n"
 msgstr ""
 
-#: lily.scm:237
+#: lily.scm:314
 msgid "Guile 1.8\n"
 msgstr ""
 
-#: lily.scm:297
+#: lily.scm:373
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr ""
 
-#: lily.scm:708
+#: lily.scm:794
 msgid "Success: compilation successfully completed"
 msgstr ""
 
-#: lily.scm:709
+#: lily.scm:795
 msgid "Compilation completed with warnings or errors"
 msgstr ""
 
-#: lily.scm:771
+#: lily.scm:857
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr ""
 
-#: lily.scm:774
+#: lily.scm:860
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
 "~a"
 msgstr ""
 
-#: lily.scm:796 lily.scm:882
+#: lily.scm:882 lily.scm:971
 #, scheme-format
 msgid "failed files: ~S"
 msgstr ""
 
-#: lily.scm:873
+#: lily.scm:962
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr ""
 
-#: lily.scm:892 ps-to-png.scm:66
+#: lily.scm:981 ps-to-png.scm:66
 #, scheme-format
 msgid "Invoking `~a'...\n"
 msgstr ""
@@ -3582,44 +3681,49 @@ msgstr ""
 msgid "invalid tremolo repeat count: ~a"
 msgstr ""
 
-#: music-functions.scm:689
+#: music-functions.scm:459
+#, scheme-format
+msgid "bad grob property path ~a"
+msgstr ""
+
+#: music-functions.scm:765
 msgid "Bad chord repetition"
 msgstr ""
 
-#: music-functions.scm:724
+#: music-functions.scm:800
 #, scheme-format
 msgid "music expected: ~S"
 msgstr ""
 
-#: music-functions.scm:1042
+#: music-functions.scm:1118
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
 msgstr ""
 
-#: music-functions.scm:1180
+#: music-functions.scm:1256
 msgid "Add @var{octave-shift} to the octave of @var{pitch}."
 msgstr ""
 
-#: music-functions.scm:1240
+#: music-functions.scm:1316
 #, scheme-format
 msgid "Unknown octaveness type: ~S "
 msgstr ""
 
-#: music-functions.scm:1241
+#: music-functions.scm:1317
 msgid "Defaulting to 'any-octave."
 msgstr ""
 
-#: music-functions.scm:1578
+#: music-functions.scm:1662
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr ""
 
-#: output-ps.scm:277 output-svg.scm:524
+#: output-ps.scm:278 output-svg.scm:524
 #, scheme-format
 msgid "unknown line-cap-style: ~S"
 msgstr ""
 
-#: output-ps.scm:282 output-svg.scm:530
+#: output-ps.scm:283 output-svg.scm:530
 #, scheme-format
 msgid "unknown line-join-style: ~S"
 msgstr ""
@@ -3647,28 +3751,28 @@ msgstr ""
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr ""
 
-#: paper.scm:315
+#: paper.scm:321
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr ""
 
-#: paper.scm:327
+#: paper.scm:332
 #, scheme-format
 msgid "Unknown paper size: ~a"
 msgstr ""
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:342
+#: paper.scm:347
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr ""
 
-#: parser-clef.scm:143 parser-clef.scm:183
+#: parser-clef.scm:164 parser-clef.scm:215
 #, scheme-format
 msgid "unknown clef type `~a'"
 msgstr ""
 
-#: parser-clef.scm:144 parser-clef.scm:184
+#: parser-clef.scm:165 parser-clef.scm:216
 #, scheme-format
 msgid "supported clefs: ~a"
 msgstr ""
@@ -3692,40 +3796,40 @@ msgstr ""
 msgid "assertion failed: ~S"
 msgstr ""
 
-#: translation-functions.scm:359
+#: translation-functions.scm:377
 #, scheme-format
 msgid "Negative fret for pitch ~a on string ~a"
 msgstr ""
 
-#: translation-functions.scm:362
+#: translation-functions.scm:380
 #, scheme-format
 msgid "Missing fret for pitch ~a on string ~a"
 msgstr ""
 
-#: translation-functions.scm:413
+#: translation-functions.scm:423
 #, scheme-format
 msgid "No open string for pitch ~a"
 msgstr ""
 
-#: translation-functions.scm:428 translation-functions.scm:440
+#: translation-functions.scm:438 translation-functions.scm:450
 #, scheme-format
 msgid "Requested string for pitch requires negative fret: string ~a pitch ~a"
 msgstr ""
 
-#: translation-functions.scm:431
+#: translation-functions.scm:441
 msgid "Ignoring string request and recalculating."
 msgstr ""
 
-#: translation-functions.scm:443
+#: translation-functions.scm:453
 msgid "Ignoring note in tablature."
 msgstr ""
 
-#: translation-functions.scm:466
+#: translation-functions.scm:476
 #, scheme-format
 msgid "No string for pitch ~a (given frets ~a)"
 msgstr ""
 
-#: translation-functions.scm:571
+#: translation-functions.scm:581
 #, scheme-format
 msgid ""
 "No label for fret ~a (on string ~a);\n"
index 665812d00fd79c88ab0d1dc6e5e978ac86afdac4..b8f5edecf57128af65f89e5d455fb7dea901bbd7 100644 (file)
@@ -1,7 +1,5 @@
 depth=../..
 
-EXTRA_DIST_FILES = $(call src-wildcard,*.py)
-
 include $(depth)/make/stepmake.make
 
 default:
index 70afde80dcf8278e901cfda710109ed6d3ffbfa0..538f79a7988d8142241fd8124e79db6c95b4370e 100644 (file)
@@ -6,6 +6,7 @@ add footer, tweak links, add language selection menu.
 """
 import re
 import os
+import sys
 import time
 import operator
 
@@ -26,7 +27,6 @@ non_copied_pages = ['Documentation/out-www/notation-big-page',
                     'out-www/examples',
                     'Documentation/topdocs',
                     'Documentation/bibliography',
-                    'Documentation/out-www/THANKS',
                     'Documentation/out-www/DEDICATION',
                     'input/']
 
@@ -38,19 +38,21 @@ header = r"""
 
 footer = '''
 <div class="footer">
+<!-- This footer was autogenerated by %s -->
 <p class="footer_version">
-%(footer_name_version)s
+%%(footer_name_version)s
 </p>
 <p class="footer_report">
-%(footer_report_links)s
+%%(footer_report_links)s
 </p>
 </div>
-'''
+''' % sys.argv[0]
 
 web_footer = '''
 <div class="footer">
+<!-- This footer was autogenerated by %s -->
 </div>
-'''
+''' % sys.argv[0]
 
 footer_name_version = _doc ('This page is for %(package_name)s-%(package_version)s (%(branch_str)s).')
 # ugh, must not have "_doc" in strings because it is naively replaced with "_" in hacked gettext process
@@ -72,11 +74,12 @@ browser_language_url = "http://www.lilypond.org/website/misc/browser-language"
 
 LANGUAGES_TEMPLATE = '''
 <p id="languages">
- %(language_available)s
+<!-- These links were autogenerated by %s -->
+ %%(language_available)s
  <br>
- %(browser_language)s
+ %%(browser_language)s
 </p>
-'''
+''' % sys.argv[0]
 
 
 html_re = re.compile ('(.*?)(?:[.]([^/.]*))?[.]html$')
index f3a11ccca94fa97d5967fb286de53290ab1e604f..69fdc4fa6867401cdcd40fecbf16b4e6324ed4b7 100644 (file)
@@ -7,11 +7,8 @@ import re
 import os
 import copy
 import shutil
-# TODO: We are using os.popen3, which has been deprecated since python 2.6. The
-# suggested replacement is the Popen function of the subprocess module.
-# Unfortunately, on windows this needs the msvcrt module, which doesn't seem
-# to be available in GUB?!?!?!
-# from subprocess import Popen, PIPE
+import subprocess
+import sys
 
 progress = ly.progress
 warning = ly.warning
@@ -740,10 +737,11 @@ printing diff against existing file." % filename)
 
         debug (_ ("Running through filter `%s'") % cmd, True)
 
-        # TODO: Use Popen once we resolve the problem with msvcrt in Windows:
-        (stdin, stdout, stderr) = os.popen3 (cmd)
-        # p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
-        # (stdin, stdout, stderr) = (p.stdin, p.stdout, p.stderr)
+        closefds = True
+        if (sys.platform == "mingw32"):
+            closefds = False
+        p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=closefds)
+        (stdin, stdout, stderr) = (p.stdin, p.stdout, p.stderr)
         stdin.write (input)
         status = stdin.close ()
 
index 78512310c30c35d6bd9513852423a3f14858fc18..da8b20fc9411c571e0a283305ba3cd2ab6b5ae07 100644 (file)
@@ -3385,6 +3385,101 @@ def conv (str):
 def conv (str):
     return str
 
+@rule ((2, 17, 0), r"blank-*-force -> blank-*-penalty")
+def conv (str):
+    str = re.sub ('blank-page-force', 'blank-page-penalty', str)
+    str = re.sub ('blank-last-page-force', 'blank-last-page-penalty', str)
+    str = re.sub ('blank-after-score-page-force', 'blank-after-score-page-penalty', str)
+    return str
+
+
+@rule ((2, 17, 4), r"\shape Grob #offsets -> \shape #offsets Grob")
+def conv (str):
+    str = re.sub (r"\\shape(\s+(?:[a-zA-Z]+|" + matchstring + "))(" +
+                  matcharg + ")", r"\\shape\2\1", str)
+    return str
+
+barstring=r"(\\bar|whichBar|defaultBarType|segnoType|doubleRepeatType|startRepeatType|endRepeatType|doubleRepeatSegnoType|startRepeatSegnoType|endRepeatSegnoType)(\s*[=]?\s*[#]?)"
+
+@rule ((2, 17, 5), r"New bar line interface")
+def conv(str):
+    str = re.sub (barstring + r'"\|:"', '\\1\\2".|:"', str)
+    str = re.sub (barstring + r'":\|"', '\\1\\2":|."', str)
+    str = re.sub (barstring + r'"\|\|:"', '\\1\\2".|:-||"', str)
+    str = re.sub (barstring + r'":\|:"', '\\1\\2":..:"', str)
+    str = re.sub (barstring + r'"\.\|\."', '\\1\\2".."', str)
+    str = re.sub (barstring + r'"\|S"', '\\1\\2"S-|"', str)
+    str = re.sub (barstring + r'"S\|"', '\\1\\2"S-S"', str)
+    str = re.sub (barstring + r'":\|S"', '\\1\\2":|.S"', str)
+    str = re.sub (barstring + r'":\|S\."', '\\1\\2":|.S-S"', str)
+    str = re.sub (barstring + r'"S\|:"', '\\1\\2"S.|:-S"', str)
+    str = re.sub (barstring + r'"\.S\|:"', '\\1\\2"S.|:"', str)
+    str = re.sub (barstring + r'":\|S\|:"', '\\1\\2":|.S.|:"', str)
+    str = re.sub (barstring + r'":\|S\.\|:"', '\\1\\2":|.S.|:-S"', str)
+    str = re.sub (barstring + r'":"', '\\1\\2";"', str)
+    str = re.sub (barstring + r'"\|s"', '\\1\\2"|-s"', str)
+    str = re.sub (barstring + r'"dashed"', '\\1\\2"!"', str)
+    str = re.sub (barstring + r'"kievan"', '\\1\\2"k"', str)
+    str = re.sub (barstring + r'"empty"', '\\1\\2"-"', str)
+    return str
+
+symbol_list = (r"#'(?:" + wordsyntax + r"|\(\s*(?:" + wordsyntax + r"\s+)*"
+               + wordsyntax + r"\s*\))")
+
+grob_path = r"(?:" + symbol_list + r"\s+)*" + symbol_list
+
+grob_spec = wordsyntax + r"(?:\s*\.\s*" + wordsyntax + r")?"
+
+def path_replace (m):
+    return m.group (1) + string.join (re.findall (wordsyntax, m.group (2)), ".")
+
+@rule ((2, 17, 6), r"""\accidentalStyle #'Context "style" -> \accidentalStyle Context.style
+\alterBroken "Context.grob" -> \alterBroken Context.grob
+\overrideProperty "Context.grob" -> \overrideProperty Context.grob
+\tweak Grob #'symbol -> \tweak Grob.symbol""")
+def conv (str):
+    def patrep (m):
+        def fn_path_replace (m):
+            x = string.join (re.findall (wordsyntax, m.group (2)), ".")
+            if x in ["TimeSignature", "KeySignature", "BarLine",
+                     "Clef", "StaffSymbol", "OttavaBracket",
+                     "LedgerLineSpanner"]:
+                x = "Staff." + x
+            return m.group (1) + x
+        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))
+
+            if not m.group (5):
+                x = r"\single" + x
+        return x
+
+    str = re.sub (r'''(\\accidentalStyle\s+)#?"([-A-Za-z]+)"''',
+                  r"\1\2", str)
+    str = re.sub (r'''(\\accidentalStyle\s+)#'([A-Za-z]+)\s+#?"?([-A-Za-z]+)"?''',
+                  r"\1\2.\3", str)
+    str = re.sub (r'''(\\(?:alterBroken|overrideProperty)\s+)#?"([A-Za-z]+)\s*\.\s*([A-Za-z]+)"''',
+                  r"\1\2.\3", str)
+    str = re.sub (r'''(\\tweak\s+)#?"?([A-Za-z]+)"?\s+?#'([-A-Za-z]+)''',
+                  r"\1\2.\3", str)
+    str = re.sub (r'''(\\tweak\s+)#'([-A-Za-z]+)''',
+                  r"\1\2", str)
+    str = re.sub ("(" + matchmarkup + ")|"
+                  + r"(\\footnote(?:\s*"
+                  + matchmarkup + ")?" + matcharg + ")(" + matcharg
+                  + r")?(\s+" + matchmarkup + r")(\s+\\default)?",
+                  patrep, str)
+    str = re.sub (r'''(\\alterBroken)(\s+[A-Za-z.]+)(''' + matcharg
+                  + matcharg + ")", r"\1\3\2", str)
+    str = re.sub (r"(\\overrideProperty\s+)(" + grob_spec + r"\s+" + grob_path + ")",
+                  path_replace, str)
+    str = re.sub (r"(\\(?:override|revert)\s+)(" + grob_spec + r"\s+" + grob_path + ")",
+                  path_replace, str)
+    return str
 
 # Guidelines to write rules (please keep this at the end of this file)
 #
index afebefb7a807f12aea5b5a7936b97fb35a919721..647061f4c710d46066b9e1aa20134bbd52fef291 100644 (file)
@@ -40,9 +40,14 @@ try:
     import gettext
     t = gettext.translation ('lilypond', localedir)
     _ = t.ugettext
+    ungettext = t.ungettext
 except:
     def _ (s):
         return s
+    def ungettext (s, p, n):
+        if n == 1:
+            return s
+        return p
 underscore = _
 
 # Urg, Python 2.4 does not define stderr/stdout encoding
@@ -330,8 +335,15 @@ class NonDentedHeadingFormatter (optparse.IndentedHelpFormatter):
     def format_description(self, description):
         return description
 
+class NonEmptyOptionParser (optparse.OptionParser):
+    "A subclass of OptionParser that gobbles empty string arguments."
+
+    def parse_args (self, args=None, values=None):
+        options, args = optparse.OptionParser.parse_args (self, args, values)
+        return options, filter (None, args)
+
 def get_option_parser (*args, **kwargs):
-    p = optparse.OptionParser (*args, **kwargs)
+    p = NonEmptyOptionParser (*args, **kwargs)
     p.formatter = NonDentedHeadingFormatter ()
     p.formatter.set_parser (p)
     return p
index 25cf20ea27f13cf8bb9934a3f0417678dc8f9bc7..3cc956ee1c85a2e67c42170f7c6d6abf9d3e0163 100644 (file)
 ;;;; You should have received a copy of the GNU General Public License
 ;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
-;; helper functions
+
+
+;; TODO:
+;; (1) Dashed bar lines may stick out above and below the staff lines
+;;
+;; (2) Dashed and dotted lines look ugly in combination with span bars
+;;
+;; (This was the case in the c++-version of (span) bar stuff)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; helper functions for staff and layout properties
+
+(define (calc-blot thickness extent grob)
+  "Calculate the blot diameter by taking @code{'rounded}
+and the dimensions of the extent into account."
+  (let* ((rounded (ly:grob-property grob 'rounded #f))
+         (blot (if rounded
+                   (let ((blot-diameter (layout-blot-diameter grob))
+                         (height (interval-length extent)))
+
+                        (cond ((< thickness blot-diameter) thickness)
+                              ((< height blot-diameter) height)
+                              (else blot-diameter)))
+                   0)))
+
+        blot))
+
+(define (get-span-glyph bar-glyph)
+  "Get the corresponding span glyph from the @code{span-glyph-bar-alist}.
+Pad the string with @code{annotation-char}s to the length of the
+@var{bar-glyph} string."
+  (let ((span-glyph (assoc-get bar-glyph span-bar-glyph-alist bar-glyph)))
+
+       (if (string? span-glyph)
+           (set! span-glyph (string-pad-right
+                          span-glyph
+                          (string-length bar-glyph)
+                          replacement-char)))
+       span-glyph))
 
 (define (get-staff-symbol grob)
+  "Return the staff symbol corresponding to Grob @var{grob}."
   (if (grob::has-interface grob 'staff-symbol-interface)
       grob
       (ly:grob-object grob 'staff-symbol)))
 
 (define (layout-blot-diameter grob)
+  "Get the blot diameter of the @var{grob}'s corresponding layout."
   (let* ((layout (ly:grob-layout grob))
-         (blot (ly:output-def-lookup layout 'blot-diameter)))
+         (blot-diameter (ly:output-def-lookup layout 'blot-diameter)))
 
-        blot))
+        blot-diameter))
 
 (define (layout-line-thickness grob)
+  "Get the line thickness of the @var{grob}'s corresponding layout."
   (let* ((layout (ly:grob-layout grob))
          (line-thickness (ly:output-def-lookup layout 'line-thickness)))
 
         line-thickness))
 
-(define (staff-symbol-line-count grob)
+(define (staff-symbol-line-count staff)
+  "Get or compute the number of lines of staff @var{staff}."
   (let ((line-count 0))
 
-       (if (ly:grob? grob)
-           (let ((line-pos (ly:grob-property grob 'line-positions '())))
+       (if (ly:grob? staff)
+           (let ((line-pos (ly:grob-property staff 'line-positions '())))
 
                 (set! line-count (if (pair? line-pos)
                                      (length line-pos)
-                                     (ly:grob-property grob 'line-count 0)))))
+                                     (ly:grob-property staff 'line-count 0)))))
 
          line-count))
 
        iv))
 
 (define (staff-symbol-line-positions grob)
+  "Get or compute the @code{'line-positions} list from @var{grob}."
   (let ((line-pos (ly:grob-property grob 'line-positions '())))
 
        (if (not (pair? line-pos))
                                      (iota line-count)))))
        line-pos))
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; internal helper functions
+
+(define annotation-char #\-)
+(define replacement-char #\ )
+
+(define dummy-extent (cons -1 1))
+
+
+(define (glyph->stencil glyph grob extent)
+  "Return a stencil computed by the procedure associated with
+glyph @var{glyph}. The arguments @var{grob} and @var{extent} are
+mandatory to the procedures stored in @code{bar-glyph-print-procedures}."
+  (let ((proc (assoc-get glyph bar-glyph-print-procedures))
+        (stencil empty-stencil))
+
+       (if (procedure? proc)
+           (set! stencil (proc grob extent))
+           (ly:warning (_ "Bar glyph ~a not known. Ignoring.") glyph))
+       stencil))
+
+(define (string->string-list str)
+  "Convert a string into a list of strings with length 1.
+@code{"aBc"} will be converted to @code{("a" "B" "c")}.
+An empty string will be converted to a list containing @code{""}."
+  (if (and (string? str)
+           (not (zero? (string-length str))))
+      (map (lambda (s)
+                   (string s))
+           (string->list str))
+      (list "")))
+
+(define (strip-string-annotation str)
+  "Strip annotations starting with and including the
+annotation char from string @var{str}."
+  (let ((pos (string-index str annotation-char)))
+
+       (if pos
+           (substring str 0 pos)
+           str)))
+
+(define (check-for-annotation str)
+  "Check whether the annotation char is present in string @var{str}."
+  (if (string? str)
+      (if (string-index str annotation-char)
+          (ly:warning
+            (_ "Annotation '~a' is allowed in the first argument of a bar line definition only.")
+            str))))
+
+(define (check-for-replacement str)
+  "Check whether the replacement char is present in string @var{str}."
+  (if (string? str)
+      (if (string-index str replacement-char)
+          (ly:warning
+            (_ "Replacement '~a' is allowed in the last argument of a bar line definition only.")
+            str))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; functions used by external routines
 
 (define-public (span-bar::notify-grobs-of-my-existence grob)
+  "Set the @code{'has-span-bar} property for all elements of Grob @var{grob}."
   (let* ((elts (ly:grob-array->list (ly:grob-object grob 'elements)))
          (sorted-elts (sort elts ly:grob-vertical<?))
          (last-pos (1- (length sorted-elts)))
                       (set! idx (1+ idx)))
              sorted-elts)))
 
-;; How should a bar line behave at a break?
-;; the following alist has the form
-;; ( unbroken-bar-glyph . ( bar-glyph-at-end-of-line . bar-glyph-at-begin-of-line ))
-
-(define bar-glyph-alist
-  '((":|:" . (":|" . "|:"))
-    (":|.|:" . (":|" . "|:"))
-    (":|.:" . (":|" . "|:"))
-    ("||:" . ("||" . "|:"))
-    ("dashed" . ("dashed" . '()))
-    ("|" . ("|" . ()))
-    ("|s" . (() . "|"))
-    ("|:" . ("|" . "|:"))
-    ("|." . ("|." . ()))
-
-    ;; hmm... should we end with a bar line here?
-    (".|" . ("|" . ".|"))
-    (":|" . (":|" . ()))
-    ("||" . ("||" . ()))
-    (".|." . (".|." . ()))
-    ("|.|" . ("|.|" . ()))
-    ("" . ("" . ""))
-    (":" . (":" . ""))
-    ("." . ("." . ()))
-    ("'" . ("'" . ()))
-    ("empty" . (() . ()))
-    ("brace" . (() . "brace"))
-    ("bracket" . (() . "bracket"))
-
-    ;; segno bar lines
-    ("S" . ("||" . "S"))
-    ("|S" . ("|" . "S"))
-    ("S|" . ("S" . ()))
-    (":|S" . (":|" . "S"))
-    (":|S." . (":|S" . ()))
-    ("S|:" . ("S" . "|:"))
-    (".S|:" . ("|" . "S|:"))
-    (":|S|:" . (":|" . "S|:"))
-    (":|S.|:" . (":|S" . "|:"))
-
-    ;; ancient bar lines
-    ("kievan" . ("kievan" . ""))))
-
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Line break decisions.
+
+(define-public (define-bar-line bar-glyph eol-glyph bol-glyph span-glyph)
+  "Define a bar glyph @var{bar-glyph} and its substitute at the end of a line
+(@var{eol-glyph}), at the beginning of a new line (@var{bol-glyph})
+and as a span bar (@var{span-glyph}) respectively."
+  ;; the last argument may not include annotations
+  (check-for-annotation span-glyph)
+  ;; only the last argument may call for replacements
+  (for-each (lambda (s)
+                    (check-for-replacement s))
+            (list bar-glyph eol-glyph bol-glyph))
+  ;; the bar-glyph-alist has entries like
+  ;; (bar-glyph . ( eol-glyph . bol-glyph))
+  (set! bar-glyph-alist
+    (acons bar-glyph (cons eol-glyph bol-glyph) bar-glyph-alist))
+
+  ;; the span-bar-glyph-alist has entries like
+  ;; (bar-glyph . span-glyph)
+  (set! span-bar-glyph-alist
+    (acons bar-glyph span-glyph span-bar-glyph-alist)))
+
+(define-session bar-glyph-alist '())
+
+(define-session span-bar-glyph-alist '())
+
+(define-public (add-bar-glyph-print-procedure glyph proc)
+  "Specify the single glyph @var{glyph} that calls print procedure @var{proc}.
+The procedure @var{proc} has to be defined in the form
+@code{(make-...-bar-line grob extent)} even if the @var{extent}
+is not used within the routine."
+  (if (or (not (string? glyph))
+          (> (string-length glyph) 1))
+      (ly:warning
+        (_ "add-bar-glyph-print-procedure: glyph '~a' has to be a single ASCII character.")
+        glyph)
+      (set! bar-glyph-print-procedures
+        (acons glyph proc bar-glyph-print-procedures))))
+
+(define-session bar-glyph-print-procedures `())
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; drawing functions for various bar line types
+;; to include them and other user-defined functions,
+;; all of them have the form
+;; (make-...-bar-line grob extent)
+;; even if the extent is not used.
 
 (define (make-empty-bar-line grob extent)
+  "Draw an empty bar line."
   (ly:make-stencil "" (cons 0 0) extent))
 
-(define (make-simple-bar-line grob width extent rounded)
-  (let ((blot (if rounded
-                  (layout-blot-diameter grob)
-                  0)))
+(define (make-simple-bar-line grob extent)
+  "Draw a simple bar line."
+  (let* ((line-thickness (layout-line-thickness grob))
+         (thickness (* (ly:grob-property grob 'hair-thickness 1)
+                       line-thickness))
+         (blot (calc-blot thickness extent grob))
+         (extent (bar-line::widen-bar-extent-on-span grob extent)))
+
+        (ly:round-filled-box (cons 0 thickness)
+                             extent
+                             blot)))
 
-        (ly:round-filled-box (cons 0 width)
+(define (make-thick-bar-line grob extent)
+  "Draw a thick bar line."
+  (let* ((line-thickness (layout-line-thickness grob))
+         (thickness (* (ly:grob-property grob 'thick-thickness 1)
+                       line-thickness))
+         (blot (calc-blot thickness extent grob))
+         (extent (bar-line::widen-bar-extent-on-span grob extent)))
+
+        (ly:round-filled-box (cons 0 thickness)
                              extent
                              blot)))
 
-(define (make-tick-bar-line grob height rounded)
-  (let ((half-staff (* 1/2 (ly:staff-symbol-staff-space grob)))
-        (staff-line-thickness (ly:staff-symbol-line-thickness grob))
-        (blot (if rounded
-                  (layout-blot-diameter grob)
-                  0)))
+(define (make-tick-bar-line grob extent)
+  "Draw a tick bar line."
+  (let* ((half-staff (* 1/2 (ly:staff-symbol-staff-space grob)))
+         (staff-line-thickness (ly:staff-symbol-line-thickness grob))
+         (height (interval-end extent))
+         (blot (calc-blot staff-line-thickness extent grob)))
 
-       (ly:round-filled-box (cons 0 staff-line-thickness)
-                            (cons (- height half-staff) (+ height half-staff))
-                            blot)))
+        (ly:round-filled-box (cons 0 staff-line-thickness)
+                             (cons (- height half-staff) (+ height half-staff))
+                             blot)))
 
-(define (make-colon-bar-line grob)
+(define (make-colon-bar-line grob extent)
+  "Draw repeat dots."
   (let* ((staff-space (ly:staff-symbol-staff-space grob))
          (line-thickness (ly:staff-symbol-line-thickness grob))
          (dot (ly:font-get-glyph (ly:grob-default-font grob) "dots.dot"))
                                 (/ staff-space 2)) Y)))
       stencil)))
 
+
 (define (make-dotted-bar-line grob extent)
+  "Draw a dotted bar line."
   (let* ((position (round (* (interval-end extent) 2)))
          (correction (if (even? position) 0.5 0.0))
          (dot (ly:font-get-glyph (ly:grob-default-font grob) "dots.dot"))
 
         (add-stencils! empty-stencil stil-list)))
 
-(define (make-dashed-bar-line grob extent thickness)
+(define (make-dashed-bar-line grob extent)
+  "Draw a dashed bar line."
   (let* ((height (interval-length extent))
          (staff-symbol (get-staff-symbol grob))
          (staff-space (ly:staff-symbol-staff-space grob))
          (line-thickness (layout-line-thickness grob))
+         (thickness (* (ly:grob-property grob 'hair-thickness 1)
+                       line-thickness))
          (dash-size (- 1.0 (ly:grob-property grob 'gap 0.3)))
          (line-count (staff-symbol-line-count staff-symbol)))
 
             stencil)
             (let* ((dashes (/ height staff-space))
                    (total-dash-size (/ height dashes))
-                   (factor (/ (- dash-size thickness) staff-space)))
-
-                  (ly:stencil-translate-axis
-                    (ly:make-stencil (list 'dashed-line
-                                           thickness
-                                           (* factor total-dash-size)
-                                           (* (- 1 factor) total-dash-size)
-                                           0
-                                           height
-                                           (* factor total-dash-size 0.5))
-                                           (cons 0 thickness)
-                                           (cons 0 height))
-                                           (interval-start extent)
-                                           Y)))))
-
-(define (make-segno-bar-line grob glyph extent rounded)
+                   (factor (/ (- dash-size thickness) staff-space))
+                   (stencil (ly:stencil-translate-axis
+                              (ly:make-stencil (list 'dashed-line
+                                                     thickness
+                                                     (* factor total-dash-size)
+                                                     (* (- 1 factor) total-dash-size)
+                                                     0
+                                                     height
+                                                     (* factor total-dash-size 0.5))
+                                               (cons (/ thickness -2) (/ thickness 2))
+                                               (cons 0 height))
+                            (interval-start extent)
+                            Y)))
+
+                 (ly:stencil-translate-axis stencil (/ thickness 2) X)))))
+
+
+(define ((make-segno-bar-line show-segno) grob extent)
+  "Draw a segno bar line. If @var{show-segno} is set to @code{#t},
+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))
-         (kern (* (ly:grob-property grob 'kern 1) line-thickness))
          (thinkern (* (ly:grob-property grob 'thin-kern 1) line-thickness))
-         (hair (* (ly:grob-property grob 'hair-thickness 1) line-thickness))
-         (fatline (* (ly:grob-property grob 'thick-thickness 1) line-thickness))
-         (thin-stil (make-simple-bar-line grob hair extent rounded))
-         (thick-stil (make-simple-bar-line grob fatline extent rounded))
-         (colon-stil (make-colon-bar-line grob))
-         (segno-stil (ly:stencil-add
-                       (ly:stencil-combine-at-edge
-                         (ly:stencil-combine-at-edge
-                           '() X LEFT thin-stil thinkern)
-                         X RIGHT thin-stil thinkern)
-                       (ly:font-get-glyph (ly:grob-default-font grob) "scripts.varsegno")))
-         (glyph (cond
-                  ((string=? glyph "|S") "S")
-                  ((string=? glyph "S|") "S")
-                  (else glyph)))
-         (stencil (cond
-                    ((or (string=? glyph "S|:")
-                         (string=? glyph ".S|:"))
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         (ly:stencil-combine-at-edge
-                           thick-stil X RIGHT thin-stil kern)
-                         X RIGHT colon-stil kern)
-                       X LEFT segno-stil thinkern))
-                    ((or (string=? glyph ":|S")
-                         (string=? glyph ":|S."))
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         (ly:stencil-combine-at-edge
-                           thick-stil X LEFT thin-stil kern)
-                         X LEFT colon-stil kern)
-                       X RIGHT segno-stil thinkern))
-                    ((or (string=? glyph ":|S|:")
-                         (string=? glyph ":|S.|:"))
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         (ly:stencil-combine-at-edge
-                           (ly:stencil-combine-at-edge
-                             (ly:stencil-combine-at-edge
-                               (ly:stencil-combine-at-edge
-                                 thick-stil X LEFT thin-stil kern)
-                               X LEFT colon-stil kern)
-                             X RIGHT segno-stil thinkern)
-                           X RIGHT thick-stil thinkern)
-                         X RIGHT thin-stil kern)
-                       X RIGHT colon-stil kern))
-                    ((string=? glyph "|._.|")
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         (ly:stencil-combine-at-edge
-                           thick-stil X LEFT thin-stil kern)
-                         X RIGHT thick-stil (+ (interval-length
-                                                 (ly:stencil-extent segno-stil X))
-                                               (* 2 thinkern)))
-                       X RIGHT thin-stil kern))
-                    (else segno-stil))))
+         (thin-stil (make-simple-bar-line grob extent))
+         (double-line-stil (ly:stencil-combine-at-edge
+                             thin-stil
+                             X
+                             LEFT
+                             thin-stil
+                             thinkern))
+         (segno (ly:font-get-glyph (ly:grob-default-font grob)
+                                   "scripts.varsegno"))
+         (stencil (ly:stencil-add
+                    (if show-segno
+                        segno
+                        (ly:make-stencil
+                          ""
+                          (ly:stencil-extent segno X)
+                          (cons 0 0)))
+                    (ly:stencil-translate-axis
+                      double-line-stil
+                      (* 1/2 thinkern)
+                      X))))
 
        stencil))
 
-(define (make-kievan-bar-line grob)
+(define (make-kievan-bar-line grob extent)
+  "Draw a kievan bar line."
   (let* ((font (ly:grob-default-font grob))
          (stencil (stencil-whiteout
                     (ly:font-get-glyph font "scripts.barline.kievan"))))
 
-        ;; the kievan bar line has mo staff lines underneath,
-        ;; so we whiteout them and move ithe grob to a higher layer
+        ;; the kievan bar line has no staff lines underneath,
+        ;; so we whiteout them and move the grob to a higher layer
         (ly:grob-set-property! grob 'layer 1)
         stencil))
 
+(define ((make-bracket-bar-line dir) grob extent)
+  "Draw a bracket-style bar line. If @var{dir} is set to @code{LEFT}, the
+opening bracket will be drawn, for @code{RIGHT} we get the closing bracket."
+  (let* ((thick-stil (make-thick-bar-line grob extent))
+         (brackettips-up (ly:font-get-glyph (ly:grob-default-font grob)
+                                            "brackettips.up"))
+         (brackettips-down (ly:font-get-glyph (ly:grob-default-font grob)
+                                              "brackettips.down"))
+         ;; the x-extent of the brackettips must not be taken into account
+         ;; for bar line constructs like "[|:", so we set new bounds:
+         (tip-up-stil (ly:make-stencil (ly:stencil-expr brackettips-up)
+                                       (cons 0 0)
+                                       (ly:stencil-extent brackettips-up Y)))
+         (tip-down-stil (ly:make-stencil (ly:stencil-expr brackettips-down)
+                                       (cons 0 0)
+                                       (ly:stencil-extent brackettips-down Y)))
+         (stencil (ly:stencil-add
+                    thick-stil
+                    (ly:stencil-translate-axis tip-up-stil
+                                               (interval-end extent)
+                                               Y)
+                    (ly:stencil-translate-axis tip-down-stil
+                                               (interval-start extent)
+                                               Y))))
+
+        (if (eq? dir LEFT)
+            stencil
+            (ly:stencil-scale stencil -1 1))))
+
+(define ((make-spacer-bar-line glyph) grob extent)
+  "Draw an invisible bar line which has the same dimensions as the one
+drawn by the procedure associated with glyph @var{glyph}."
+  (let* ((stil (glyph->stencil glyph grob extent))
+         (stil-x-extent (ly:stencil-extent stil X)))
+
+        (ly:make-stencil "" stil-x-extent extent)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; bar line callbacks
 
 (define-public (ly:bar-line::calc-bar-extent grob)
         (staff-extent (cons 0 0)))
 
        (if (ly:grob? staff-symbol)
-           (let* ((bar-line-color (ly:grob-property grob 'color))
-                  (staff-color (ly:grob-property staff-symbol 'color))
-                  (staff-line-thickness (ly:staff-symbol-line-thickness grob))
-                  (staff-space (ly:staff-symbol-staff-space grob)))
-
-                 (set! staff-extent (ly:staff-symbol::height staff-symbol))
-
-                 (if (zero? staff-space)
-                     (set! staff-space 1.0))
-
-                 (if (< (interval-length staff-extent) staff-space)
-                     ;; staff is too small (perhaps consists of a single line);
-                     ;; extend the bar line to make it visible
-                     (set! staff-extent
-                           (interval-widen staff-extent staff-space))
-                     ;; Due to rounding problems, bar lines extending to the outermost edges
-                     ;; of the staff lines appear wrongly in on-screen display
-                     ;; (and, to a lesser extent, in print) - they stick out a pixel.
-                     ;; The solution is to extend bar lines only to the middle
-                     ;; of the staff line - unless they have different colors,
-                     ;; when it would be undesirable.
-                     ;;
-                     ;; This reduction should not influence whether bar is to be
-                     ;; expanded later, so length is not updated on purpose.
-                     (if (eq? bar-line-color staff-color)
-                         (set! staff-extent
-                               (interval-widen staff-extent
-                                               (* -1/2 staff-line-thickness)))))))
+           (let ((bar-line-color (ly:grob-property grob 'color))
+                 (staff-color (ly:grob-property staff-symbol 'color))
+                 (half-staff-line-thickness (/ (ly:staff-symbol-line-thickness grob) 2))
+                 (staff-space (ly:staff-symbol-staff-space grob)))
+
+                (set! staff-extent (ly:staff-symbol::height staff-symbol))
+
+                (if (zero? staff-space)
+                    (set! staff-space 1.0))
+
+                (if (< (interval-length staff-extent) staff-space)
+                    ;; staff is too small (perhaps consists of a single line);
+                    ;; extend the bar line to make it visible
+                    (set! staff-extent
+                          (interval-widen staff-extent staff-space))
+                    ;; Due to rounding problems, bar lines extending to the outermost edges
+                    ;; of the staff lines appear wrongly in on-screen display
+                    ;; (and, to a lesser extent, in print) - they stick out a pixel.
+                    ;; The solution is to extend bar lines only to the middle
+                    ;; of the staff line - unless they have different colors,
+                    ;; when it would be undesirable.
+                    ;;
+                    ;; This reduction should not influence whether the bar is to be
+                    ;; expanded later, so length is not updated on purpose.
+                    (if (eq? bar-line-color staff-color)
+                        (set! staff-extent
+                              (interval-widen staff-extent
+                                              (- half-staff-line-thickness)))))))
        staff-extent))
 
+;; this function may come in handy when defining new bar line glyphs, so
+;; we make it public.
+;; This code should not be included in ly:bar-line::calc-bar-extent, because
+;; this may confuse the drawing functions for dashed and dotted bar lines.
+(define-public (bar-line::widen-bar-extent-on-span grob extent)
+  "Widens the bar line @var{extent} towards span bars adjacent to grob @var{grob}."
+  (let ((staff-symbol (get-staff-symbol grob))
+        (has-span-bar (ly:grob-property grob 'has-span-bar #f)))
+
+       (if (and (ly:grob? staff-symbol)
+                (pair? has-span-bar))
+           (let ((bar-line-color (ly:grob-property grob 'color))
+                 (staff-color (ly:grob-property staff-symbol 'color))
+                 (half-staff-line-thickness (/ (ly:staff-symbol-line-thickness grob) 2)))
+                (if (eq? bar-line-color staff-color)
+                    ;; if the colors are equal, ly:bar-line::calc-bar-extent has
+                    ;; shortened the bar line extent by a half-staff-line-thickness
+                    ;; this is reverted on the interval bounds where span bars appear:
+                    (begin
+                      (and (ly:grob? (car has-span-bar))
+                           (set! extent (cons (- (car extent) half-staff-line-thickness)
+                                              (cdr extent))))
+                      (and (ly:grob? (cdr has-span-bar))
+                           (set! extent (cons (car extent)
+                                              (+ (cdr extent) half-staff-line-thickness))))))))
+   extent))
+
 (define (bar-line::bar-y-extent grob refpoint)
+  "Compute the y-extent of the bar line relative to @var{refpoint}."
   (let* ((extent (ly:grob-property grob 'bar-extent '(0 . 0)))
          (rel-y (ly:grob-relative-coordinate grob refpoint Y))
          (y-extent (coord-translate extent rel-y)))
         y-extent))
 
 (define-public (ly:bar-line::print grob)
-  (let ((glyph (ly:grob-property grob 'glyph-name))
+  "The print routine for bar lines."
+  (let ((glyph-name (ly:grob-property grob 'glyph-name))
         (extent (ly:grob-property grob 'bar-extent '(0 . 0))))
 
-       (if (and (not (eq? glyph '()))
+       (if (and glyph-name
                 (> (interval-length extent) 0))
-           (bar-line::compound-bar-line grob glyph extent #f)
+           (bar-line::compound-bar-line grob glyph-name extent)
            #f)))
 
-(define-public (bar-line::compound-bar-line grob glyph extent rounded)
+(define-public (bar-line::compound-bar-line grob bar-glyph extent)
+  "Build the bar line stencil."
   (let* ((line-thickness (layout-line-thickness grob))
-         (height (interval-length extent))
          (kern (* (ly:grob-property grob 'kern 1) line-thickness))
-         (thinkern (* (ly:grob-property grob 'thin-kern 1) line-thickness))
-         (hair (* (ly:grob-property grob 'hair-thickness 1) line-thickness))
-         (fatline (* (ly:grob-property grob 'thick-thickness 1) line-thickness))
-         (thin-stil (make-simple-bar-line grob hair extent rounded))
-         (thick-stil (make-simple-bar-line grob fatline extent rounded))
-         (colon-stil (make-colon-bar-line grob))
-         (glyph (cond
-                  ((not glyph) "")
-                  ((string=? glyph "||:") "|:")
-                  ;; bar-line::compound-bar-line is called only if
-                  ;; height > 0, but just in case ...
-                  ((and (string=? glyph ":|")
-                        (zero? height)) "|.")
-                  ((and (string=? glyph "|:")
-                        (zero? height)) ".|")
-                  (else glyph)))
-         (stencil (cond
-                    ((string=? glyph "|") thin-stil)
-                    ((string=? glyph ".") thick-stil)
-                    ((string=? glyph "||")
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         '() X LEFT thin-stil thinkern)
-                       X RIGHT thin-stil thinkern))
-                    ((string=? glyph "|.")
-                     (ly:stencil-combine-at-edge
-                       thick-stil X LEFT thin-stil kern))
-                    ((string=? glyph ".|")
-                     (ly:stencil-combine-at-edge
-                       thick-stil X RIGHT thin-stil kern))
-                    ((string=? glyph "|:")
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         thick-stil X RIGHT thin-stil kern)
-                       X RIGHT colon-stil kern))
-                    ((string=? glyph ":|")
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         thick-stil X LEFT thin-stil kern)
-                       X LEFT colon-stil kern))
-                    ((string=? glyph ":|:")
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         (ly:stencil-combine-at-edge
-                           (ly:stencil-combine-at-edge
-                             '() X LEFT thick-stil thinkern)
-                           X LEFT colon-stil kern)
-                         X RIGHT thick-stil kern)
-                       X RIGHT colon-stil kern))
-                    ((string=? glyph ":|.|:")
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         (ly:stencil-combine-at-edge
-                           (ly:stencil-combine-at-edge
-                             thick-stil X LEFT thin-stil kern)
-                           X LEFT colon-stil kern)
-                         X RIGHT thin-stil kern)
-                       X RIGHT colon-stil kern))
-                    ((string=? glyph ":|.:")
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         (ly:stencil-combine-at-edge
-                           thick-stil X LEFT thin-stil kern)
-                         X LEFT colon-stil kern)
-                       X RIGHT colon-stil kern))
-                    ((string=? glyph ".|.")
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         '() X LEFT thick-stil thinkern)
-                       X RIGHT thick-stil kern))
-                    ((string=? glyph "|.|")
-                     (ly:stencil-combine-at-edge
-                       (ly:stencil-combine-at-edge
-                         thick-stil X LEFT thin-stil kern)
-                       X RIGHT thin-stil kern))
-                    ((string=? glyph ":")
-                     (make-dotted-bar-line grob extent))
-                    ((or (string=? glyph "|._.|")
-                         (string-contains glyph "S"))
-                     (make-segno-bar-line grob glyph extent rounded))
-                    ((string=? glyph "'")
-                     (make-tick-bar-line grob (interval-end extent) rounded))
-                    ((string=? glyph "dashed")
-                     (make-dashed-bar-line grob extent hair))
-                    ((string=? glyph "kievan")
-                     (make-kievan-bar-line grob))
-                    (else (make-empty-bar-line grob extent)))))
-         stencil))
+         (bar-glyph-list (string->string-list
+                           (strip-string-annotation bar-glyph)))
+         (span-glyph (get-span-glyph bar-glyph))
+         (span-glyph-list (string->string-list span-glyph))
+         (neg-stencil empty-stencil)
+         (stencil empty-stencil)
+         (is-first-neg-stencil #t)
+         (is-first-stencil #t))
+
+        ;; We build up two separate stencils first:
+        ;; (1) the neg-stencil is built from all glyphs that have
+        ;;     a replacement-char in the span bar
+        ;; (2) the main stencil is built from all remaining glyphs
+        ;;
+        ;; Afterwards the neg-stencil is attached left to the
+        ;; stencil; this ensures that the main stencil starts
+        ;; at x = 0.
+        ;;
+        ;; For both routines holds:
+        ;; we stack the stencils obtained by the corresponding
+        ;; single glyphs with spacing 'kern' except for the
+        ;; first stencil
+        ;; (Thanks to Harm who came up with this idea!)
+        (for-each (lambda (bar span)
+                          (if (and (string=? span (string replacement-char))
+                                   is-first-stencil)
+                              (begin
+                                (set! neg-stencil
+                                      (ly:stencil-combine-at-edge
+                                        neg-stencil
+                                        X
+                                        RIGHT
+                                        (glyph->stencil bar grob extent)
+                                        (if is-first-neg-stencil 0 kern)))
+                                (set! is-first-neg-stencil #f))
+                              (begin
+                                (set! stencil
+                                      (ly:stencil-combine-at-edge
+                                        stencil
+                                        X
+                                        RIGHT
+                                        (glyph->stencil bar grob extent)
+                                        (if is-first-stencil 0 kern)))
+                                (set! is-first-stencil #f))))
+                  bar-glyph-list span-glyph-list)
+        ;; if we have a non-empty neg-stencil,
+        ;; we attach it to the left side of the stencil
+        (and (not is-first-neg-stencil)
+             (set! stencil
+                   (ly:stencil-combine-at-edge
+                     stencil
+                     X
+                     LEFT
+                     neg-stencil
+                     kern)))
+        stencil))
 
 (define-public (ly:bar-line::calc-anchor grob)
-  (let* ((line-thickness (layout-line-thickness grob))
-         (kern (* (ly:grob-property grob 'kern 1) line-thickness))
-         (glyph (ly:grob-property grob 'glyph-name ""))
+  "Calculate the anchor position of a bar line. The anchor is used for
+the correct placement of bar numbers etc."
+  (let* ((bar-glyph (ly:grob-property grob 'glyph-name ""))
+         (bar-glyph-list (string->string-list (strip-string-annotation bar-glyph)))
+         (span-glyph (assoc-get bar-glyph span-bar-glyph-alist bar-glyph))
          (x-extent (ly:grob-extent grob grob X))
-         (dot-width (+ (interval-length
-                         (ly:stencil-extent
-                           (ly:font-get-glyph
-                             (ly:grob-default-font grob)
-                             "dots.dot")
-                           X))
-                       kern))
          (anchor 0.0))
 
-        (if (> (interval-length x-extent) 0)
-            (begin
-              (set! anchor (interval-center x-extent))
-              (cond ((string=? glyph "|:")
-                     (set! anchor (+ anchor (/ dot-width -2.0))))
-                    ((string=? glyph ":|")
-                     (set! anchor (+ anchor (/ dot-width 2.0)))))))
-        anchor))
+        (and (> (interval-length x-extent) 0)
+             (if (or (= (length bar-glyph-list) 1)
+                     (string=? bar-glyph span-glyph)
+                     (string=? span-glyph ""))
+                 ;; We use the x-extent of the stencil if either
+                 ;; - we have a single bar-glyph
+                 ;; - bar-glyph and span-glyph are identical
+                 ;; - we have no span-glyph
+                 (set! anchor (interval-center x-extent))
+                 ;; If the conditions above do not hold,the anchor is the
+                 ;; center of the corresponding span bar stencil extent
+                 (set! anchor (interval-center
+                                (ly:stencil-extent
+                                  (span-bar::compound-bar-line grob bar-glyph dummy-extent)
+                                  X)))))
+         anchor))
 
 (define-public (bar-line::calc-glyph-name grob)
+  "Determine the @code{glyph-name} of the bar line depending on the
+line break status."
   (let* ((glyph (ly:grob-property grob 'glyph))
          (dir (ly:item-break-dir grob))
          (result (assoc-get glyph bar-glyph-alist))
         glyph-name))
 
 (define-public (bar-line::calc-break-visibility grob)
+  "Calculate the visibility of a bar line at line breaks."
   (let* ((glyph (ly:grob-property grob 'glyph))
          (result (assoc-get glyph bar-glyph-alist)))
 
         (vector (string? (car result)) #t (string? (cdr result)))
         all-invisible)))
 
-;; which span bar belongs to a bar line?
-
-(define-public span-bar-glyph-alist
-  '(("|:" . ".|")
-    ("||:" . ".|")
-    (":|" . "|.")
-    (":|.:" . "|.")
-    (":|:" . ".|.")
-    (":|.|:" . "|.|")
-    (":|.|" . "|.")
-    ("S" . "||" )
-    ("S|" . "||")
-    ("|S" . "||")
-    ("S|:" . ".|")
-    (".S|:" . ".|")
-    (":|S" . "|.")
-    (":|S." . "|.")
-    (":|S|:" . "|._.|")
-    (":|S.|:" . "|._.|")
-    ("kievan" . "")
-    ("'" . "")))
-
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; span bar callbacks
 
 (define-public (ly:span-bar::calc-glyph-name grob)
+  "Return the @code{'glyph-name} of the corresponding BarLine grob.
+The corresponding SpanBar glyph is computed within
+@code{span-bar::compound-bar-line}."
   (let* ((elts (ly:grob-object grob 'elements))
          (pos (1- (ly:grob-array-length elts)))
-         (glyph '()))
+         (glyph-name '()))
 
-        (while (and (eq? glyph '())
+        (while (and (eq? glyph-name '())
                     (> pos -1))
-               (begin (set! glyph (ly:grob-property (ly:grob-array-ref elts pos)
-                                                    'glyph-name))
+               (begin (set! glyph-name
+                            (ly:grob-property (ly:grob-array-ref elts pos)
+                                              'glyph-name))
                       (set! pos (1- pos))))
-         (if (eq? glyph '())
+         (if (eq? glyph-name '())
              (begin (ly:grob-suicide! grob)
-                    (set! glyph "")))
-        (assoc-get glyph span-bar-glyph-alist glyph)))
+                    (set! glyph-name "")))
+        glyph-name))
 
 (define-public (ly:span-bar::width grob)
+  "Compute the width of the SpanBar stencil."
   (let ((width (cons 0 0)))
 
        (if (grob::is-live? grob)
-           (let* ((glyph (ly:grob-property grob 'glyph-name))
-                  (stencil (bar-line::compound-bar-line grob glyph (cons -1 1) #f)))
+           (let* ((glyph-name (ly:grob-property grob 'glyph-name))
+                  (stencil (span-bar::compound-bar-line grob
+                                                        glyph-name
+                                                        dummy-extent)))
 
                  (set! width (ly:stencil-extent stencil X))))
        width))
 
 (define-public (ly:span-bar::before-line-breaking grob)
+  "A dummy callback that kills the Grob @var{grob} if it contains
+no elements."
   (let ((elts (ly:grob-object grob 'elements)))
 
        (if (zero? (ly:grob-array-length elts))
            (ly:grob-suicide! grob))))
 
+(define-public (span-bar::compound-bar-line grob bar-glyph extent)
+  "Build the stencil of the span bar."
+  (let* ((line-thickness (layout-line-thickness grob))
+         (kern (* (ly:grob-property grob 'kern 1) line-thickness))
+         (bar-glyph-list (string->string-list
+                           (strip-string-annotation bar-glyph)))
+         (span-glyph (assoc-get bar-glyph span-bar-glyph-alist 'undefined))
+         (stencil empty-stencil))
+
+        (if (string? span-glyph)
+            (let ((span-glyph-list (string->string-list span-glyph))
+                  (is-first-stencil #t))
+
+                 (for-each (lambda (bar span)
+                           ;; the stencil stack routine is similar to the one
+                           ;; used in bar-line::compound-bar-line, but here,
+                           ;; leading replacement-chars are discarded.
+                           (if (not (and (string=? span (string replacement-char))
+                                         is-first-stencil))
+                               (begin
+                                 (set! stencil
+                                       (ly:stencil-combine-at-edge
+                                         stencil
+                                         X
+                                         RIGHT
+                                         ;; if the current glyph is the replacement-char,
+                                         ;; we take the corresponding glyph from the
+                                         ;; bar-glyph-list and insert an empty stencil
+                                         ;; with the appropriate width.
+                                         ;; (this method would fail if the bar-glyph-list
+                                         ;; were shorter than the span-glyph-list,
+                                         ;; but this makes hardly any sense from a
+                                         ;; typographical point of view
+                                         (if (string=? span (string replacement-char))
+                                             ((make-spacer-bar-line bar) grob extent)
+                                             (glyph->stencil span grob extent))
+                                         (if is-first-stencil 0 kern)))
+                                 (set! is-first-stencil #f))))
+                   bar-glyph-list span-glyph-list))
+            ;; if span-glyph is not a string, it may be #f or 'undefined;
+            ;; the latter signals that the span bar for the current bar-glyph
+            ;; is undefined, so we raise a warning.
+            (if (eq? span-glyph 'undefined)
+                (ly:warning
+                  (_ "No span bar glyph defined for bar glyph '~a'; ignoring.")
+                  bar-glyph)))
+        stencil))
+
 ;; The method used in the following routine depends on bar_engraver
 ;; not being removed from staff context.  If bar_engraver is removed,
 ;; the size of the staff lines is evaluated as 0, which results in a
 ;; This routine was originally by Juergen Reuter, but it was a on the
 ;; bulky side. Rewritten by Han-Wen. Ported from c++ to Scheme by Marc Hohl.
 (define-public (ly:span-bar::print grob)
+  "The print routine for span bars."
   (let* ((elts-array (ly:grob-object grob 'elements))
          (refp (ly:grob-common-refpoint-of-array grob elts-array Y))
          (elts (reverse (sort (ly:grob-array->list elts-array)
          ;; Elements must be ordered according to their y coordinates
          ;; relative to their common axis group parent.
          ;; Otherwise, the computation goes mad.
-         (glyph (ly:grob-property grob 'glyph-name))
+         (bar-glyph (ly:grob-property grob 'glyph-name))
          (span-bar empty-stencil))
 
-        (if (string? glyph)
-            (let* ((extents '())
-                   (make-span-bars '())
-                   (model-bar #f))
-
-                  ;; we compute the extents of each system and store them
-                  ;; in a list; dito for the 'allow-span-bar property.
-                  ;; model-bar takes the bar grob, if given.
-                  (map (lambda (bar)
-                       (let* ((ext (bar-line::bar-y-extent bar refp))
-                              (staff-symbol (ly:grob-object bar 'staff-symbol)))
-
-                             (if (ly:grob? staff-symbol)
-                                 (let ((refp-extent (ly:grob-extent staff-symbol refp Y)))
-
-                                      (set! ext (interval-union ext refp-extent))
-
-                                      (if (> (interval-length ext) 0)
+        (if (string? bar-glyph)
+            (let ((extents '())
+                  (make-span-bars '())
+                  (model-bar #f))
+
+                 ;; we compute the extents of each system and store them
+                 ;; in a list; dito for the 'allow-span-bar property.
+                 ;; model-bar takes the bar grob, if given.
+                 (map (lambda (bar)
+                      (let ((ext (bar-line::bar-y-extent bar refp))
+                            (staff-symbol (ly:grob-object bar 'staff-symbol)))
+
+                           (if (ly:grob? staff-symbol)
+                               (let ((refp-extent (ly:grob-extent staff-symbol refp Y)))
+
+                                    (set! ext (interval-union ext refp-extent))
+
+                                    (if (> (interval-length ext) 0)
+                                        (begin
+                                          (set! extents (append extents (list ext)))
+                                          (set! model-bar bar)
+                                          (set! make-span-bars
+                                            (append make-span-bars
+                                                    (list (ly:grob-property
+                                                            bar
+                                                            'allow-span-bar
+                                                            #t))))))))))
+                     elts)
+                 ;; if there is no bar grob, we use the callback argument
+                 (if (not model-bar)
+                     (set! model-bar grob))
+                 ;; we discard the first entry in make-span-bars,
+                 ;; because its corresponding bar line is the
+                 ;; uppermost and therefore not connected to
+                 ;; another bar line
+                 (if (pair? make-span-bars)
+                     (set! make-span-bars (cdr make-span-bars)))
+                 ;; the span bar reaches from the lower end of the upper staff
+                 ;; to the upper end of the lower staff - when allow-span-bar is #t
+                 (reduce (lambda (curr prev)
+                                 (let ((span-extent (cons 0 0))
+                                       (allow-span-bar (car make-span-bars)))
+
+                                      (set! make-span-bars (cdr make-span-bars))
+                                      (if (> (interval-length prev) 0)
                                           (begin
-                                            (set! extents (append extents (list ext)))
-                                            (set! model-bar bar)
-                                            (set! make-span-bars
-                                              (append make-span-bars
-                                                      (list (ly:grob-property bar 'allow-span-bar #t))))))))))
-                       elts)
-                  ;; if there is no bar grob, we use the callback argument
-                  (if (not model-bar)
-                      (set! model-bar grob))
-                  ;; we discard the first entry in make-span-bars, because its corresponding
-                  ;; bar line is the uppermost and therefore not connected to another bar line
-                  (if (pair? make-span-bars)
-                      (set! make-span-bars (cdr make-span-bars)))
-                  ;; the span bar reaches from the lower end of the upper staff
-                  ;; to the upper end of the lower staff - when allow-span-bar is #t
-                  (reduce (lambda (curr prev)
-                                  (let ((l (cons 0 0))
-                                        (allow-span-bar (car make-span-bars)))
-
-                                       (set! make-span-bars (cdr make-span-bars))
-                                       (if (> (interval-length prev) 0)
-                                           (begin
-                                             (set! l (cons (cdr prev) (car curr)))
-                                             (if (or (zero? (interval-length l))
-                                                     (not allow-span-bar))
-                                                 (begin
-                                                   ;; there is overlap between the bar lines
-                                                   ;; or 'allow-span-bar = #f.
-                                                   ;; Do nothing.
-                                                 )
+                                            (set! span-extent (cons (cdr prev)
+                                                                    (car curr)))
+                                            ;; draw the span bar only when the staff lines
+                                            ;; don't overlap and allow-span-bar is #t:
+                                            (and (> (interval-length span-extent) 0)
+                                                 allow-span-bar
                                                  (set! span-bar
-                                                       (ly:stencil-add span-bar
-                                                                       (bar-line::compound-bar-line
-                                                                         model-bar
-                                                                         glyph
-                                                                         l
-                                                                         #f))))))
-                                       curr))
-                          "" extents)
-                  (set! span-bar (ly:stencil-translate-axis
-                                   span-bar
-                                   (- (ly:grob-relative-coordinate grob refp Y))
-                                   Y))))
+                                                       (ly:stencil-add
+                                                         span-bar
+                                                         (span-bar::compound-bar-line
+                                                           model-bar
+                                                           bar-glyph
+                                                           span-extent))))))
+                                      curr))
+                         "" extents)
+                 (set! span-bar (ly:stencil-translate-axis
+                                  span-bar
+                                  (- (ly:grob-relative-coordinate grob refp Y))
+                                  Y))))
         span-bar))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; volta bracket functions
+
+(define-public (allow-volta-hook bar-glyph)
+  "Allow the volta bracket hook being drawn over bar line @var{bar-glyph}."
+  (if (string? bar-glyph)
+      (set! volta-bracket-allow-volta-hook-list
+            (append volta-bracket-allow-volta-hook-list
+                    (list bar-glyph)))
+      (ly:warning (_ ("Volta hook bar line must be a string; ignoring '~a'.")
+                  bar-glyph))))
+
+(define-session volta-bracket-allow-volta-hook-list '())
+
+(define-public (volta-bracket::calc-hook-visibility bar-glyph)
+  "Determine the visibility of the volta bracket hook. It is called in
+@code{lily/volta-bracket.cc} and returns @code{#t} if @emph{no} hook
+should be drawn."
+  (not (member bar-glyph volta-bracket-allow-volta-hook-list)))
+
+(define-public (ly:volta-bracket::calc-shorten-pair grob)
+  "Calculate the @code{shorten-pair} values for an ideal placement
+of the volta brackets relative to the bar lines."
+  (let* ((line-thickness (layout-line-thickness grob))
+         (volta-half-line-thickness (* (ly:grob-property grob 'thickness 1.6)
+                                       line-thickness
+                                       1/2))
+         (bar-array (ly:grob-object grob 'bars))
+         (bar-array-length (ly:grob-array-length bar-array))
+         ;; the bar-array starts with the uppermost bar line grob that is
+         ;; covered by the left edge of the volta bracket; more (span)
+         ;; bar line grobs from other staves may follow
+         (left-bar-line (if (> bar-array-length 0)
+                            (ly:grob-array-ref bar-array 0)
+                            '()))
+         ;; we need the vertical-axis-group-index of the left-bar-line
+         ;; to find the corresponding right-bar-line
+         (vag-index (if (null? left-bar-line)
+                        -1
+                        (ly:grob-get-vertical-axis-group-index left-bar-line)))
+         ;; the bar line corresponding to the right edge of the volta bracket
+         ;; is the last entry with the same vag-index, so we transform the array to a list,
+         ;; reverse it and search for suitable entries:
+         (filtered-grobs (filter (lambda (e)
+                                         (eq? (ly:grob-get-vertical-axis-group-index e)
+                                              vag-index))
+                                 (reverse (ly:grob-array->list bar-array))))
+         ;; we need the first one (if any)
+         (right-bar-line (if (pair? filtered-grobs)
+                             (car filtered-grobs)
+                             '()))
+         ;; the left-bar-line may be a #'<Grob Item >,
+         ;; so we add "" as a fallback return value
+         (left-bar-glyph-name (if (null? left-bar-line)
+                                  (string annotation-char)
+                                  (ly:grob-property left-bar-line 'glyph-name "")))
+         (right-bar-glyph-name (if (null? right-bar-line)
+                                   (string annotation-char)
+                                   (ly:grob-property right-bar-line 'glyph-name "")))
+         (left-bar-broken (or (null? left-bar-line)
+                              (not (zero? (ly:item-break-dir left-bar-line)))))
+         (right-bar-broken (or (null? right-bar-line)
+                               (not (zero? (ly:item-break-dir right-bar-line)))))
+         (left-span-stencil-extent (ly:stencil-extent
+                                     (span-bar::compound-bar-line
+                                       left-bar-line
+                                       left-bar-glyph-name
+                                       dummy-extent)
+                                     X))
+         (right-span-stencil-extent (ly:stencil-extent
+                                      (span-bar::compound-bar-line
+                                        right-bar-line
+                                        right-bar-glyph-name
+                                        dummy-extent)
+                                      X))
+         (left-shorten 0.0)
+         (right-shorten 0.0))
+
+        ;; since "empty" intervals may look like (1.0 . -1.0), we use the
+        ;; min/max functions to make sure that the placement is not corrupted
+        ;; in case of empty bar lines
+        (set! left-shorten
+              (if left-bar-broken
+                  (- (max 0 (interval-end left-span-stencil-extent))
+                     (max 0 (interval-end (ly:stencil-extent
+                                            (bar-line::compound-bar-line
+                                              left-bar-line
+                                              left-bar-glyph-name
+                                              dummy-extent)
+                                            X)))
+                     volta-half-line-thickness)
+                  (- (max 0 (interval-end left-span-stencil-extent))
+                     volta-half-line-thickness)))
+
+        (set! right-shorten
+              (if right-bar-broken
+                  (+ (- (max 0 (interval-end right-span-stencil-extent)))
+                     volta-half-line-thickness)
+                  (- (min 0 (interval-start right-span-stencil-extent))
+                     volta-half-line-thickness)))
+
+  (cons left-shorten right-shorten)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; predefined bar glyph print procedures
+
+(add-bar-glyph-print-procedure "" make-empty-bar-line)
+(add-bar-glyph-print-procedure "|" make-simple-bar-line)
+(add-bar-glyph-print-procedure "." make-thick-bar-line)
+(add-bar-glyph-print-procedure "!" make-dashed-bar-line)
+(add-bar-glyph-print-procedure "'" make-tick-bar-line)
+(add-bar-glyph-print-procedure ":" make-colon-bar-line)
+(add-bar-glyph-print-procedure ";" make-dotted-bar-line)
+(add-bar-glyph-print-procedure "k" make-kievan-bar-line)
+(add-bar-glyph-print-procedure "S" (make-segno-bar-line #t))
+(add-bar-glyph-print-procedure "=" (make-segno-bar-line #f))
+(add-bar-glyph-print-procedure "[" (make-bracket-bar-line LEFT))
+(add-bar-glyph-print-procedure "]" (make-bracket-bar-line RIGHT))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; predefined bar lines
+;;
+;; definition of bar lines goes as follows:
+;;
+;; (define-bar-line "normal bar[-annotation]" "end of line" "start of line" "span bar")
+;;
+;; each entry has to be a string or #f.
+;; The empty string "" is allowed and yields in an invisible bar line,
+;; whereas #f reads 'no stencil'.
+;;
+;; Convention: if two bar lines would be identical in their
+;; unbroken bar glyph, we use annotations to make them distinct;
+;; as a general rule of thumb the main difference in their
+;; behavior at the end of a line is used as annotation, cf.
+;;
+;; (define-bar-line ".|:" "|" ".|:" ".|")
+;; (define-bar-line ".|:-||" "||" ".|:" ".|")
+;;
+;; or
+;;
+;; (define-bar-line "S-|" "|" "S" "=")
+;; (define-bar-line "S-S" "S" "" "=")
+
+;; common bar lines
+(define-bar-line "" "" "" #f)
+(define-bar-line "-" #f #f #f)
+(define-bar-line "|" "|" #f "|")
+(define-bar-line "|-s" #f "|" "|")
+(define-bar-line "." "." #f ".")
+(define-bar-line ".|" "|" ".|" ".|")
+(define-bar-line "|." "|." #f "|.")
+(define-bar-line "||" "||" #f "||")
+(define-bar-line ".." ".." #f "..")
+(define-bar-line "|.|" "|.|" #f "|.|")
+(define-bar-line "!" "!" #f "!")
+(define-bar-line ";" ";" #f ";")
+(define-bar-line "'" "'" #f #f)
+
+;; repeats
+(define-bar-line ":|.:" ":|." ".|:"  " |.")
+(define-bar-line ":..:" ":|." ".|:" " ..")
+(define-bar-line ":|.|:" ":|." ".|:" " |.|")
+(define-bar-line ":.|.:" ":|." ".|:" " .|.")
+(define-bar-line ":|." ":|." #f " |.")
+(define-bar-line ".|:" "|" ".|:" ".|")
+(define-bar-line "[|:" "|" "[|:" " |")
+(define-bar-line ":|]" ":|]" #f " |")
+(define-bar-line ":|][|:" ":|]" "[|:" " |  |")
+(define-bar-line ".|:-||" "||" ".|:" ".|")
+
+;; segno bar lines
+(define-bar-line "S" "||" "S" "=")
+(define-bar-line "S-|" "|" "S" "=")
+(define-bar-line "S-S" "S" #f "=")
+(define-bar-line ":|.S" ":|." "S" " |.")
+(define-bar-line ":|.S-S" ":|.S" "" " |.")
+(define-bar-line "S.|:" "|" "S.|:" " .|")
+(define-bar-line "S.|:-S" "S" ".|:" " .|")
+(define-bar-line ":|.S.|:" ":|." "S.|:" " |. .|")
+(define-bar-line ":|.S.|:-S" ":|.S" ".|:" " |. .|")
+
+;; ancient bar lines
+(define-bar-line "k" "k" #f #f) ;; kievan style
+
+;; volta hook settings
+(allow-volta-hook ":|.")
+(allow-volta-hook ".|:")
+(allow-volta-hook "|.")
+(allow-volta-hook ":..:")
+(allow-volta-hook ":|.|:")
+(allow-volta-hook ":|.:")
+(allow-volta-hook ".|")
+(allow-volta-hook ":|.S")
+(allow-volta-hook ":|.S-S")
+(allow-volta-hook ":|.S.|:")
+(allow-volta-hook ":|.S.|:-S")
+(allow-volta-hook ":|]")
+(allow-volta-hook ":|][|:")
index ded5e9b1209bc0c0be4627db018962d7196eb0f1..8d1df2aed7487b22c742780e4f73c0c12833fbd2 100644 (file)
 (define-public (boolean-or-symbol? x)
   (or (boolean? x) (symbol? x)))
 
+(define-public (symbol-list? x)
+  (and (list? x) (every symbol? x)))
+
+(define-public (symbol-list-or-music? x)
+  (if (list? x)
+      (every symbol? x)
+      (ly:music? x)))
+
 (define-public (string-or-symbol? x)
   (or (string? x) (symbol? x)))
 
 (define-public (string-or-pair? x)
   (or (string? x) (pair? x)))
 
+(define-public (string-or-music? x)
+  (or (string? x) (ly:music? x)))
+
 (define-public (number-or-pair? x)
   (or (number? x) (pair? x)))
 
 (define-public (cheap-list? x)
   (or (pair? x) (null? x)))
 
-(define-public (list-or-symbol? x)
-  (or (cheap-list? x) (symbol? x)))
+(define-public (symbol-list-or-symbol? x)
+  (if (list? x)
+      (every symbol? x)
+      (symbol? x)))
 
 (define-public (scheme? x) #t)
 
index 3585a12bc3805b4c1cfd9e8a1d4cbd96cc2c7658..890cb657e3d263af8042a3e10e64e5e3d376919b 100644 (file)
 ;;
 ;;
 ;;     (define-public (make-rhythmic-location bar-num num den)
-;:     (define-public (rhythmic-location? a)
+;;     (define-public (rhythmic-location? a)
 ;;     (define-public (make-graceless-rhythmic-location loc)
 ;;     (define-public rhythmic-location-measure-position cdr)
 ;;     (define-public rhythmic-location-bar-number car)
 ;;     (define-public (rhythmic-location<? a b)
-;:     (define-public (rhythmic-location<=? a b)
-;:     (define-public (rhythmic-location>=? a b)
+;;     (define-public (rhythmic-location<=? a b)
+;;     (define-public (rhythmic-location>=? a b)
 ;;     (define-public (rhythmic-location>? a b)
-;:     (define-public (rhythmic-location=? a b)
+;;     (define-public (rhythmic-location=? a b)
 ;;     (define-public (rhythmic-location->file-string a)
 ;;     (define-public (rhythmic-location->string a)
 
 ;;
 ;; the total of this will be
 ;; O(#systems * #regions)
-;; 
+;;
 ;; we can actually do better by sorting the regions as well,
 ;; but let's leave that for future extensions.
 ;;
 (define-public (system-clipped-x-extent system-grob clip-region)
   "Return the X-extent of @var{system-grob} when clipped with
 @var{clip-region}.  Return @code{#f} if not appropriate."
-  
+
   (let*
       ((region-start (car clip-region))
        (columns (ly:grob-object system-grob 'columns))
        (region-end (cdr clip-region))
        (found-grace-end  #f)
-       (candidate-columns 
+       (candidate-columns
        (filter
         (lambda (j)
           (let*
@@ -66,7 +66,7 @@
                (loc (ly:grob-property column 'rhythmic-location))
                (grace-less (make-graceless-rhythmic-location loc))
                )
-               
+
             (and (rhythmic-location? loc)
                  (rhythmic-location<=? region-start loc)
                  (or (rhythmic-location<? grace-less region-end)
@@ -76,9 +76,9 @@
                           )))
 
             ))
-        
+
         (iota (ly:grob-array-length columns))))
-       
+
        (column-range
        (if (>= 1 (length candidate-columns))
            #f
                   system-grob
                   (ly:grob-array-ref columns (car column-range)))
               system-grob X))
-            
+
             (interval-end
              (ly:grob-robust-relative-extent
              (if (= (1- (ly:grob-array-length columns)) (cdr column-range))
                  system-grob
                  (ly:grob-array-ref columns (cdr column-range)))
              system-grob X)))
-           
-           
+
+
            #f
            )))
-    
+
     clipped-x-interval))
index 16a1b21b1ead90d461c8671c8ee9716d47819b71..1aaf582cd724d352a87a6e8ace5210bec26992b3 100644 (file)
@@ -171,6 +171,11 @@ object to a text markup.  Used for chords.")
      (clefGlyph ,string? "Name of the symbol within the music font.")
      (clefOctavation ,integer? "Add this much extra octavation.
 Values of 7 and -7 are common.")
+     (clefOctavationFormatter ,procedure? "A procedure that takes the
+Octavation number as a string and the style as a symbol and returns a markup.")
+     (clefOctavationStyle ,symbol? "Determines the way the octavateEight
+grob is displayed.  Possible values are @samp{default}, @samp{parenthesized}
+and @samp{bracketed}.")
      (clefPosition ,number? "Where should the center of the clef
 symbol go, measured in half staff spaces from the center of the
 staff.")
@@ -192,6 +197,11 @@ crescendo, i.e., @samp{cresc.}.")
      (cueClefGlyph ,string? "Name of the symbol within the music font.")
      (cueClefOctavation ,integer? "Add this much extra octavation.
 Values of 7 and -7 are common.")
+     (cueClefOctavationFormatter ,procedure? "A procedure that takes the
+Octavation number as a string and the style as a symbol and returns a markup.")
+     (cueClefOctavationStyle ,symbol? "Determines the way the octavateEight
+grob is displayed.  Possible values are @samp{default}, @samp{parenthesized}
+and @samp{bracketed}.")
      (cueClefPosition ,number? "Where should the center of the clef
 symbol go, measured in half staff spaces from the center of the
 staff.")
@@ -213,7 +223,7 @@ This variable is read by @rinternals{Timing_translator} at
 frets for tablatures and fretboards if no strings are provided in
 the notes for the current moment.")
      (doubleRepeatSegnoType ,string? "Set the default bar line for
-the combinations double repeat with segno. Default is @samp{:|S|:}.")
+the combinations double repeat with segno. Default is @samp{:|.S.|:}.")
      (doubleRepeatType ,string? "Set the default bar line for double
 repeats.")
      (doubleSlurs ,boolean? "If set, two slurs are created for every
@@ -231,7 +241,7 @@ the symbol @samp{hihat}) as keys, and a list
 values.")
 
      (endRepeatSegnoType ,string? "Set the default bar line for the
-combinations ending of repeat with segno. Default is @samp{:|S}.")
+combinations ending of repeat with segno. Default is @samp{:|.S}.")
      (endRepeatType ,string? "Set the default bar line for the ending
 of repeats.")
      (explicitClefVisibility ,vector? "@samp{break-visibility}
@@ -485,7 +495,7 @@ part-combining.")
      (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
-combinations beginning of repeat with segno. Default is @samp{.S|:}.")
+combinations beginning of repeat with segno. Default is @samp{S.|:}.")
      (startRepeatType ,string? "Set the default bar line for the beginning
 of repeats.")
      (stemLeftBeamCount ,integer? "Specify the number of beams to draw
@@ -576,12 +586,12 @@ of bar line to create.
 Example:
 
 @example
-\\set Staff.whichBar = \"|:\"
+\\set Staff.whichBar = \".|:\"
 @end example
 
 @noindent
 This will create a start-repeat bar in this staff only.  Valid values
-are described in @rinternals{bar-line-interface}.")
+are described in @file{scm/bar-line.scm}.")
      )))
 
 
index 2beabeeff7e6756e1e1f2874d7b12ed069397dfb..09dfbf79a34b39898a30e7b413166aea0f15d078 100644 (file)
     (break-event . (line-break-event page-break-event page-turn-event))
     (dynamic-event . (absolute-dynamic-event))
     (span-event . (span-dynamic-event beam-event episema-event ligature-event
-                        pedal-event phrasing-slur-event slur-event staff-span-event
-                        text-span-event trill-span-event tremolo-span-event
-                        tuplet-span-event))
+                                      measure-counter-event pedal-event
+                                      phrasing-slur-event slur-event
+                                      staff-span-event text-span-event
+                                      trill-span-event tremolo-span-event
+                                      tuplet-span-event))
     (span-dynamic-event . (decrescendo-event crescendo-event))
     (break-span-event . (break-dynamic-span-event))
     (pedal-event . (sostenuto-event sustain-event una-corda-event))
index 8d9c457037538c4bddd95e8d44ecaad4ee1c6105..6068579995115078b81526a2793326f97c285de3 100644 (file)
@@ -41,44 +41,13 @@ note)."
  "Print a special bar symbol.  It replaces the regular bar
 symbol with a special symbol.  The argument @var{bartype}
 is a string which specifies the kind of bar line to print.
-Options are @code{|}, @code{:|}, @code{|:}, @code{:|:}, @code{:|.|:},
-@code{:|.:}, @code{.}, @code{||}, @code{|.}, @code{.|}, @code{.|.},
-@code{|.|}, @code{:}, @code{dashed}, @code{'} and @code{S}.
-
-These produce, respectively, a normal bar line, a right repeat, a left repeat,
-a thick double repeat, a thin-thick-thin double repeat,
-a thin-thick double repeat, a thick bar, a double bar, a start bar,
-an end bar, a thick double bar, a thin-thick-thin bar,
-a dotted bar, a dashed bar, a tick as bar line and a segno bar.
-
-In addition, there is an option
-@code{||:} which is equivalent to @code{|:} except at line
-breaks, where it produces a double bar (@code{||}) at the
-end of the line and a repeat sign (@code{|:}) at the
-beginning of the new line.
-
-For segno, @code{S} produces a segno sign except at line breaks,
-where it produces a double bar (@code{||}) at the
-end of the line and a segno sign at the beginning of the new line.
-@code{|S} is equivalent to @code{S} but produces a simple bar line
-(@code{|}) instead of a double bar line (@code{||}) at line breaks.
-@code{S|} produces the segno sign at line breaks and starts the following
-line without special bar lines.
-
-@code{S|:} and @code{:|S} are used for repeat/segno combinations that are
-separated at line breaks.  Alternatively, @code{.S|:} and @code{:|S.}
-may be used which combine repeat signs and segno at the same line in
-case of a line break.  @code{:|S|:} is a combination of a left repeat
-(@code{:|}), a segno (@code{S}) and a right repeat @code{|:} which
-splits before the segno at line breaks; @code{:|S.|:} splits after
-the segno sign.
-
-If @var{bartype} is set to @code{empty} then nothing is
-printed, but a line break is allowed at that spot.
+
+The list of allowed glyphs and predefined bar lines can be
+found in @file{scm/bar-line.scm}.
 
 @code{gap} is used for the gaps in dashed bar lines."
  '(allow-span-bar bar-extent gap glyph glyph-name has-span-bar
-   hair-thickness kern thin-kern thick-thickness))
+   hair-thickness kern rounded thin-kern thick-thickness))
 
 (ly:add-interface
  'bass-figure-interface
@@ -200,6 +169,11 @@ accidentals)."
  "A rehearsal mark."
  '())
 
+(ly:add-interface
+ 'measure-counter-interface
+ "A counter for numbering measures."
+ '(columns count-from))
+
 (ly:add-interface
  'metronome-mark-interface
  "A metronome mark."
@@ -215,6 +189,14 @@ accidentals)."
  "Note names."
  '())
 
+(ly:add-interface
+ 'octavate-eight-interface
+  "Interface that permits the nominal identification of the octavian
+annotation that multiplies by two the freqency of the pitches present
+in a given staff were they played on a clef that lacked said octavian
+annotation."
+  '())
+
 (ly:add-interface
  'only-prebreak-interface
  "Kill this grob after the line breaking process."
index 6502dd9d722a4b94d3f5641101e925a86b3d4b17..0b5585a71aea6d3dcf51178fa80e21ccda500d72 100644 (file)
@@ -108,6 +108,7 @@ default length of the beamlet to the right.  The actual length of a
 beamlet is determined by taking either the default length or the
 length specified by @code{beamlet-max-length-proportion}, whichever is
 smaller.")
+     (beam-gap ,number-pair? "Size of a gap in a @code{Beam}.")
      (beamlet-max-length-proportion ,pair? "The maximum length of a
 beamlet, as a proportion of the distance between two adjacent stems.")
      (before-line-breaking ,boolean? "Dummy property, used to trigger
@@ -200,6 +201,9 @@ this grob looks as a continued break.")
      (control-points ,list? "List of offsets (number pairs) that form
 control points for the tie, slur, or bracket shape.  For B@'eziers,
 this should list the control points of a third-order B@'ezier curve.")
+     (count-from ,integer? "The first measure in a measure count
+receives this number.  The following measures are numbered in
+increments from this initial value.")
 
 ;;
 ;; d
@@ -276,16 +280,20 @@ problem, we pad each item by this amount (by adding the @q{car} on the
 left side of the item and adding the @q{cdr} on the right side of the
 item).  In order to make a grob take up no horizontal space at all,
 set this to @code{(+inf.0 . -inf.0)}.")
-     (extra-X-extent ,number-pair? "A grob is enlarged in
-X@tie{}dimension by this much.")
-     (extra-Y-extent ,number-pair? "A grob is enlarged in
-Y@tie{}dimension by this much.")
 
 
 ;;
 ;; f
 ;;
      (flag-count ,number? "The number of tremolo beams.")
+     (flat-positions ,list? "Flats in key signatures are placed
+within the specified ranges of staff-positions.  The general form
+is a list of pairs, with one pair for each type of clef, in order
+of the staff-position at which each clef places C:
+@code{(alto treble tenor soprano baritone mezzosoprano bass)}.
+If the list contains a single element it applies for all clefs.
+A single number in place of a pair sets accidentals within the octave
+ending at that staff-position.")
      (font-encoding ,symbol? "The font encoding is the broadest
 category for selecting a font.  Currently, only lilypond's system
 fonts (Emmentaler) are using this property.  Available
@@ -424,8 +432,15 @@ read from the NonMusicalPaperColumn that begins the measure.")
 by glissandi?")
      (glyph ,string? "A string determining what @q{style} of glyph is
 typeset.  Valid choices depend on the function that is reading this
-property.")
-     (glyph-name ,string? "The glyph name within the font.")
+property.
+
+In combination with (span) bar lines, it is a string resembling the
+bar line appearance in ASCII form.")
+     (glyph-name ,string? "The glyph name within the font.
+
+In the context of (span) bar lines, @var{glyph-name} represents
+a processed form of @code{glyph}, where decisions about line breaking
+etc. are already taken.")
      (glyph-name-alist ,list? "An alist of key-string pairs.")
      (graphical ,boolean? "Display in graphical (vs. text) form.")
      (grow-direction ,ly:dir? "Crescendo or decrescendo?")
@@ -660,6 +675,24 @@ is raised so that it is not so close to its neighbor.")
      (outside-staff-padding ,number? "The padding to place between
 this grob and the staff when spacing according to
 @code{outside-staff-priority}.")
+     (outside-staff-placement-directive ,symbol? "One of four directives
+telling how outside staff objects should be placed.
+@itemize @bullet
+@item
+@code{left-to-right-greedy} -- Place each successive grob from left to
+right.
+@item
+@code{left-to-right-polite} -- Place a grob from left to right only if
+it does not potentially overlap with another grob that has been placed
+on a pass through a grob array. If there is overlap, do another pass to
+determine placement.
+@item
+@code{right-to-left-greedy} -- Same as @code{left-to-right-greedy}, but
+from right to left.
+@item
+@code{right-to-left-polite} -- Same as @code{left-to-right-polite}, but
+from right to left.
+@end itemize")
      (outside-staff-priority ,number? "If set, the grob is positioned
 outside the staff in such a way as to avoid all collisions.  In case
 of a potential collision, the grob with the smaller
@@ -722,6 +755,7 @@ of an object (e.g., between note and its accidentals).")
      (rotation ,list? "Number of degrees to rotate this object, and
 what point to rotate around.  For example, @code{'(45 0 0)} rotates
 by 45 degrees around the center of this object.")
+     (rounded ,boolean? "Decide whether lines should be drawn rounded or not.")
      (round-up-to-longer-rest ,boolean? "Displays the longer multi-measure
 rest when the length of a measure is between two values of
 @code{usable-duration-logs}.  For example, displays a breve instead of a whole
@@ -735,14 +769,24 @@ in a 3/2 measure.")
 for stems that are placed in tight configurations.  This amount is
 used for stems with the same direction to compensate for note head to
 stem distance.")
-     (script-priority ,number? "A sorting key that determines in what
-order a script is within a stack of scripts.")
+     (script-priority ,number? "A key for determining the order of
+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.")
      (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
 values may also be specified.")
      (self-alignment-Y ,number? "Like @code{self-alignment-X} but for
 the Y@tie{}axis.")
+     (sharp-positions ,list? "Sharps in key signatures are placed
+within the specified ranges of staff-positions.  The general form
+is a list of pairs, with one pair for each type of clef, in order
+of the staff-position at which each clef places C:
+@code{(alto treble tenor soprano baritone mezzosoprano bass)}.
+If the list contains a single element it applies for all clefs.
+A single number in place of a pair sets accidentals within the octave
+ending at that staff-position.")
      (shorten-pair ,number-pair? "The lengths to shorten a
 text-spanner on both sides, for example a pedal bracket.  Positive
 values shorten the text-spanner, while negative values lengthen it.")
@@ -943,7 +987,6 @@ positioning?")
      (vertical-skylines ,ly:skyline-pair? "Two skylines, one above and
 one below this grob.")
 
-
 ;;
 ;; w
 ;;
@@ -1053,8 +1096,6 @@ in addition to notes and stems.")
 a whole system.")
      (footnotes-after-line-breaking ,ly:grob-array? "Footnote grobs of
 a broken system.")
-     (full-score-pure-minimum-translations ,list? "A list of translations
-for a full score's worth of grobs.")
 
      (glissando-index ,integer? "The index of a glissando in its note
 column.")
@@ -1079,6 +1120,8 @@ empty in a particular staff, then that staff is erased.")
 for this column.")
 
      (melody-spanner ,ly:grob? "The @code{MelodyItem} object for a stem.")
+     (minimum-translations-alist ,list? "An list of translations for a given
+start and end point.")
 
      (neighbors ,ly:grob-array? "The X-axis neighbors of a grob. Used by the
 pure-from-neighbor-interface to determine various grob heights.")
@@ -1108,8 +1151,6 @@ relevant for finding the @code{pure-Y-extent}.")
 
      (side-support-elements ,ly:grob-array? "The side support, an array of
 grobs.")
-     (skyline-quantizing ,index? "The number of boxes to break a
-slur into when calculating its skyline.")
      (slur ,ly:grob? "A pointer to a @code{Slur} object.")
      (spacing ,ly:grob? "The spacing spanner governing this section.")
      (spacing-wishes ,ly:grob-array? "An array of note spacing or staff spacing
@@ -1134,6 +1175,11 @@ results, use @code{LEFT} and @code{RIGHT}.")
      (tuplet-number ,ly:grob? "The number for a bracket.")
      (tuplet-start ,boolean? "Is stem at the start of a tuplet?")
      (tuplets ,ly:grob-array? "An array of smaller tuplet brackets.")
+
+     (vertical-alignment ,ly:grob? "The VerticalAlignment in a System.")
+     (vertical-skyline-elements ,ly:grob-array? "An array of grobs
+used to create vertical skylines.")
+
      (X-colliding-grobs ,ly:grob-array? "Grobs that can collide
 with a self-aligned grob on the X-axis.")
      (Y-colliding-grobs ,ly:grob-array? "Grobs that can collide
index 76f578ab4a2a1f0e106da4931fad1540238d8a04..85b4e788677eac303df489ead6f96380e5081e56 100644 (file)
      . (
        (alteration . ,accidental-interface::calc-alteration)
        (avoid-slur . inside)
+       (glyph-name . ,accidental-interface::glyph-name)
        (glyph-name-alist . ,standard-alteration-glyph-name-alist)
        (stencil . ,ly:accidental-interface::print)
+       (horizontal-skylines . ,ly:accidental-interface::horizontal-skylines)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-extent . ,ly:accidental-interface::width)
        (Y-extent . ,ly:accidental-interface::height)
        (meta . ((class . Item)
 
        (layer . 0)
        (non-musical . #t)
+       (rounded . #f)
        (space-alist . (
                        (time-signature . (extra-space . 0.75))
                        (custos . (minimum-space . 2.0))
        (stacking-dir . ,DOWN)
        (Y-extent . ,ly:axis-group-interface::height)
        (meta . ((class . Spanner)
-                (object-callbacks . ((full-score-pure-minimum-translations . ,ly:align-interface::full-score-pure-minimum-translations)
-                                     (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
+                (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
                                      (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
                 (interfaces . (align-interface
                                axis-group-interface
                                 inline-accidental-interface
                                 key-signature-interface
                                 note-head-interface
+                                octavate-eight-interface
                                 stem-interface
                                 time-signature-interface))
        (cross-staff . ,ly:beam::calc-cross-staff)
        ;; only for debugging.
        (font-family . roman)
 
-       (gap . 0.8)
+       (beam-gap . ,ly:beam::calc-beam-gap)
+       (minimum-length . ,ly:beam::calc-minimum-length)
        (neutral-direction . ,DOWN)
        (positions . ,beam::place-broken-parts-individually)
+       (springs-and-rods . ,ly:beam::calc-springs-and-rods)
        (X-positions . ,ly:beam::calc-x-positions)
 
        ;; this is a hack to set stem lengths, if positions is set.
        (quantized-positions . ,ly:beam::set-stem-lengths)
 
        (shorten . ,ly:beam::calc-stem-shorten)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (stencil . ,ly:beam::print)
 
        (meta . ((class . Spanner)
                        (next-note . (extra-space . 1.0))
                        (right-edge . (extra-space . 0.5))))
        (stencil . ,ly:clef::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (Y-offset . ,ly:staff-symbol-referencer::callback)
        (meta . ((class . Item)
                  (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
        (side-axis . ,Y)
        (slur-padding . 0.3)
        (staff-padding . 0.1)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-element-stencils)
+       (use-skylines . #t)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (font-encoding . fetaText)
        (font-series . bold)
        (font-shape . italic)
-       (outside-staff-priority . 250)
        (positioning-done . ,ly:script-interface::calc-positioning-done)
        (right-padding . 0.5)
        (self-alignment-X . ,CENTER)
        (self-alignment-Y . ,CENTER)
        (stencil . ,ly:text-interface::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
        (Y-offset . ,ly:self-alignment-interface::y-aligned-on-self)
        (meta . ((class . Item)
        (springs-and-rods . ,ly:spanner::set-spacing-rods)
        (stencil . ,ly:line-spanner::print)
        (style . dashed-line)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (meta . ((class . Spanner)
                 (interfaces . (dynamic-interface
                                dynamic-text-spanner-interface
                                text-interface
                                text-script-interface))))))
 
+    (FingeringColumn
+     . (
+       (padding . 0.2)
+       (positioning-done . ,ly:fingering-column::calc-positioning-done)
+       (meta . ((class . Item)
+                (interfaces . (fingering-column-interface))))))
+
     (Flag
      . (
+       (glyph-name . ,ly:flag::glyph-name)
        (stencil . ,ly:flag::print)
        (X-extent . ,ly:flag::width)
        (X-offset . ,ly:flag::calc-x-offset)
        (Y-offset . ,ly:flag::calc-y-offset)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (meta . ((class . Item)
                 (interfaces . (flag-interface
                                 font-interface))))))
        (simple-Y . #t)
        (stencil . ,ly:line-spanner::print)
        (style . line)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-extent . #f)
        (Y-extent . #f)
        (zigzag-width . 0.75)
        (stencil . ,ly:hairpin::print)
        (thickness . 1.0)
        (to-barline . #t)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (Y-offset . ,ly:self-alignment-interface::y-aligned-on-self)
        (meta . ((class . Spanner)
                 (interfaces . (dynamic-interface
        (break-visibility . ,begin-of-line-invisible)
        (glyph-name-alist . ,cancellation-glyph-name-alist)
        (non-musical . #t)
+       (flat-positions . (2 3 4 2 1 2 1))
+       (sharp-positions . (4 5 4 2 3 2 3))
        (space-alist . (
                        (time-signature . (extra-space . 1.25))
                        (staff-bar . (extra-space . 0.6))
                        (right-edge . (extra-space . 0.5))
                        (first-note . (fixed-space . 2.5))))
        (stencil . ,ly:key-signature-interface::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (extra-spacing-width . (0.0 . 1.0))
        (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-including-staff)
        (Y-offset . ,ly:staff-symbol-referencer::callback)
        (break-visibility . ,begin-of-line-visible)
        (glyph-name-alist . ,standard-alteration-glyph-name-alist)
        (non-musical . #t)
+       (flat-positions . (2 3 4 2 1 2 1))
+       (sharp-positions . (4 5 4 2 3 2 3))
        (space-alist . (
                        (time-signature . (extra-space . 1.15))
                        (staff-bar . (extra-space . 1.1))
        (stencil . ,ly:key-signature-interface::print)
        (extra-spacing-width . (0.0 . 1.0))
        (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-including-staff)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (Y-offset . ,ly:staff-symbol-referencer::callback)
        (meta . ((class . Item)
                  (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
        (stencil  . ,laissez-vibrer::print)
        (thickness . 1.0)
        (extra-spacing-height . (-0.5 . 0.5))
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (meta . ((class . Item)
                 (interfaces . (semi-tie-interface))))))
 
        (minimum-length-fraction . 0.25)
        (springs-and-rods . ,ly:ledger-line-spanner::set-spacing-rods)
        (stencil . ,ly:ledger-line-spanner::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-extent . #f)
        (Y-extent . #f)
        (meta . ((class . Spanner)
        (padding . 0.07)
        (springs-and-rods . ,ly:lyric-hyphen::set-spacing-rods)
        (stencil . ,ly:lyric-hyphen::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (thickness . 1.3)
        (Y-extent . (0 . 0))
        (meta . ((class . Spanner)
        (stencil . ,lyric-text::print)
        (text . ,(grob::calc-property-by-copy 'text))
        (word-space . 0.6)
+       (skyline-horizontal-padding . 0.1)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
        (meta . ((class . Item)
                 (interfaces . (font-interface
                                self-alignment-interface
                                text-interface))))))
 
+    (MeasureCounter
+     . (
+        (count-from . 1)
+        (direction . ,UP)
+        (font-encoding . fetaText)
+        (font-size . -2)
+        (outside-staff-horizontal-padding . 0.5)
+        (outside-staff-padding . 0.5)
+        (outside-staff-priority . 750)
+        (self-alignment-X . ,CENTER)
+        (staff-padding . 0.5)
+        (stencil . ,measure-counter-stencil)
+        (meta . ((class . Spanner)
+                 (interfaces . (font-interface
+                                measure-counter-interface
+                                self-alignment-interface
+                                text-interface))))))
 
     (MeasureGrouping
      . (
 
     (MensuralLigature
      . (
+       (springs-and-rods . ,ly:spanner::set-spacing-rods)
        (stencil . ,ly:mensural-ligature::print)
        (thickness . 1.3)
        (meta . ((class . Spanner)
        (break-visibility . ,end-of-line-invisible)
        (direction . ,UP)
        (extra-spacing-width . (+inf.0 . -inf.0))
+       (outside-staff-horizontal-padding . 0.12)
        (outside-staff-priority . 1000)
        (padding . 0.8)
        (side-axis . ,Y)
        (stencil . ,ly:text-interface::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (X-offset . ,(ly:make-simple-closure
                      `(,+
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (meta . ((class . Item)
                 (interfaces . (font-interface
+                               octavate-eight-interface
                                self-alignment-interface
                                side-position-interface
                                text-interface))))))
        (staff-padding . 1.0)
        (stencil . ,ly:ottava-bracket::print)
        (style . dashed-line)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (meta . ((class . Spanner)
                 (interfaces . (font-interface
        (bound-alignment-interfaces . (note-column-interface))
        (horizontal-skylines . ,ly:separation-item::calc-skylines)
        (keep-inside-line . #t)
+       ; 0.08 comes from spacing-horizontal-skyline.ly
+       ; allows double flat of F to be nestled over dots of C
+       (skyline-vertical-padding . 0.08)
        ;; (stencil . ,ly:paper-column::print)
        (X-extent . ,ly:axis-group-interface::width)
 
        (stencil . ,ly:piano-pedal-bracket::print)
        (style . line)
        (thickness .  1.0)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (meta . ((class . Spanner)
                 (interfaces . (line-interface
                                piano-pedal-bracket-interface
        (extra-spacing-width . (+inf.0 . -inf.0))
        (font-size . 2)
        (non-musical . #t)
+       (outside-staff-horizontal-padding . 0.12)
        (outside-staff-priority . 1500)
        (padding . 0.8)
        (self-alignment-X . ,CENTER)
        (stencil . ,ly:text-interface::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-offset . ,(ly:make-simple-closure
                      `(,+
                        ,(ly:make-simple-closure
        (stencil  . ,ly:tie::print)
        (thickness . 1.0)
        (extra-spacing-height . (-0.5 . 0.5))
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (meta . ((class . Item)
                 (interfaces . (semi-tie-interface))))))
 
 
        (stencil . ,ly:script-interface::print)
        (use-skylines . #t)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-offset . ,script-interface::calc-x-offset)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (meta . ((class . Item)
        (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner
        (self-alignment-X . ,CENTER)
        (stencil . ,ly:text-interface::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
        (meta . ((class . Item)
                 (interfaces . (font-interface
        (padding . 1.2)
        (side-axis . ,Y)
        (staff-padding . 1.0)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-element-stencils)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (break-align-symbol . staff-bar)
        (cross-staff . #t)
        (glyph-name . ,ly:span-bar::calc-glyph-name)
-
-       ;; ugh duplication! (these 4 properties were copied from Barline)
-       ;;
-       ;; Ross. page 151 lists other values, we opt for a leaner look
-       ;;
-       (kern . 3.0)
-       (thin-kern . 3.0)
-       (hair-thickness . 1.6)
-       (thick-thickness . 6.0)
-
        (layer . 0)
        (non-musical . #t)
        (stencil . ,ly:span-bar::print)
 
        (direction . ,ly:stem::calc-direction)
        (duration-log . ,stem::calc-duration-log)
-        (length . ,stem::length)
+        (length . ,ly:stem::calc-length)
        (neutral-direction . ,DOWN)
        (positioning-done . ,ly:stem::calc-positioning-done)
        (stem-info . ,ly:stem::calc-stem-info)
      . (
        (beam-thickness . 0.48) ; staff-space
        (beam-width . ,ly:stem-tremolo::calc-width) ; staff-space
+       (direction . ,ly:stem-tremolo::calc-direction)
        (slope . ,ly:stem-tremolo::calc-slope)
        (stencil . ,ly:stem-tremolo::print)
        (style . ,ly:stem-tremolo::calc-style)
        (padding . 0.0)  ;; padding relative to SustainPedalLineSpanner
        (self-alignment-X . ,CENTER)
        (stencil . ,ly:sustain-pedal::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
        (meta . ((class . Item)
                 (interfaces . (font-interface
        (padding . 1.2)
        (side-axis . ,Y)
        (staff-padding . 1.2)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-element-stencils)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
      . (
        (adjacent-pure-heights . ,ly:axis-group-interface::adjacent-pure-heights)
        (axes . (,X ,Y))
-       (skyline-horizontal-padding . 0.5)
+       (outside-staff-placement-directive . left-to-right-polite)
+       (skyline-horizontal-padding . 1.0)
        (vertical-skylines . ,ly:axis-group-interface::calc-skylines)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:system::height)
                 (object-callbacks . ((footnotes-before-line-breaking . ,ly:system::footnotes-before-line-breaking)
                                      (footnotes-after-line-breaking . ,ly:system::footnotes-after-line-breaking)
                                      (pure-relevant-grobs . ,ly:system::calc-pure-relevant-grobs)
-                                     (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)))
+                                     (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
+                                     (vertical-skyline-elements . ,ly:system::vertical-skyline-elements)
+                                      (vertical-alignment . ,ly:system::get-vertical-alignment)))
                 (interfaces . (axis-group-interface
                                system-interface))))))
 
        (cross-staff . ,script-or-side-position-cross-staff)
        (direction . ,DOWN)
        (extra-spacing-width . (+inf.0 . -inf.0))
+       (outside-staff-horizontal-padding . 0.12)
        (outside-staff-priority . 450)
 
        ;; sync with Fingering ?
        (slur-padding . 0.5)
        (staff-padding . 0.5)
        (stencil . ,ly:text-interface::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        ;; todo: add X self alignment?
        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (neutral-direction . ,UP)
        (springs-and-rods . ,ly:spanner::set-spacing-rods)
        (stencil . ,ly:tie::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (thickness . 1.2)
        (meta . ((class . Spanner)
                 (interfaces . (tie-interface))))))
        (staff-padding . 0.25)
        (stencil . ,ly:tuplet-bracket::print)
        (thickness . 1.6)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-positions . ,ly:tuplet-bracket::calc-x-positions)
 
        (meta . ((class . Spanner)
        (padding . 0.0)  ;; padding relative to UnaCordaPedalLineSpanner
        (self-alignment-X . ,CENTER)
        (stencil . ,ly:text-interface::print)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
        (meta . ((class . Item)
                 (interfaces . (font-interface
        (padding . 1.2)
        (side-axis . ,Y)
        (staff-padding . 1.2)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-element-stencils)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
        (meta . ((class . Spanner)
-                (object-callbacks . ((full-score-pure-minimum-translations . ,ly:align-interface::full-score-pure-minimum-translations)
-                                     (Y-common . ,ly:axis-group-interface::calc-y-common)
+                (object-callbacks . ((Y-common . ,ly:axis-group-interface::calc-y-common)
                                      (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)
                                      (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)))
                 (interfaces . (align-interface
                                        (minimum-distance . 8)
                                        (padding . 1)))
        (nonstaff-unrelatedstaff-spacing . ((padding . 0.5)))
+       (outside-staff-placement-directive . left-to-right-polite)
        (staff-staff-spacing . ,ly:axis-group-interface::calc-staff-staff-spacing)
        (stencil . ,ly:axis-group-interface::print)
+       (skyline-horizontal-padding . 0.1)
        (vertical-skylines . ,ly:hara-kiri-group-spanner::calc-skylines)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:hara-kiri-group-spanner::y-extent)
                                   (padding . 1.5)
                                      ))
                          ))
+       (cross-staff . #t)
        (gap . 0.5)
        (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
        (non-musical . #t)
        (edge-height . (2.0 . 2.0)) ;; staff-space;
        (font-encoding . fetaText)
        (font-size . -4)
+       (shorten-pair . ,ly:volta-bracket::calc-shorten-pair)
        (stencil . ,ly:volta-bracket-interface::print)
        (thickness . 1.6) ;; line-thickness
        (word-space . 0.6)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
        (meta . ((class . Spanner)
                 (interfaces . (font-interface
                                horizontal-bracket-interface
        (outside-staff-priority . 600)
        (padding . 1)
        (side-axis . ,Y)
+       (vertical-skylines . ,ly:grob::vertical-skylines-from-element-stencils)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
-       (Y-offset . ,ly:side-position-interface::y-aligned-side)
+        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (meta . ((class . Spanner)
                 (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
                                      (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
     (,ly:slur::outside-slur-callback . ,ly:slur::pure-outside-slur-callback)
     (,ly:stem::calc-stem-begin-position . ,ly:stem::pure-calc-stem-begin-position)
     (,ly:stem::calc-stem-end-position . ,ly:stem::pure-calc-stem-end-position)
-    (,stem::length . ,stem::pure-length)
+    (,ly:stem::calc-length . ,ly:stem::pure-calc-length)
     (,ly:stem::height . ,ly:stem::pure-height)
     (,ly:stem-tremolo::calc-y-offset . ,ly:stem-tremolo::pure-calc-y-offset)
     (,ly:system::height . ,ly:system::calc-pure-height)))
index 9631da734ddd6ad0d6e3389ec2fb5683b9b5a10f..e429c92b6fcf0e3b641e321d0319b4dd9b143305 100644 (file)
@@ -848,33 +848,25 @@ Otherwise, return #f."
         (value   (ly:music-property expr 'grob-value))
         (once    (ly:music-property expr 'once)))
 
-    (format #f "~a\\override ~a~a #'~a = ~a~a"
+    (format #f "~a\\override ~{~a~^.~} = ~a~a"
            (if (or (null? once)
                    (not once))
                ""
                "\\once ")
-           (if (eqv? (*current-context*) 'Bottom)
-               ""
-               (format #f "~a . " (*current-context*)))
-           symbol
-           (if (null? (cdr properties))
-               (car properties)
-               properties)
-           (property-value->lily-string value parser)
+            (if (eqv? (*current-context*) 'Bottom)
+                (cons symbol properties)
+                (cons* (*current-context*) symbol properties))
+            (property-value->lily-string value parser)
            (new-line->lily-string))))
 
 (define-display-method RevertProperty (expr parser)
   (let* ((symbol (ly:music-property expr 'symbol))
          (properties (ly:music-property expr 'grob-property-path
                                              (list (ly:music-property expr 'grob-property)))))
-    (format #f "\\revert ~a~a #'~a~a"
-           (if (eqv? (*current-context*) 'Bottom)
-               ""
-               (format #f "~a . " (*current-context*)))
-           symbol
-           (if (null? (cdr properties))
-               (car properties)
-               properties)
+    (format #f "\\revert ~{~a~^.~}~a"
+            (if (eqv? (*current-context*) 'Bottom)
+                (cons symbol properties)
+                (cons* (*current-context*) symbol properties))
            (new-line->lily-string))))
 
 (define-display-method TimeSignatureMusic (expr parser)
index 0b828c1516c161f78e1a98d67b37954d629b64a5..dc93024041d961a8918d8c4ed0a79377fee3eed2 100644 (file)
@@ -309,6 +309,11 @@ Example: @code{\\mark \"A\"}")
        (types . (general-music mark-event event))
        ))
 
+    (MeasureCounterEvent
+     . ((description . "Used to signal the start and end of a measure count.")
+        (types . (general-music measure-counter-event span-event event))
+        ))
+
     (MultiMeasureRestEvent
      . ((description . "Used internally by @code{MultiMeasureRestMusic}
 to signal rests.")
index fbef9183f8eb9f285b249c26f211367c86c71a72..f8b6dad6a49e89a3b69c6e88988d36a8ca13d2ef 100644 (file)
               ))
     ))
 
+;; add two native utf-8 aliases. Pairs obey cp-like order: '(old new)
+(map (lambda (pair)
+       (set! language-pitch-names
+             (append language-pitch-names
+                     (list (cons (cadr pair)
+                                 (cdr (assoc (car pair) language-pitch-names)))))))
+     '((espanol español)
+       (italiano français)))
+
 (define-public (note-names-language parser str)
   (_ "Select note names language.")
   (let ((alist (assoc-get (string->symbol str)
index 16f809fc8bca2306e6c71d57cc5722bdfdc009fc..55c9f9f135f784428398efad1317ce36131da623 100644 (file)
@@ -85,9 +85,9 @@ display method will be called."
                  (format #f "~a\\tweak ~a #~a"
                          (if post-event? "-" "")
                         (if (pair? (car tweak))
-                            (format #f "~a #'~a"
+                            (format #f "~a.~a"
                                     (caar tweak) (cdar tweak))
-                            (format #f "#'~a" (car tweak)))
+                            (format #f "~a" (car tweak)))
                          (scheme-expr->lily-string (cdr tweak))))
                (ly:music-property expr 'tweaks))))
 
index a6645dc762d61024ae9cfeca770b9c03970a64de..83c4ee6b7addef25458262764112fb01379a640e 100644 (file)
@@ -646,8 +646,9 @@ fret-diagram overall parameters."
                 (stencil-coordinates
                   end-fret-coordinate end-string-coordinate)))
          (ly:round-filled-box
-           (cons (car lower-left) (car upper-right))
-           (cons (cdr lower-left) (cdr upper-right))
+           ;; Put limits in order, or else the intervals are considered empty
+           (ordered-cons (car lower-left) (car upper-right))
+           (ordered-cons (cdr lower-left) (cdr upper-right))
            sth)))
 
      (define (draw-xo xo-list)
index 8fa02fb5a041204f62bfa8f6be81bd06cc2f0247..ce756ddfe22a34a69bc58524092f8a0314712dcb 100644 (file)
@@ -121,10 +121,13 @@ divider) and @code{space-after-divider} (box spacing after the divider).
         (final-x (car result))
         (stencils (cdr result)))
     ; Add the horizontal line and combine all stencils:
-    (apply ly:stencil-add
-      (cons
-        (make-line-stencil line-width 0 0 final-x 0)
-        stencils))))
+    (box-stencil
+      (apply ly:stencil-add
+        (cons
+          (make-line-stencil line-width 0 0 final-x 0)
+          stencils))
+        0.0
+        0.0)))
 
 ;; Parse the harp pedal definition string into list of directions (-1/0/1), #\o and #\|
 (define (harp-pedals-parse-string definition-string)
index 854980012cea5d3da40df5b955bfde86c4e87a97..d21e292ccf2b7f2ecc97856da3895aa182dd3d8f 100644 (file)
@@ -259,9 +259,9 @@ bookoutput function"
 
 (define-public (context-mod-from-music parser music)
   (let ((warn #t) (mods (ly:make-context-mod)))
-    (let loop ((m music) (context #f))
+    (let loop ((m music))
       (if (music-is-of-type? m 'layout-instruction-event)
-         (let ((symbol (cons context (ly:music-property m 'symbol))))
+         (let ((symbol (ly:music-property m 'symbol)))
            (ly:add-context-mod
             mods
             (case (ly:music-property m 'name)
@@ -292,19 +292,17 @@ bookoutput function"
                                 (list 'apply
                                       (ly:music-property m 'procedure))))
            ((ContextSpeccedMusic)
-            (loop (ly:music-property m 'element)
-                  (ly:music-property m 'context-type)))
+            (loop (ly:music-property m 'element)))
            (else
             (let ((callback (ly:music-property m 'elements-callback)))
               (if (procedure? callback)
-                  (fold loop context (callback m))
+                  (for-each loop (callback m))
                   (if (and warn (ly:duration? (ly:music-property m 'duration)))
                       (begin
                         (ly:music-warning
                          music
                          (_ "Music unsuitable for context-mod"))
-                        (set! warn #f))))))))
-      context)
+                        (set! warn #f)))))))))
     mods))
 
 (define-public (context-defs-from-music parser output-def music)
index b0b8173161ff46201c09f147e0eaa6c3ca52aa8e..4905e0687b6977e1284728d4fa0eae561e16a510 100644 (file)
    (string-downcase
     (car (string-tokenize (utsname:sysname (uname)))))))
 
+(define lilypond-declarations '())
+
+(defmacro-public define-session (name value)
+  "This defines a variable @var{name} with the starting value
+@var{value} that is reinitialized at the start of each session.
+A@tie{}session basically corresponds to one LilyPond file on the
+command line.  The value is recorded at the start of the first session
+after loading all initialization files and before loading the user
+file and is reinstated for all of the following sessions.  This
+happens just by replacing the value, not by copying structures, so you
+should not destructively modify them.  For example, lists defined in
+this manner should be changed within a session only be adding material
+to their front or replacing them altogether, not by modifying parts of
+them.  It is an error to call @code{define-session} after the first
+session has started."
+  (define (add-session-variable name value)
+    (if (ly:undead? lilypond-declarations)
+        (ly:error (_ "define-session used after session start")))
+    (let ((var (make-variable value)))
+      (module-add! (current-module) name var)
+      (set! lilypond-declarations (cons var lilypond-declarations))))
+  `(,add-session-variable ',name ,value))
+
+(defmacro-public define-session-public (name value)
+  "Like @code{define-session}, but also exports @var{name}."
+  `(begin
+     (define-session ,name ,value)
+     (export ,name)))
+
+(define (session-terminate)
+  (if (ly:undead? lilypond-declarations)
+      (for-each
+       (lambda (p) (variable-set! (cadr p) (cddr p)))
+       (ly:get-undead lilypond-declarations))))
+
+(define-public (session-initialize thunk)
+  "Initialize this session.  The first session in a LilyPond run is
+initialized by calling @var{thunk}, then recording the values of all
+variables in the current module as well as those defined with
+@code{define-session}.  Subsequent calls of @code{session-initialize}
+ignore @var{thunk} and instead just reinitialize all recorded
+variables to their value after the initial call of @var{thunk}."
+
+;; We need to save the variables of the current module along with
+;; their values: functions defined in the module might refer to the
+;; variables.
+
+;; The entries in lilypond-declarations consist of a cons* consisting
+;; of symbol, variable, and value.  Variables defined with
+;; define-session have the symbol set to #f.
+
+  (if (ly:undead? lilypond-declarations)
+      (begin
+        (for-each
+         (lambda (p)
+           (let ((var (cadr p))
+                 (val (cddr p)))
+             (variable-set! var val)
+             (if (car p)
+                 (module-add! (current-module) (car p) var))))
+         (ly:get-undead lilypond-declarations)))
+      (begin
+        (thunk)
+        (let ((decl (map! (lambda (v)
+                            (cons* #f v (variable-ref v)))
+                          lilypond-declarations)))
+          (module-for-each
+           (lambda (s v)
+             (let ((val (variable-ref v)))
+               (if (not (ly:lily-parser? val))
+                   (set! decl
+                         (cons
+                          (cons* s v val)
+                          decl)))))
+           (current-module))
+          (set! lilypond-declarations (ly:make-undead decl))))))
+
 (define scheme-options-definitions
   `(
     ;; NAMING: either
@@ -289,7 +366,6 @@ messages into errors.")
 (if (memq (ly:get-option 'backend) music-string-to-path-backends)
     (ly:set-option 'music-strings-to-paths #t))
 
-
 (define-public (ly:load x)
   (let* ((file-name (%search-load-path x)))
     (ly:debug "[~A" file-name)
@@ -420,6 +496,7 @@ messages into errors.")
     "define-grobs.scm"
     "define-grob-interfaces.scm"
     "define-stencil-commands.scm"
+    "scheme-engravers.scm"
     "titling.scm"
     "text.scm"
 
@@ -492,8 +569,6 @@ messages into errors.")
     (,fraction? . "fraction, as pair")
     (,grob-list? . "list of grobs")
     (,index? . "non-negative integer")
-    ;; this is built on cheap-list
-    (,list-or-symbol? . "list or symbol")
     (,markup? . "markup")
     (,markup-command-list? . "markup command list")
     (,markup-list? . "markup list")
@@ -506,7 +581,11 @@ messages into errors.")
     (,rhythmic-location? . "rhythmic location")
     (,scheme? . "any type")
     (,string-or-pair? . "string or pair")
+    (,string-or-music? . "string or music")
     (,string-or-symbol? . "string or symbol")
+    (,symbol-list? . "symbol list")
+    (,symbol-list-or-music? . "symbol list or music")
+    (,symbol-list-or-symbol? . "symbol list or symbol")
     (,void? . "void")
     ))
 
@@ -597,6 +676,10 @@ messages into errors.")
 (define gc-protect-stat-count
   0)
 
+;; Undead objects that should be ignored after the first time round
+(define gc-zombies
+  (make-weak-key-hash-table 0))
+
 (define-public (dump-live-object-stats outfile)
   (for-each (lambda (x)
               (format outfile "~a: ~a\n" (car x) (cdr x)))
@@ -645,7 +728,10 @@ messages into errors.")
           (ly:set-option 'debug-gc-assert-parsed-dead #f)
          (for-each
           (lambda (x)
-            (ly:programming-error "Parsed object should be dead: ~a" x))
+            (if (not (hashq-ref gc-zombies x))
+                (begin
+                  (ly:programming-error "Parsed object should be dead: ~a" x)
+                  (hashq-set! gc-zombies x #t))))
           (ly:parsed-undead-list!))
           (set! stats (gc-live-object-stats))
           (ly:progress "Dumping live object statistics.\n")
@@ -827,6 +913,7 @@ PIDs or the number of the process."
              (mtrace:start-trace  (ly:get-option 'trace-memory-frequency)))
          (lilypond-file handler x)
          (ly:check-expected-warnings)
+         (session-terminate)
          (if start-measurements
              (dump-profile x start-measurements (profile-measurements)))
          (if (ly:get-option 'trace-memory-frequency)
@@ -838,10 +925,13 @@ PIDs or the number of the process."
          (ly:set-option 'debug-gc-assert-parsed-dead #t)
          (gc)
          (ly:set-option 'debug-gc-assert-parsed-dead #f)
-        (for-each
-         (lambda (x)
-           (ly:programming-error "Parsed object should be dead: ~a" x))
-         (ly:parsed-undead-list!))
+         (for-each
+          (lambda (x)
+            (if (not (hashq-ref gc-zombies x))
+                (begin
+                  (ly:programming-error "Parsed object should be dead: ~a" x)
+                  (hashq-set! gc-zombies x #t))))
+          (ly:parsed-undead-list!))
          (if (ly:get-option 'debug-gc)
              (dump-gc-protects)
              (ly:reset-all-fonts))
@@ -855,8 +945,6 @@ PIDs or the number of the process."
         (dump-profile "lily-run-total" '(0 0) (profile-measurements)))
     failed))
 
-(define-public lilypond-declarations '())
-
 (define (lilypond-file handler file-name)
   (catch 'ly-file-failed
          (lambda () (ly:parse-file file-name))
index e231299bf0888e0a8261fd33c14550c3b61442af..42102a1ee80226f4164c9ceb48a31a2a081bf069 100644 (file)
@@ -385,6 +385,82 @@ beats to be distinguished."
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; property setting music objs.
 
+(define-safe-public (check-grob-path path #:optional parser location
+                                     #:key
+                                     (start 0)
+                                     default
+                                     (min 1)
+                                     max)
+  "Check a grob path specification @var{path}, a symbol list (or a
+single symbol), for validity and possibly complete it.  Returns the
+completed specification, or @code{#f} if invalid.  If optional
+@var{parser} is given, a syntax error is raised in that case,
+optionally using @var{location}.  If an optional keyword argument
+@code{#:start @var{start}} is given, the parsing starts at the given
+index in the sequence @samp{Context.Grob.property.sub-property...},
+with the default of @samp{0} implying the full path.
+
+If there is no valid first element of @var{path} fitting at the given
+path location, an optionally given @code{#:default @var{default}} is
+used as the respective element instead without checking it for
+validity at this position.
+
+The resulting path after possibly prepending @var{default} can be
+constrained in length by optional arguments @code{#:min @var{min}} and
+@code{#:max @var{max}}, defaulting to @samp{1} and unlimited,
+respectively."
+  (let ((path (if (symbol? path) (list path) path)))
+    ;; A Guile 1.x bug specific to optargs precludes moving the
+    ;; defines out of the let
+    (define (unspecial? s)
+      (not (or (object-property s 'is-grob?)
+               (object-property s 'backend-type?))))
+    (define (grob? s)
+      (object-property s 'is-grob?))
+    (define (property? s)
+      (object-property s 'backend-type?))
+    (define (check c p) (c p))
+
+    (let* ((checkers
+            (and (< start 3)
+                 (drop (list unspecial? grob? property?) start)))
+           (res
+            (cond
+             ((null? path)
+              ;; tricky.  Should we make use of the default when the
+              ;; list is empty?  In most cases, this question should be
+              ;; academical as an empty list can only be generated by
+              ;; Scheme and is likely an error.  We consider this a case
+              ;; of "no valid first element, and default given".
+              ;; Usually, invalid use cases should be caught later using
+              ;; the #:min argument, and if the user explicitly does not
+              ;; catch this, we just follow through.
+              (if default (list default) '()))
+             ((not checkers)
+              ;; no checkers, so we have a valid first element and just
+              ;; take the path as-is.
+              path)
+             (default
+               (if ((car checkers) (car path))
+                   (and (every check (cdr checkers) (cdr path))
+                        path)
+                   (and (every check (cdr checkers) path)
+                        (cons default path))))
+             (else
+              (and (every check checkers path)
+                   path)))))
+      (if (and res
+               (if max (<= min (length res) max)
+                   (<= min (length res))))
+          res
+          (begin
+            (if parser
+                (ly:parser-error parser
+                                 (format #f (_ "bad grob property path ~a")
+                                         path)
+                                 location))
+            #f)))))
+
 (define-public (make-grob-property-set grob gprop val)
   "Make a @code{Music} expression that sets @var{gprop} to @var{val} in
 @var{grob}.  Does a pop first, i.e., this is not an override."
@@ -1321,33 +1397,43 @@ immediately', that is, only look at key signature.  @code{#t} is `forever'."
   (check-pitch-against-signature context pitch barnum laziness octaveness))
 
 (define (key-entry-notename entry)
-  "Return the pitch of an entry in localKeySignature.  The entry is either of the form
-  '(notename . alter) or '((octave . notename) . (alter barnum . measurepos))."
-  (if (number? (car entry))
-      (car entry)
-      (cdar entry)))
+  "Return the pitch of an @var{entry} in @code{localKeySignature}.
+The @samp{car} of the entry is either of the form @code{notename} or
+of the form @code{(octave . notename)}.  The latter form is used for special
+key signatures or to indicate an explicit accidental.
+
+The @samp{cdr} of the entry is either a rational @code{alter} indicating
+a key signature alteration, or of the form
+@code{(alter . (barnum . measurepos))} indicating an alteration caused by
+an accidental in music."
+  (if (pair? (car entry))
+      (cdar entry)
+      (car entry)))
 
 (define (key-entry-octave entry)
-  "Return the octave of an entry in localKeySignature (or #f if the entry does not have
-  an octave)."
+  "Return the octave of an entry in @code{localKeySignature}
+or @code{#f} if the entry does not have an octave.
+See @code{key-entry-notename} for details."
   (and (pair? (car entry)) (caar entry)))
 
 (define (key-entry-bar-number entry)
-  "Return the bar number of an entry in localKeySignature (or #f if the entry does not
-  have a bar number)."
-  (and (pair? (car entry)) (caddr entry)))
+  "Return the bar number of an entry in @code{localKeySignature}
+or @code {#f} if the entry does not have a bar number.
+See @code{key-entry-notename} for details."
+  (and (pair? (cdr entry)) (caddr entry)))
 
 (define (key-entry-measure-position entry)
-  "Return the measure position of an entry in localKeySignature (or #f if the entry does
-  not have a measure position)."
-  (and (pair? (car entry)) (cdddr entry)))
+  "Return the measure position of an entry in @code{localKeySignature}
+or @code {#f} if the entry does not have a measure position.
+See @code{key-entry-notename} for details."
+  (and (pair? (cdr entry)) (cdddr entry)))
 
 (define (key-entry-alteration entry)
   "Return the alteration of an entry in localKeySignature.
 
 For convenience, returns @code{0} if entry is @code{#f}."
   (if entry
-      (if (number? (car entry))
+      (if (number? (cdr entry))
          (cdr entry)
          (cadr entry))
       0))
@@ -1590,15 +1676,14 @@ Entries that conform with the current key signature are not invalidated."
     (set! (ly:context-property context 'localKeySignature)
          (map-in-order
           (lambda (entry)
-            (let* ((localalt (key-entry-alteration entry))
-                   (localoct (key-entry-octave entry)))
+            (let* ((localalt (key-entry-alteration entry)))
               (if (or (accidental-invalid? localalt)
-                      (not localoct)
+                      (not (key-entry-bar-number entry))
                       (= localalt
                          (key-entry-alteration
                           (find-pitch-entry
                            keysig
-                           (ly:make-pitch localoct
+                           (ly:make-pitch (key-entry-octave entry)
                                           (key-entry-notename entry)
                                           0)
                            #t #t))))
@@ -1872,3 +1957,63 @@ of list @var{arg}."
    (if (>= (length siblings) 2)
        (helper siblings arg)
        (car arg))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; measure counter
+
+(define (measure-counter-stencil grob)
+  "Print a number for a measure count.  The number is centered using
+the extents of @code{BreakAlignment} grobs associated with
+@code{NonMusicalPaperColumn} grobs.  In the case of an unbroken measure, these
+columns are the left and right bounds of a @code{MeasureCounter} spanner.
+Broken measures are numbered in parentheses."
+  (let* ((orig (ly:grob-original grob))
+         (siblings (ly:spanner-broken-into orig)) ; have we been split?
+         (bounds (ly:grob-array->list (ly:grob-object grob 'columns)))
+         (refp (ly:grob-system grob))
+         ; we use the first and/or last NonMusicalPaperColumn grob(s) of
+         ; a system in the event that a MeasureCounter spanner is broken
+         (all-cols (ly:grob-array->list (ly:grob-object refp 'columns)))
+         (all-cols
+           (filter
+             (lambda (col) (eq? #t (ly:grob-property col 'non-musical)))
+             all-cols))
+         (left-bound
+           (if (or (null? siblings) ; spanner is unbroken
+                   (eq? grob (car siblings))) ; or the first piece
+               (car bounds)
+               (car all-cols)))
+         (right-bound
+           (if (or (null? siblings)
+                   (eq? grob (car (reverse siblings))))
+               (car (reverse bounds))
+               (car (reverse all-cols))))
+         (elts-L (ly:grob-array->list (ly:grob-object left-bound 'elements)))
+         (elts-R (ly:grob-array->list (ly:grob-object right-bound 'elements)))
+         (break-alignment-L
+           (filter
+             (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
+             elts-L))
+         (break-alignment-R
+           (filter
+             (lambda (elt) (grob::has-interface elt 'break-alignment-interface))
+             elts-R))
+         (break-alignment-L-ext (ly:grob-extent (car break-alignment-L) refp X))
+         (break-alignment-R-ext (ly:grob-extent (car break-alignment-R) refp X))
+         (num (markup (number->string (ly:grob-property grob 'count-from))))
+         (num
+           (if (or (null? siblings)
+                   (eq? grob (car siblings)))
+               num
+               (make-parenthesize-markup num)))
+         (num (grob-interpret-markup grob num))
+         (num (ly:stencil-aligned-to num X (ly:grob-property grob 'self-alignment-X)))
+         (num
+           (ly:stencil-translate-axis
+             num
+             (+ (interval-length break-alignment-L-ext)
+                (* 0.5
+                   (- (car break-alignment-R-ext)
+                      (cdr break-alignment-L-ext))))
+             X)))
+    num))
index af55cc8fde11557f70c010b2f827e073278275e8..c6ed83e6e026929d22ab8374794e17ff134f7ce7 100644 (file)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; beam slope
 
+;; even though kievan noteheads do not have stems, their
+;; invisible stems help with beam placement
+;; this assures that invisible stems for kievan notes are aligned
+;; to the center of kievan noteheads. that is thus where the beams'
+;; x extrema will fall
+(define-public (stem::kievan-offset-callback grob)
+  (let* ((note-heads (ly:grob-object grob 'note-heads))
+         (note-heads-grobs (if (not (null? note-heads))
+                               (ly:grob-array->list note-heads)
+                               '()))
+         (first-note-head (if (not (null? note-heads-grobs))
+                              (car note-heads-grobs)
+                              '()))
+         (note-head-w (if (not (null? first-note-head))
+                          (ly:grob-extent first-note-head first-note-head X)
+                          '(0 . 0))))
+    (interval-center note-head-w)))
+
+
+;; sets position of beams for Kievan notation
+(define-public (beam::get-kievan-positions grob)
+  (let* ((stems (ly:grob-object grob 'stems))
+         (stems-grobs (if (not (null? stems))
+                          (ly:grob-array->list stems)
+                          '()))
+         (first-stem (if (not (null? stems-grobs))
+                         (car stems-grobs)
+                         '()))
+         (note-heads (if (not (null? first-stem))
+                         (ly:grob-object first-stem 'note-heads)
+                         '()))
+         (note-heads-grobs (if (not (null? note-heads))
+                               (ly:grob-array->list note-heads)
+                               '()))
+         (first-note-head (if (not (null? note-heads-grobs))
+                              (car note-heads-grobs)
+                              '()))
+         (next-stem (if (not (null? stems))
+                        (cadr stems-grobs)
+                        '()))
+         (next-note-heads (if (not (null? next-stem))
+                              (ly:grob-object next-stem 'note-heads)
+                              '()))
+         (next-note-heads-grobs (if (not (null? next-note-heads))
+                                    (ly:grob-array->list next-note-heads)
+                                    '()))
+         (next-note-head (if (not (null? next-note-heads-grobs))
+                             (car next-note-heads-grobs)
+                             '()))
+         (left-pos (ly:grob-property first-note-head 'Y-offset))
+         (right-pos (ly:grob-property next-note-head 'Y-offset))
+         (direction (ly:grob-property grob 'direction))
+         (first-nh-height (ly:grob::stencil-height first-note-head))
+         (next-nh-height (ly:grob::stencil-height next-note-head))
+         (left-height (if (= direction DOWN)
+                          (+ (car first-nh-height) 0.75)
+                          (- (cdr first-nh-height) 0.75)))
+         (right-height (if (= direction DOWN)
+                           (+ (car next-nh-height) 0.75)
+                           (- (cdr next-nh-height) 0.75))))
+    (cons (+ left-pos left-height) (+ right-pos right-height))))
+
+(define-public (beam::get-kievan-quantized-positions grob)
+  (let* ((pos (ly:grob-property grob 'positions))
+         (stems (ly:grob-object grob 'stems))
+         (stems-grobs (if (not (null? stems))
+                          (ly:grob-array->list stems)
+                          '())))
+    (for-each
+      (lambda (g)
+        (ly:grob-set-property! g 'stem-begin-position 0)
+        (ly:grob-set-property! g 'length 0))
+      stems-grobs)
+    pos))
+
 ;; calculates each slope of a broken beam individually
 (define-public (beam::place-broken-parts-individually grob)
   (ly:beam::quanting grob '(+inf.0 . -inf.0) #f))
   (ly:duration-log
    (ly:event-property (event-cause grob) 'duration)))
 
-(define-public (stem::length grob)
-  (let* ((ss (ly:staff-symbol-staff-space grob))
-         (beg (ly:grob-property grob 'stem-begin-position))
-         (beam (ly:grob-object grob 'beam)))
-    (if (null? beam)
-        (abs (- (ly:stem::calc-stem-end-position grob) beg))
-        (begin
-          (ly:programming-error
-            "stem::length called but will not be used for beamed stem.")
-          0.0))))
-
-(define-public (stem::pure-length grob beg end)
-  (let* ((ss (ly:staff-symbol-staff-space grob))
-         (beg (ly:grob-pure-property grob 'stem-begin-position 0 1000)))
-    (abs (- (ly:stem::pure-calc-stem-end-position grob 0 2147483646) beg))))
-
 (define (stem-stub::do-calculations grob)
   (and (ly:grob-property (ly:grob-parent grob X) 'cross-staff)
        (not (ly:grob-property (ly:grob-parent grob X) 'transparent))))
         (if (interval-empty? (interval-intersection stem_ph my_ph)) #f (coord-translate stem_ph dist)))
       #f))
 
-;; FIXME: NEED TO FIND A BETTER WAY TO HANDLE KIEVAN NOTATION
+(define-public (note-head::calc-kievan-duration-log grob)
+  (min 3
+       (ly:duration-log
+         (ly:event-property (event-cause grob) 'duration))))
+
 (define-public (note-head::calc-duration-log grob)
-  (let ((style (ly:grob-property grob 'style)))
-    (if (and (symbol? style) (string-match "kievan*" (symbol->string style)))
-      (min 3
-        (ly:duration-log
-       (ly:event-property (event-cause grob) 'duration)))
-      (min 2
-       (ly:duration-log
-       (ly:event-property (event-cause grob) 'duration))))))
+  (min 2
+       (ly:duration-log
+         (ly:event-property (event-cause grob) 'duration))))
 
 (define-public (dots::calc-dot-count grob)
   (ly:duration-dot-count
@@ -507,47 +565,31 @@ and duration-log @var{log}."
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; key signature
 
-(define-public (key-signature-interface::alteration-position step alter
-                                                            c0-position)
-  ;; TODO: memoize - this is mostly constant.
-
-  ;; fes, ges, as and bes typeset in lower octave
-  (define FLAT_TOP_PITCH 2)
-
-  ;; ais and bis typeset in lower octave
-  (define SHARP_TOP_PITCH 4)
-
-  (if (pair? step)
-      (+ (cdr step) (* (car step) 7) c0-position)
-      (let* ((from-bottom-pos (modulo (+ 4 49 c0-position) 7))
-            (p step)
-            (c0 (- from-bottom-pos 4)))
-
-       (if
-        (or (and (< alter 0)
-                 (or (> p FLAT_TOP_PITCH) (> (+ p c0) 4)) (> (+ p c0) 1))
-            (and (> alter 0)
-                 (or (> p SHARP_TOP_PITCH) (> (+ p c0) 5)) (> (+ p c0) 2)))
-
-        ;; Typeset below c_position
-        (set! p (- p 7)))
-
-       ;; Provide for the four cases in which there's a glitch
-       ;; it's a hack, but probably not worth
-       ;; the effort of finding a nicer solution.
-       ;; --dl.
-       (cond
-        ((and (= c0 2) (= p 3) (> alter 0))
-         (set! p (- p 7)))
-        ((and (= c0 -3) (= p -1) (> alter 0))
-         (set! p (+ p 7)))
-        ((and (= c0 -4) (= p -1) (< alter 0))
-         (set! p (+ p 7)))
-        ((and (= c0 -2) (= p -3) (< alter 0))
-         (set! p (+ p 7))))
-
-       (+ c0 p))))
-
+(define-public (key-signature-interface::alteration-positions
+               entry c0-position grob)
+  (let ((step (car entry))
+       (alter (cdr entry)))
+    (if (pair? step)
+       (list (+ (cdr step) (* (car step) 7) c0-position))
+       (let* ((c-position (modulo c0-position 7))
+              (positions
+               (if (< alter 0)
+                   ;; See (flat|sharp)-positions in define-grob-properties.scm
+                   (ly:grob-property grob 'flat-positions '(3))
+                   (ly:grob-property grob 'sharp-positions '(3))))
+              (p (list-ref positions
+                           (if (< c-position (length positions))
+                               c-position 0)))
+              (max-position (if (pair? p) (cdr p) p))
+              (min-position (if (pair? p) (car p) (- max-position 6)))
+              (first-position (+ (modulo (- (+ c-position step)
+                                            min-position)
+                                         7)
+                                 min-position)))
+         (define (prepend x l) (if (> x max-position)
+                                   l
+                                   (prepend (+ x 7) (cons x l))))
+         (prepend first-position '())))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; annotations
@@ -574,6 +616,10 @@ and duration-log @var{log}."
 (define-public (accidental-interface::calc-alteration grob)
   (ly:pitch-alteration (ly:event-property (event-cause grob) 'pitch)))
 
+(define-public (accidental-interface::glyph-name grob)
+  (assoc-get (ly:grob-property grob 'alteration)
+             standard-alteration-glyph-name-alist))
+
 (define-public cancellation-glyph-name-alist
   '((0 . "accidentals.natural")))
 
index 7c8a6ed39474fa5560002fb71f3744d4bf614047..497f197aebd80e4ab8e872bbf976655dbf28ba8d 100644 (file)
 (define (embedded-ps string)
   string)
 
-(define (glyph-string postscript-font-name
+(define (glyph-string pango-font
+                      postscript-font-name
                      size
                      cid?
                      w-x-y-named-glyphs)
 
-  (define (glyph-spec w x y g)
+  (define (glyph-spec w h x y g) ; h not used
     (let ((prefix (if (string? g) "/" "")))
       (ly:format "~4f ~4f ~4f ~a~a"
                 w x y
index 9f10629eacf7a6f2a3f4fc913aaa5ff3ee9a65a3..a15a9d8ad0bc59432a8b69bf164017a56fa78ccf 100644 (file)
           (begin
             (set! path (apply dump-path d-attr-value
                                         font-scale
-                                        (list (cadr rest) (caddr rest))))
+                                        (list (caddr rest) (cadddr rest))))
             (set! next-horiz-adv (+ next-horiz-adv
                                     (car rest)))
             path))
            ""))))
 
 (define (extract-glyph-info all-glyphs glyph size)
-  (let* ((offsets (list-head glyph 3))
+  (let* ((offsets (list-head glyph 4))
         (glyph-name (car (reverse glyph))))
     (apply extract-glyph all-glyphs glyph-name size offsets)))
 
 (define (embedded-svg string)
   string)
 
-(define (embedded-glyph-string font size cid glyphs)
+(define (embedded-glyph-string pango-font font size cid glyphs)
   (define path "")
   (if (= 1 (length glyphs))
       (set! path (music-string-to-path font size (car glyphs)))
   (set! next-horiz-adv 0.0)
   path)
 
-(define (woff-glyph-string font-name size cid? w-x-y-named-glyphs)
+(define (woff-glyph-string pango-font font-name size cid? w-h-x-y-named-glyphs)
   (let* ((name-style (font-name-style font-name))
         (family-designsize (regexp-exec (make-regexp "(.*)-([0-9]*)")
                                         font-name))
         (font (ly:paper-get-font paper `(((font-family . ,family)
                                           ,(if design-size
                                                `(design-size . design-size)))))))
-    (define (glyph-spec w x y g)
+    (define (glyph-spec w h x y g) ; h not used
       (let* ((charcode (ly:font-glyph-name-to-charcode font g))
             (char-lookup (format #f "&#~S;" charcode))
             (glyph-by-name (eoc 'altglyph `(glyphname . ,g)))
          (string-append glyph-by-name apparently-broken char-lookup)))))
 
     (string-join (map (lambda (x) (apply glyph-spec x))
-                     (reverse w-x-y-named-glyphs)) "\n")))
+                     (reverse w-h-x-y-named-glyphs)) "\n")))
 
 (define glyph-string
   (if (not (ly:get-option 'svg-woff)) embedded-glyph-string woff-glyph-string))
index 6d46cc626cc8df1cc64743af3428bed24fc665d7..b2c6dc20849a47eddc2a73fa02c45860bdff88cd 100644 (file)
     ("hufnagel-fa1" . ("clefs.hufnagel.fa" -1 0))
     ("hufnagel-fa2" . ("clefs.hufnagel.fa" 1 0))
     ("hufnagel-do-fa" . ("clefs.hufnagel.do.fa" 4 0))
-    ("mensural-c1" . ("clefs.mensural.c" -2 0))
-    ("mensural-c2" . ("clefs.mensural.c" 0 0))
-    ("mensural-c3" . ("clefs.mensural.c" 2 0))
-    ("mensural-c4" . ("clefs.mensural.c" 4 0))
+    ("mensural-c1" . ("clefs.mensural.c" -4 0))
+    ("mensural-c2" . ("clefs.mensural.c" -2 0))
+    ("mensural-c3" . ("clefs.mensural.c" 0 0))
+    ("mensural-c4" . ("clefs.mensural.c" 2 0))
+    ("mensural-c5" . ("clefs.mensural.c" 4 0))
+    ("blackmensural-c1" . ("clefs.blackmensural.c" -4 0))
+    ("blackmensural-c2" . ("clefs.blackmensural.c" -2 0))
+    ("blackmensural-c3" . ("clefs.blackmensural.c" 0 0))
+    ("blackmensural-c4" . ("clefs.blackmensural.c" 2 0))
+    ("blackmensural-c5" . ("clefs.blackmensural.c" 4 0))
     ("mensural-f" . ("clefs.mensural.f" 2 0))
     ("mensural-g" . ("clefs.mensural.g" -2 0))
     ("neomensural-c1" . ("clefs.neomensural.c" -4 0))
     ("neomensural-c2" . ("clefs.neomensural.c" -2 0))
     ("neomensural-c3" . ("clefs.neomensural.c" 0 0))
     ("neomensural-c4" . ("clefs.neomensural.c" 2 0))
+    ("neomensural-c5" . ("clefs.neomensural.c" 4 0))
     ("petrucci-c1" . ("clefs.petrucci.c1" -4 0))
     ("petrucci-c2" . ("clefs.petrucci.c2" -2 0))
     ("petrucci-c3" . ("clefs.petrucci.c3" 0 0))
     ("clefs.mensural.c" . 0)
     ("clefs.mensural.f" . 4)
     ("clefs.mensural.g" . -4)
+    ("clefs.blackmensural.c" . 0)
     ("clefs.neomensural.c" . 0)
     ("clefs.petrucci.c1" . 0)
     ("clefs.petrucci.c2" . 0)
   (let ((e '())
        (c0 0)
        (oct 0)
-       (match (string-match "^(.*)([_^])([1-9][0-9]*)$" clef-name)))
+       (style 'default)
+       (match (string-match "^(.*)([_^])([^0-9a-zA-Z]*)([1-9][0-9]*)([^0-9a-zA-Z]*)$" clef-name)))
     (if match
        (begin
          (set! clef-name (match:substring match 1))
          (set! oct
                (* (if (equal? (match:substring match 2) "^") -1 1)
-                  (- (string->number (match:substring match 3)) 1)))))
+                  (- (string->number (match:substring match 4)) 1)))
+          (set! style
+                (cond ((equal? (match:substring match 3) "(") 'parenthesized)
+                      ((equal? (match:substring match 3) "[") 'bracketed)
+                      (else style)))))
     (set! e (assoc-get clef-name supported-clefs))
     (if e
-       (let* ((musics (map make-prop-set
-                           `(((symbol . clefGlyph) (value . ,(car e)))
-                             ((symbol . middleCClefPosition)
-                              (value . ,(+ oct
-                                           (cadr e)
-                                           (assoc-get (car e) c0-pitch-alist))))
-                             ((symbol . clefPosition) (value . ,(cadr e)))
-                             ((symbol . clefOctavation) (value . ,(- oct))))))
+       (let* ((prop-list `(((symbol . clefGlyph) (value . ,(car e)))
+                            ((symbol . middleCClefPosition)
+                             (value . ,(+ oct
+                                          (cadr e)
+                                          (assoc-get (car e) c0-pitch-alist))))
+                            ((symbol . clefPosition) (value . ,(cadr e)))
+                            ((symbol . clefOctavation) (value . ,(- oct)))))
+               ;; the clefOctavationStyle property is set only when
+               ;; not 'default to calm display-lily-tests.scm
+               (prop-list (if (eq? style 'default)
+                              prop-list
+                              (append
+                                prop-list
+                                `(((symbol . clefOctavationStyle)
+                                   (value . ,style))))))
+              (musics (map make-prop-set prop-list))
               (recalc-mid-C (make-music 'ApplyContext))
               (seq (make-music 'SequentialMusic
                                'elements (append musics (list recalc-mid-C))))
   (let ((e '())
        (c0 0)
        (oct 0)
-       (match (string-match "^(.*)([_^])([1-9][0-9]*)$" clef-name)))
+       (style 'default)
+       (match (string-match "^(.*)([_^])([^0-9a-zA-Z]*)([1-9][0-9]*)([^0-9a-zA-Z]*)$" clef-name)))
     (if match
        (begin
          (set! clef-name (match:substring match 1))
          (set! oct
                (* (if (equal? (match:substring match 2) "^") -1 1)
-                  (- (string->number (match:substring match 3)) 1)))))
+                  (- (string->number (match:substring match 4)) 1)))
+          (set! style
+                (cond ((equal? (match:substring match 3) "(") 'parenthesized)
+                      ((equal? (match:substring match 3) "[") 'bracketed)
+                      (else style)))))
     (set! e (assoc-get clef-name supported-clefs))
     (if e
-       (let* ((musics (map make-prop-set
-                           `(((symbol . cueClefGlyph) (value . ,(car e)))
-                             ((symbol . middleCCuePosition)
-                              (value . ,(+ oct
-                                           (cadr e)
-                                           (assoc-get (car e) c0-pitch-alist))))
-                             ((symbol . cueClefPosition) (value . ,(cadr e)))
-                             ((symbol . cueClefOctavation) (value . ,(- oct))))))
+       (let* ((prop-list `(((symbol . cueClefGlyph) (value . ,(car e)))
+                            ((symbol . middleCCuePosition)
+                             (value . ,(+ oct
+                                          (cadr e)
+                                          (assoc-get (car e) c0-pitch-alist))))
+                            ((symbol . cueClefPosition) (value . ,(cadr e)))
+                            ((symbol . cueClefOctavation) (value . ,(- oct)))))
+               (prop-list (if (eq? style 'default)
+                              prop-list
+                              (append
+                                prop-list
+                                `(((symbol . cueClefOctavationStyle)
+                                   (value . ,style))))))
+              (musics (map make-prop-set prop-list))
               (recalc-mid-C (make-music 'ApplyContext))
               (seq (make-music 'SequentialMusic
                                'elements (append musics (list recalc-mid-C))))
                        `((symbol . cueClefGlyph)
                          (symbol . middleCCuePosition)
                          (symbol . cueClefPosition)
-                         (symbol . cueClefOctavation))))
+                         (symbol . cueClefOctavation)
+                         (symbol . cueClefOctavationStyle))))
         (recalc-mid-C (make-music 'ApplyContext))
         (seq (make-music 'SequentialMusic
                          'elements (append musics (list recalc-mid-C))))
index 7deeeeb4815615f4ffb5e9ff48b1dcda321a716a..279123222ba2dbff58f9054e06494c026f9a2c1c 100644 (file)
@@ -20,7 +20,7 @@
 
 (define-class <Voice-state> ()
   (event-list #:init-value '() #:accessor events #:init-keyword #:events)
-  (when-moment #:accessor when #:init-keyword #:when)
+  (when-moment #:accessor moment #:init-keyword #:moment)
   (tuning #:accessor tuning #:init-keyword #:tuning)
   (split-index #:accessor split-index)
   (vector-index)
@@ -32,7 +32,7 @@
   (spanner-state #:init-value '() #:accessor span-state))
 
 (define-method (write (x <Voice-state> ) file)
-  (display (when x) file)
+  (display (moment x) file)
   (display " evs = " file)
   (display (events x) file)
   (display " active = " file)
@@ -58,7 +58,7 @@
   (configuration #:init-value '() #:accessor configuration)
   ;; Allow overriding split configuration, takes precedence over configuration
   (forced-configuration #:init-value #f #:accessor forced-configuration)
-  (when-moment #:accessor when #:init-keyword #:when)
+  (when-moment #:accessor moment #:init-keyword #:moment)
   ;; voice-states are states starting with the Split-state or later
   ;;
   (is #:init-keyword #:voice-states #:accessor voice-states)
@@ -66,7 +66,7 @@
 
 
 (define-method (write (x <Split-state> ) f)
-  (display (when x) f)
+  (display (moment x) f)
   (display " = " f)
   (display (configuration x) f)
   (if (synced? x)
@@ -83,7 +83,7 @@
 (define (make-voice-states evl)
   (let ((vec (list->vector (map (lambda (v)
                                  (make <Voice-state>
-                                   #:when (caar v)
+                                   #:moment (caar v)
                                    #:tuning (cdar v)
                                    #:events (map car (cdr v))))
                                evl))))
@@ -100,15 +100,15 @@ Voice-state objects
   (define (helper ss-idx ss-list idx1 idx2)
     (let* ((state1 (if (< idx1 (vector-length vs1)) (vector-ref vs1 idx1) #f))
           (state2 (if (< idx2 (vector-length vs2)) (vector-ref vs2 idx2) #f))
-          (min (cond ((and state1 state2) (moment-min (when state1) (when state2)))
-                     (state1 (when state1))
-                     (state2 (when state2))
+          (min (cond ((and state1 state2) (moment-min (moment state1) (moment state2)))
+                     (state1 (moment state1))
+                     (state2 (moment state2))
                      (else #f)))
-          (inc1 (if (and state1 (equal? min (when state1))) 1 0))
-          (inc2 (if (and state2 (equal? min (when state2))) 1 0))
+          (inc1 (if (and state1 (equal? min (moment state1))) 1 0))
+          (inc2 (if (and state2 (equal? min (moment state2))) 1 0))
           (ss-object (if min
                          (make <Split-state>
-                           #:when min
+                           #:moment min
                            #:voice-states (cons state1 state2)
                            #:synced (= inc1 inc2))
                          #f)))
@@ -402,7 +402,7 @@ Only set if not set previously.
                         (new-active1 (span-state vs1))
                         (new-active2 (span-state vs2)))
                     (if #f ; debug
-                        (display (list (when now-state) result-idx
+                        (display (list (moment now-state) result-idx
                                        active1 "->" new-active1
                                        active2 "->" new-active2
                                        "\n")))
@@ -459,7 +459,7 @@ Only set if not set previously.
       (define (current-voice-state now-state voice-num)
        (define vs ((if (= 1 voice-num) car cdr)
                    (voice-states now-state)))
-       (if (or (not vs) (equal? (when now-state) (when vs)))
+       (if (or (not vs) (equal? (moment now-state) (moment vs)))
            vs
            (previous-voice-state vs)))
 
@@ -475,7 +475,7 @@ the mark when there are no spanners active.
                   (silent-state (current-voice-state now-state (if (equal? type 'solo1) 2 1)))
                   (silent-notes (if silent-state (note-events silent-state) '()))
                   (solo-notes (if solo-state (note-events solo-state) '())))
-             ;; (display (list "trying " type " at "  (when now-state) solo-state silent-state  "\n"))
+             ;; (display (list "trying " type " at "  (moment now-state) solo-state silent-state        "\n"))
              (cond ((not (equal? (configuration now-state) 'apart))
                     current-idx)
                    ((> (length silent-notes) 0) start-idx)
@@ -509,18 +509,18 @@ the mark when there are no spanners active.
               (notes2 (if vs2 (note-events vs2) '()))
               (n1 (length notes1))
               (n2 (length notes2)))
-         ;; (display (list "analyzing step " result-idx "  moment " (when now-state) vs1 vs2  "\n"))
+         ;; (display (list "analyzing step " result-idx "  moment " (moment now-state) vs1 vs2  "\n"))
          (max
           ;; we should always increase.
           (cond ((and (= n1 0) (= n2 0))
                  (put 'apart-silence)
                  (1+ result-idx))
                 ((and (= n2 0)
-                      (equal? (when vs1) (when now-state))
+                      (equal? (moment vs1) (moment now-state))
                       (null? (previous-span-state vs1)))
                  (try-solo 'solo1 result-idx result-idx))
                 ((and (= n1 0)
-                      (equal? (when vs2) (when now-state))
+                      (equal? (moment vs2) (moment now-state))
                       (null? (previous-span-state vs2)))
                  (try-solo 'solo2 result-idx result-idx))
 
@@ -561,7 +561,7 @@ the mark when there are no spanners active.
     ;; (display result)
     (set! result (map
                  ;; forced-configuration overrides, if it is set
-                 (lambda (x) (cons (when x) (or (forced-configuration x) (configuration x))))
+                 (lambda (x) (cons (moment x) (or (forced-configuration x) (configuration x))))
                  (vector->list result)))
     (if #f ;; pc-debug
         (display result))
diff --git a/scm/scheme-engravers.scm b/scm/scheme-engravers.scm
new file mode 100644 (file)
index 0000000..1709db1
--- /dev/null
@@ -0,0 +1,103 @@
+;;;; This file is part of LilyPond, the GNU music typesetter.
+;;;;
+;;;; Copyright (C) 2012 David Nalesnik <david.nalesnik@gmail.com>
+;;;;
+;;;; LilyPond is free software: you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation, either version 3 of the License, or
+;;;; (at your option) any later version.
+;;;;
+;;;; LilyPond is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+
+
+(define-public (Measure_counter_engraver context)
+  "This engraver numbers ranges of measures, which is useful in parts as an
+aid for counting repeated measures.  There is no requirement that the
+affected measures be repeated, however.  The user delimits the area to
+receive a count with @code{\\startMeasureCount} and
+@code{\\stopMeasureCount}.
+
+Each element of a count is a spanner, and a count is thus a series of
+spanners.  Each spanner is bounded by the first @code{CommandColumn} of
+successive measures, and boundaries are shared by adjoining spanners."
+  (let ((count-spanner '()) ; a single element of the count
+        (go? #f) ; is the count in progress?
+        (stop? #f) ; do we end the count?
+        (last-measure-seen 0)
+        (new-measure? #f)
+        (elapsed 0))
+
+    (make-engraver
+      (listeners ((measure-counter-event engraver event)
+        (set! last-measure-seen (ly:context-property context 'currentBarNumber))
+        (set! new-measure? #t)
+        (cond
+          ((and (= START (ly:event-property event 'span-direction))
+                go?)
+           (begin
+             (set! stop? #t)
+             (ly:input-warning
+               (ly:event-property event 'origin)
+               "count not ended before another begun")))
+          ((= START (ly:event-property event 'span-direction))
+           (set! go? #t))
+          ((= STOP (ly:event-property event 'span-direction))
+           (begin
+             (set! stop? #t)
+             (set! go? #f))))))
+
+      ((process-music trans)
+        (let ((col (ly:context-property context 'currentCommandColumn))
+              (now (ly:context-property context 'measurePosition))
+              (current-bar (ly:context-property context 'currentBarNumber)))
+          ; If the counter has been started, make sure we're in a new bar
+          ; before finishing a count-spanner and starting a new one.
+          ; Since we consider all CommandColumns encountered, we need this
+          ; check so that a count-spanner is not created for each pair.
+          (if (and (ly:grob? count-spanner)
+                   (> current-bar last-measure-seen))
+              (set! new-measure? #t))
+          (if new-measure?
+              (begin
+                ; Check if we have the first column of the measure.
+                ; The possibility of initial grace notes is considered.
+                (if (moment<=? now ZERO-MOMENT)
+                    (begin
+                      ; If we have the first column, finish the previous
+                      ; counter-spanner (if there is one).
+                      (if (ly:grob? count-spanner)
+                          (begin
+                            (ly:spanner-set-bound! count-spanner RIGHT col)
+                            (ly:pointer-group-interface::add-grob count-spanner 'columns col)
+                            (ly:engraver-announce-end-grob trans count-spanner col)
+                            (set! count-spanner '())))
+                      ; if count is over, reset variables
+                      (if stop?
+                          (begin
+                            (set! elapsed 0)
+                            (set! stop? #f)))
+                      ; if count is in progress, begin a counter object
+                      (if go?
+                          (let* ((c (ly:engraver-make-grob trans 'MeasureCounter col))
+                                 (counter (ly:grob-property c 'count-from)))
+                            (ly:spanner-set-bound! c LEFT col)
+                            (ly:pointer-group-interface::add-grob c 'columns col)
+                            (set! (ly:grob-property c 'count-from) (+ counter elapsed))
+                            (set! count-spanner c)
+                            (set! elapsed (1+ elapsed))))
+              (set! new-measure? #f)))))
+          (set! last-measure-seen current-bar)))
+
+      ((finalize trans)
+       (if go?
+           (begin
+             (set! go? #f)
+             (ly:grob-suicide! count-spanner)
+             (set! count-spanner '())
+             (ly:warning "measure count left unfinished")))))))
index 0ecc9abe8ed4f4206f351b822d5973497b612013..9b0db9a3fd4617e1ac786cfe95e077910a567473 100644 (file)
@@ -324,55 +324,55 @@ defined by @code{fill}."
       (cons (min-max-crawler min cddr possible-extrema)
             (min-max-crawler max cddr possible-extrema)))))
 
-(define (path-min-max origin pointlist)
-
-  (define (line-part-min-max x1 x2)
-    (list (min x1 x2) (max x1 x2)))
-
-  (define (bezier-part-min-max x1 x2 x3 x4)
-    ((lambda (x) (list (reduce min 10000 x) (reduce max -10000 x)))
-      (map
-       (lambda (x)
-         (+ (* x1 (expt (- 1 x) 3))
-            (+ (* 3 (* x2 (* (expt (- 1 x) 2) x)))
-               (+ (* 3 (* x3 (* (- 1 x) (expt x 2))))
-                  (* x4 (expt x 3))))))
-       (if (< (+ (expt x2 2) (+ (expt x3 2) (* x1 x4)))
-              (+ (* x1 x3) (+ (* x2 x4) (* x2 x3))))
-           (list 0.0 1.0)
-           (filter
-             (lambda (x) (and (>= x 0) (<= x 1)))
-             (append
-               (list 0.0 1.0)
-               (map (lambda (op)
-                      (if (not (eqv? 0.0
-                                     (- (+ x1 (* 3 x3)) (+ x4 (* 3 x2)))))
-                          ;; Zeros of the bezier curve
-                          (/ (+ (- x1 (* 2 x2))
-                                (op x3
-                                    (sqrt (- (+ (expt x2 2)
-                                                (+ (expt x3 2) (* x1 x4)))
-                                             (+ (* x1 x3)
-                                                (+ (* x2 x4) (* x2 x3)))))))
-                             (- (+ x1 (* 3 x3)) (+ x4 (* 3 x2))))
-                          ;; Apply L'hopital's rule to get the zeros if 0/0
-                          (* (op 0 1)
-                             (/ (/ (- x4 x3) 2)
-                                (sqrt (- (+ (* x2 x2)
-                                            (+ (* x3 x3) (* x1 x4)))
-                                         (+ (* x1 x3)
-                                            (+ (* x2 x4) (* x2 x3)))))))))
-                    (list + -))))))))
-
-  (define (bezier-min-max x1 y1 x2 y2 x3 y3 x4 y4)
-    (map (lambda (x)
-          (apply bezier-part-min-max x))
-        `((,x1 ,x2 ,x3 ,x4) (,y1 ,y2 ,y3 ,y4))))
+(define (line-part-min-max x1 x2)
+  (list (min x1 x2) (max x1 x2)))
+
+(define (bezier-part-min-max x1 x2 x3 x4)
+  ((lambda (x) (list (reduce min 10000 x) (reduce max -10000 x)))
+    (map
+      (lambda (x)
+        (+ (* x1 (expt (- 1 x) 3))
+           (+ (* 3 (* x2 (* (expt (- 1 x) 2) x)))
+              (+ (* 3 (* x3 (* (- 1 x) (expt x 2))))
+                 (* x4 (expt x 3))))))
+      (if (< (+ (expt x2 2) (+ (expt x3 2) (* x1 x4)))
+             (+ (* x1 x3) (+ (* x2 x4) (* x2 x3))))
+          (list 0.0 1.0)
+          (filter
+            (lambda (x) (and (>= x 0) (<= x 1)))
+            (append
+              (list 0.0 1.0)
+              (map (lambda (op)
+                     (if (not (eqv? 0.0
+                                    (exact->inexact (- (+ x1 (* 3 x3)) (+ x4 (* 3 x2))))))
+                         ;; Zeros of the bezier curve
+                         (/ (+ (- x1 (* 2 x2))
+                               (op x3
+                                   (sqrt (- (+ (expt x2 2)
+                                               (+ (expt x3 2) (* x1 x4)))
+                                            (+ (* x1 x3)
+                                               (+ (* x2 x4) (* x2 x3)))))))
+                            (- (+ x1 (* 3 x3)) (+ x4 (* 3 x2))))
+                         ;; Apply L'hopital's rule to get the zeros if 0/0
+                         (* (op 0 1)
+                            (/ (/ (- x4 x3) 2)
+                               (sqrt (- (+ (* x2 x2)
+                                           (+ (* x3 x3) (* x1 x4)))
+                                        (+ (* x1 x3)
+                                           (+ (* x2 x4) (* x2 x3)))))))))
+                   (list + -))))))))
+
+(define (bezier-min-max x1 y1 x2 y2 x3 y3 x4 y4)
+  (map (lambda (x)
+         (apply bezier-part-min-max x))
+       `((,x1 ,x2 ,x3 ,x4) (,y1 ,y2 ,y3 ,y4))))
+
+(define (line-min-max x1 y1 x2 y2)
+  (map (lambda (x)
+         (apply line-part-min-max x))
+       `((,x1 ,x2) (,y1 ,y2))))
 
-  (define (line-min-max x1 y1 x2 y2)
-    (map (lambda (x)
-          (apply line-part-min-max x))
-        `((,x1 ,x2) (,y1 ,y2))))
+(define (path-min-max origin pointlist)
 
   ((lambda (x)
      (list
index 33acfbc7b42178a6f2c5ca585a989d73d6c27bdf..a0b39edfe4d6cff355b8ed21eb7ecd4965fd2f14 100644 (file)
 ;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; clefs
+
+(define-public (clef-octavation-markup oct style)
+  "The octavation sign formatting function.  @var{oct} is supposed to be
+a string holding the octavation number, @var{style} determines the
+way the octavation number is displayed."
+  (let* ((delim (if (symbol? style)
+                    (case style
+                      ((parenthesized) (cons "(" ")"))
+                      ((bracketed) (cons "[" "]"))
+                      (else (cons "" "")))
+                    (cons "" "")))
+         (text (string-concatenate (list (car delim) oct (cdr delim)))))
+
+       (make-vcenter-markup text)))
+
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; metronome marks
 
@@ -264,6 +282,12 @@ dot placement entries."
     (length (filter (lambda (x) (not (null? x)))
                     art-list)))
 
+  (define (string-number event)
+    "Get the string-number from @var{event}.  Return @var{#f}
+if no string-number is present."
+    (let ((num (ly:event-property event 'string-number)))
+      (and (integer? num) (positive? num) num)))
+
   (define (determine-frets-and-strings
            notes
            defined-strings
@@ -307,14 +331,6 @@ if no fingering is present."
             articulations)
        finger-found))
 
-    (define (string-number event)
-      "Get the string-number from @var{event}.  Return @var{#f}
-if no string-number is present."
-      (let ((num (ly:event-property event 'string-number)))
-       (if (number? num)
-         num
-         #f)))
-
     (define (delete-free-string string)
       (if (number? string)
        (set! free-strings
@@ -378,16 +394,8 @@ the current tuning?"
                   defined-strings defined-fingers))
 
     ;;; body of determine-frets-and-strings
-    (let* ((pitch-alist (apply (lambda (mylist)
-                                 (let ((index -1))
-                                   (map (lambda (note)
-                                          (begin
-                                            (set! index (1+ index))
-                                            (cons (note-pitch note)
-                                                  index)))
-                                        mylist)))
-                               notes '()))
-           (pitches (map note-pitch notes)))
+    (let* ((pitches (map note-pitch notes))
+           (pitch-alist (map cons pitches (iota (length pitches)))))
 
       ;; handle notes with strings assigned and fingering of 0
       (for-each
@@ -509,7 +517,7 @@ chords.  Returns a placement-list."
          (defined-strings (map (lambda (x)
                                  (if (null? x)
                                      x
-                                     (ly:event-property x 'string-number)))
+                                     (or (string-number x) '())))
                                (car specified-info)))
          (defined-fingers (map (lambda (x)
                                  (if (null? x)
index b3170cdbf95ad51766b98e4f88d8a6d5da8238de..f270c000e37ae8b5a47c970a351d3d89fbc344b5 100644 (file)
@@ -1,6 +1,6 @@
 depth = ..
 
-SUBDIRS=auxiliar build
+SUBDIRS=build
 
 SEXECUTABLES=convert-ly lilypond-book abc2ly etf2ly midi2ly lilypond-invoke-editor musicxml2ly lilysong lilymidi
 
index 15161032f2b251155b69cfc3b1ef4c58fb5775c0..77d47d7dcdbd453f41d3fa47d9f784e752ff13d7 100644 (file)
@@ -233,7 +233,7 @@ def dump_default_bar (outf):
     Nowadays abc2ly outputs explicits barlines (?)
     """
     ## < 2.2
-    outf.write ("\n\\set Score.defaultBarType = \"empty\"\n")
+    outf.write ("\n\\set Score.defaultBarType = \"\"\n")
 
 
 def dump_slyrics (outf):
@@ -1124,12 +1124,12 @@ old_bar_dict = {
 '|]' : '|.',
 '||' : '||',
 '[|' : '||',
-':|' : ':|',
+':|' : ':|.',
 '|:' : '|:',
-'::' : ':|:',
+'::' : ':|.|:',
 '|1' : '|',
 '|2' : '|',
-':|2' : ':|',
+':|2' : ':|.',
 '|' :  '|'
 }
 bar_dict = {
diff --git a/scripts/auxiliar/GNUmakefile b/scripts/auxiliar/GNUmakefile
deleted file mode 100644 (file)
index d70ff71..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-depth=../..
-
-EXTRA_DIST_FILES = $(call src-wildcard,*.sh) $(call src-wildcard,*.py)
-EXTRA_DIST_FILES += pfx2ttf.fontforge
-EXTRA_DIST_FILES += lily-git.tcl
-EXTRA_DIST_FILES += ref_check.tely
-
-include $(depth)/make/stepmake.make
-
-default:
diff --git a/scripts/auxiliar/fixscm.sh b/scripts/auxiliar/fixscm.sh
new file mode 100755 (executable)
index 0000000..9c8f2f3
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Indent and untabify source files (given by their
+# filenames in the command line), according to
+# LilyPond source style standards.
+
+elisp_expression='(progn
+  (delete-trailing-whitespace)
+  (indent-region (point-min) (point-max) nil)
+  (untabify (point-min) (point-max))
+  (save-buffer))'
+for f in "$@"; do
+  emacs -batch "$f" --eval "${elisp_expression}"
+done
diff --git a/scripts/auxiliar/show_skyline_command.py b/scripts/auxiliar/show_skyline_command.py
new file mode 100644 (file)
index 0000000..6fc6314
--- /dev/null
@@ -0,0 +1,156 @@
+# This file is part of LilyPond, the GNU music typesetter.
+#
+# Copyright (C) 2012 Joe Neeman <joeneeman@gmail.com>
+#
+# LilyPond is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# LilyPond is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+
+# A gdb plugin debugging skylines.  To use the plugin, make sure that
+# skyline_viewer.py is in your PATH, then add
+# source /path/to/show_skyline_command.py
+# to your .gdbinit file.  The 'vsky' and 'hsky' commands for
+# drawing skylines will then be available in gdb.
+
+import gdb
+from subprocess import Popen, PIPE
+from math import isinf
+
+SKYLINE_VIEWER = 'skyline_viewer.py'
+
+# Function taken from GCC
+def find_type(orig, name):
+    typ = orig.strip_typedefs()
+    while True:
+        search = str(typ) + '::' + name
+        try:
+            return gdb.lookup_type(search)
+        except RuntimeError:
+            pass
+        # The type was not found, so try the superclass.    We only need
+        # to check the first superclass, so we don't bother with
+        # anything fancier here.
+        field = typ.fields()[0]
+        if not field.is_base_class:
+            raise ValueError, "Cannot find type %s::%s" % (str(orig), name)
+        typ = field.type
+
+# Class adapted from GCC
+class ListIterator:
+    def __init__ (self, val):
+        self.val = val
+        self.nodetype = find_type (val.type, '_Node')
+        self.nodetype = self.nodetype.strip_typedefs ().pointer ()
+
+        head = val['_M_impl']['_M_node']
+        self.base = head['_M_next']
+        self.head = head.address
+
+    def __iter__ (self):
+        return self
+
+    def next (self):
+        if self.base == self.head:
+                raise StopIteration
+        elt = self.base.cast (self.nodetype).dereference ()
+        self.base = elt['_M_next']
+        return elt['_M_data']
+
+def to_list (list_val):
+    return list (ListIterator (list_val))
+
+def skyline_to_lines (sky_value):
+    """Turns a gdb.Value into a list of line segments."""
+    sky_d = int (sky_value['sky_'])
+    buildings = to_list (sky_value['buildings_'])
+
+    def bld_to_line (bld):
+        y_intercept = float (bld['y_intercept_']) * sky_d
+        slope = float (bld['slope_']) * sky_d
+        x1 = float (bld['start_'])
+        x2 = float (bld['end_'])
+
+        if isinf (y_intercept) or isinf (x1) or isinf (x2):
+            return None
+        return (x1, y_intercept + slope * x1, x2, y_intercept + slope * x2)
+
+    ret = map (bld_to_line, buildings)
+    return [r for r in ret if r is not None]
+
+viewer = Popen(SKYLINE_VIEWER, stdin=PIPE)
+def add_skyline(lines):
+    global viewer
+    try:
+        for line in lines:
+            x1, y1, x2, y2 = line
+            viewer.stdin.write('(%f,%f) (%f,%f)\n' % (x1, y1, x2, y2))
+        viewer.stdin.write('\n')
+    except IOError:
+        # If the pipe is broken, it probably means that someone closed
+        # the viewer window. Open another one.
+        viewer = Popen(SKYLINE_VIEWER, stdin=PIPE)
+        add_skyline(lines)
+
+class ShowSkylineCommand (gdb.Command):
+    "Show a skyline graphically."
+
+    def __init__ (self, command_name):
+        super (ShowSkylineCommand, self).__init__ (command_name,
+                                                 gdb.COMMAND_DATA,
+                                                 gdb.COMPLETE_SYMBOL, False)
+
+    def to_lines (self, skyline):
+        pass
+
+    def invoke (self, arg, from_tty):
+        global plot
+
+        val = gdb.parse_and_eval (arg)
+        typ = val.type
+
+        # If they passed in a reference or pointer to a skyline,
+        # dereference it.
+        if typ.code == gdb.TYPE_CODE_PTR or typ.code == gdb.TYPE_CODE_REF:
+            val = val.referenced_value ()
+            typ = val.type
+
+        if typ.tag == 'Skyline_pair':
+            sky = val['skylines_']
+            arr = sky['array_']
+            add_skyline (self.to_lines (arr[0]))
+            add_skyline (self.to_lines (arr[1]))
+
+        elif typ.tag == 'Skyline':
+            add_skyline (self.to_lines (val))
+
+class ShowVSkylineCommand (ShowSkylineCommand):
+    "Show a vertical skyline."
+
+    def __init__ (self):
+        super (ShowVSkylineCommand, self).__init__ ("vsky")
+
+    def to_lines (self, skyline):
+        return skyline_to_lines (skyline)
+
+class ShowHSkylineCommand (ShowSkylineCommand):
+    "Show a horizontal skyline."
+
+    def __init__ (self):
+        super (ShowHSkylineCommand, self).__init__ ("hsky")
+
+    def to_lines (self, skyline):
+        lines = skyline_to_lines (skyline)
+        # Because it is a horizontal skyline, reflect around the line y=x.
+        return [(y1, x1, y2, x2) for (x1, y1, x2, y2) in lines]
+
+ShowHSkylineCommand()
+ShowVSkylineCommand()
diff --git a/scripts/auxiliar/skyline_viewer.py b/scripts/auxiliar/skyline_viewer.py
new file mode 100755 (executable)
index 0000000..83e45f8
--- /dev/null
@@ -0,0 +1,159 @@
+#!/usr/bin/env python
+
+# This file is part of LilyPond, the GNU music typesetter.
+#
+# Copyright (C) 2012 Joe Neeman <joeneeman@gmail.com>
+#
+# LilyPond is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# LilyPond is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+
+# A GTK+ program for debugging skylines. The program reads a sequence
+# of line segments from stdin (one line segment per line of stdin, in the format
+# '(x1, y1) (x2, y2)'). A skyline is terminated by an empty line, which
+# causes the skyline to be displayed on the screen.
+
+from threading import Thread
+from math import isinf
+import gtk
+import gobject
+import goocanvas
+import sys
+import re
+
+class GtkSkylineCanvas (goocanvas.Canvas):
+    """A Canvas for displaying skylines."""
+    def __init__ (self):
+        super (GtkSkylineCanvas, self).__init__ ()
+        self.connect ('size-allocate', GtkSkylineCanvas.rescale)
+        self.x_min = float ('inf')
+        self.x_max = float ('-inf')
+        self.y_min = float ('inf')
+        self.y_max = float ('-inf')
+
+        self.colors = ('black', 'red', 'green', 'blue', 'maroon', 'olive', 'teal')
+        self.cur_color_index = 0
+
+    def rescale (self, allocation):
+        width = (self.x_max - self.x_min + 1) * 1.1
+        height = (self.y_max - self.y_min + 1) * 1.1
+        if width <= 0 or height <= 0:
+            return
+
+        scale_x = allocation.width / width
+        scale_y = allocation.height / height
+        scale = min (scale_x, scale_y)
+        self.set_scale (scale)
+
+        center_x = (self.x_max + self.x_min) / 2
+        center_y = (self.y_max + self.y_min) / 2
+        actual_width = allocation.width / scale
+        actual_height = allocation.height / scale
+        actual_min_x = center_x - actual_width / 2
+        actual_max_x = center_x + actual_width / 2
+        actual_min_y = center_y - actual_height / 2
+        actual_max_y = center_y + actual_height / 2
+
+        self.set_bounds (actual_min_x, actual_min_y, actual_max_x, actual_max_y)
+        self.scroll_to (actual_min_x, actual_min_y)
+
+    def add_skyline (self, lines):
+        """Adds a skyline to the current canvas, in a new color.
+
+        The canvas will be rescaled, if necessary, to make room for the
+        new skyline."""
+        # Flip vertically, because goocanvas thinks higher numbers are
+        # further down, while lilypond thinks they're further up.
+        lines = [(x1, -y1, x2, -y2) for (x1, y1, x2, y2) in lines]
+
+        color = self.colors[self.cur_color_index]
+        self.cur_color_index = (self.cur_color_index + 1) % len (self.colors)
+
+        # Update the bounding box of the skylines.
+        x_vals = [s[0] for s in lines] + [s[2] for s in lines]
+        y_vals = [s[1] for s in lines] + [s[3] for s in lines]
+        self.x_min = min ([self.x_min] + x_vals)
+        self.x_max = max ([self.x_max] + x_vals)
+        self.y_min = min ([self.y_min] + y_vals)
+        self.y_max = max ([self.y_max] + y_vals)
+
+        # Add the lines to the canvas.
+        root = self.get_root_item ()
+        for (x1, y1, x2, y2) in lines:
+            goocanvas.polyline_new_line (root, x1, y1, x2, y2,
+                    stroke_color=color,
+                    line_width=0.05)
+        self.rescale (self.get_allocation ())
+
+# We want to run the gtk main loop in a separate thread so that
+# the main thread can be responsible for reading stdin.
+class SkylineWindowThread (Thread):
+    """A thread that runs a Gtk.Window displaying a skyline."""
+
+    def run (self):
+        gtk.gdk.threads_init ()
+        self.window = None
+        self.canvas = None
+        gtk.main ()
+
+    # This should only be called from the Gtk main loop.
+    def _destroy_window (self, window):
+        sys.exit (0)
+
+    # This should only be called from the Gtk main loop.
+    def _setup_window (self):
+        if self.window is None:
+            self.window = gtk.Window ()
+            self.canvas = GtkSkylineCanvas ()
+            self.window.add (self.canvas)
+            self.window.connect ("destroy", self._destroy_window)
+            self.window.show_all ()
+
+    # This should only be called from the Gtk main loop.
+    def _add_skyline (self, lines):
+        self._setup_window ()
+        self.canvas.add_skyline (lines)
+
+    def add_skyline (self, lines):
+        # Copy the lines, just in case someone modifies them.
+        gobject.idle_add (self._add_skyline, list (lines))
+
+thread = SkylineWindowThread ()
+thread.setDaemon (True)
+thread.start ()
+
+def lines(infile):
+    line = infile.readline()
+    while len(line) > 0:
+        yield line[:-1]
+        line = infile.readline()
+
+point_re_str = r'\(([a-z.0-9-]*) *,([a-z0-9.-]*)\)'
+line_re_str = point_re_str + r' +' + point_re_str
+line_re = re.compile (line_re_str)
+
+# The main loop just reads lines from stdin and feeds them to the
+# display.
+current_skyline = []
+for line in lines(sys.stdin):
+    if not line:
+        thread.add_skyline(current_skyline)
+        current_skyline = []
+        continue
+
+    m = re.search (line_re, line)
+    if m is None:
+        print('line did not match')
+    else:
+        pts = map(float, m.groups())
+        if not any(map(isinf, pts)):
+            current_skyline.append(pts)
index 5407e1adfb6d489bfee26a42b5fa76bc98fc48bd..5a62a47a98f3814094adab057e805b5f75c6ad61 100644 (file)
@@ -2,8 +2,6 @@ depth = ../..
 
 STEPMAKE_TEMPLATES=script install po
 
-EXTRA_DIST_FILES = website-known-missing-files.txt
-
 include $(depth)/make/stepmake.make
 
 # Should we install these? This should be handled by sysadmin or
index c71976dec123f64b50457d055ffa45dd6f5aa14a..b76a171a09263bd64c9ba1970a1b0439845aa3ac 100644 (file)
@@ -6,7 +6,7 @@ import tempfile
 
 # usage:
 def usage ():
-    print 'usage: %s [-s style] [-o <outfile>] [-q] BIBFILES...'
+    print 'usage: bib2texi.py [-s style] [-o <outfile>] [-q] BIBFILES...'
     print '-q suppresses most output'
 
 (options, files) = getopt.getopt (sys.argv[1:], 's:o:hq', [])
@@ -32,6 +32,11 @@ if not files:
    usage ()
    sys.exit (2)
 
+marker = """@c This file was autogenerated
+@c     from: %s
+@c     by:   %s
+
+""" % (", ".join(files), sys.argv[0])
 
 def strip_extension (f, ext):
     (p, e) = os.path.splitext (f)
@@ -84,7 +89,10 @@ if bbl.strip () == '':
     sys.stderr.write ("Bibtex generated an empty file!")
     sys.exit (1)
 
-open (output, 'w').write  (bbl)
+fout = open (output, 'w')
+fout.write (marker)
+fout.write (bbl)
+fout.close ()
 
 def cleanup (tmpfile):
     for a in ['aux','bbl', 'blg']:
index e40ff6e79b0868c210c83b24089ba2347b1965ca..f4dc066fccc6c762fb3cf4981b3a1c9a13d96217 100644 (file)
@@ -66,9 +66,15 @@ def make_macro(name, string):
     print "@end macro"
     print ""
 
+print "@c This file was autogenerated"
+print "@c     from: VERSION"
+print "@c     by:   %s" % sys.argv[0]
+print ""
 print "@c ************************ Version numbers ************"
+print ""
+
 make_macro("version", VERSION)
 make_macro("versionStable", VERSION_STABLE)
 make_macro("versionDevel", VERSION_DEVEL)
 
-
+print "@c *****************************************************"
index 62d5afbfbd28e41e70a2b6c6e96cb0d35ee56f4b..cb785b43a0ae28e51edf09d8d3381086b8f9eae3 100644 (file)
@@ -1,6 +1,6 @@
 #!@PYTHON@
 # -*- coding: utf-8 -*-
-# create-version-itexi.py
+# create-weblinks-itexi.py
 
 """ when being called on lilypond.org, pass it the location of the
 top source dir on the command-line. """
@@ -58,6 +58,10 @@ translations = {
 
         'Regression tests for ': 'Regressionstests für ',
         'PDF of regtests for ': 'PDF der Regressionstests für ',
+        'abc2ly Regression tests for ': 'abc2ly Regressionstests für ',
+        'PDF of abc2ly regtests for ': 'PDF der abc2ly Regressionstests für ',
+        'lilypond-book Regression tests for ': 'lilypond-book Regressionstests für ',
+        'PDF of lilypond-book regtests for ': 'PDF der lilypond-book Regressionstests für ',
         'MusicXML Regression tests for ': 'MusicXML Regressionstests für ',
         'PDF of MusicXML regtests for ': 'PDF der MusicXML Regressionstests für ',
 
@@ -85,6 +89,10 @@ translations = {
 
         'Regression tests for ': 'Pruebas de regresión para ',
         'PDF of regtests for ': 'Pruebas en PDF para ',
+        'abc2ly Regression tests for ': 'Pruebas de regresión de abc2ly para ',
+        'PDF of abc2ly regtests for ': 'Pruebas de abc2ly en PDF para ',
+        'lilypond-book Regression tests for ': 'Pruebas de regresión de lilypond-book para ',
+        'PDF of lilypond-book regtests for ': 'Pruebas de lilypond-book en PDF para ',
         'MusicXML Regression tests for ': 'Pruebas de regresión de MusicXML para ',
         'PDF of MusicXML regtests for ': 'Pruebas de MusicXML en PDF para ',
 
@@ -112,6 +120,10 @@ translations = {
 
         'Regression tests for ': 'Tests de régression pour ',
         'PDF of regtests for ': 'PDF des tests de régression pour ',
+        'abc2ly Regression tests for ': 'Tests de régression de abc2ly pour ',
+        'PDF of abc2ly regtests for ': 'PDF des tests de régression de abc2ly pour ',
+        'lilypond-book Regression tests for ': 'Tests de régression de lilypond-book pour ',
+        'PDF of lilypond-book regtests for ': 'PDF des tests de régression de lilypond-book pour ',
         'MusicXML Regression tests for ': 'Tests de régression de MusicXML pour ',
         'PDF of MusicXML regtests for ': 'PDF des tests de régression de MusicXML pour ',
 
@@ -137,6 +149,10 @@ translations = {
 
         'Regression tests for ': 'Regressziós tesztek - verzió: ',
         'PDF of regtests for ': 'PDF formátumban - verzió: ',
+        'abc2ly Regression tests for ': 'abc2ly regressziós tesztek - verzió: ',
+        'PDF of abc2ly regtests for ': 'PDF formátumban - verzió: ',
+        'lilypond-book Regression tests for ': 'lilypond-book regressziós tesztek - verzió: ',
+        'PDF of lilypond-book regtests for ': 'PDF formátumban - verzió: ',
         'MusicXML Regression tests for ': 'MusicXML regressziós tesztek - verzió: ',
         'PDF of MusicXML regtests for ': 'PDF formátumban - verzió: ',
 
@@ -165,6 +181,10 @@ translations = {
 
         'Regression tests for ': '回帰テスト バージョン ',
         'PDF of regtests for ': '回帰テスト (PDF 版) バージョン ',
+        'abc2ly Regression tests for ': 'abc2ly 回帰テスト バージョン ',
+        'PDF of abc2ly regtests for ': 'abc2ly 回帰テスト (PDF 版) バージョン ',
+        'lilypond-book Regression tests for ': 'lilypond-book 回帰テスト バージョン ',
+        'PDF of lilypond-book regtests for ': 'lilypond-book 回帰テスト (PDF 版) バージョン ',
         'MusicXML Regression tests for ': 'MusicXML 回帰テスト バージョン ',
         'PDF of MusicXML regtests for ': 'MusicXML 回帰テスト (PDF 版) バージョン ',
 
@@ -193,6 +213,10 @@ translations = {
 
         'Regression tests for ': 'Regressietesten voor ',
         'PDF of regtests for ': 'PDF van regressietesten voor ',
+        'abc2ly Regression tests for ': 'abc2ly regressietesten voor ',
+        'PDF of abc2ly regtests for ': 'abc2ly regressietesten voor ',
+        'lilypond-book Regression tests for ': 'lilypond-book regressietesten voor ',
+        'PDF of lilypond-book regtests for ': 'lilypond-book regressietesten voor ',
         'MusicXML Regression tests for ': 'MusicXML regressietesten voor ',
         'PDF of MusicXML regtests for ': 'MusicXML regressietesten voor ',
 
@@ -220,6 +244,10 @@ translations = {
 
         'Regression tests for ': '回归测试 ',
         'PDF of regtests for ': '回归测试的 PDF ',
+        'abc2ly Regression tests for ': 'abc2ly 回归测试 ',
+        'PDF of abc2ly regtests for ': 'abc2ly 的 PDF 回归测试 ',
+        'lilypond-book Regression tests for ': 'lilypond-book 回归测试 ',
+        'PDF of lilypond-book regtests for ': 'lilypond-book 的 PDF 回归测试 ',
         'MusicXML Regression tests for ': 'MusicXML 回归测试 ',
         'PDF of MusicXML regtests for ': 'MusicXML 的 PDF 回归测试 ',
 
@@ -275,11 +303,13 @@ for line in version_contents:
 VERSION = str(major)+'.'+str(minor)+'.'+str(patch)
 
 def _ (string, lang):
-    return translations.get (lang.split ('_')[0], {}).get (string, string)
+    return translations.get (lang.split ('_')[0], {}).get (string, None)
 
 getTrans = _
 # let's not barf, but print a warning when something's missing
 def getTrans(text, lang):
+    if not lang:
+        return text
     trans = _ (text, lang)
     if not trans:
         trans = text
@@ -287,7 +317,7 @@ def getTrans(text, lang):
     return trans
 
 def macroLang(name, lang):
-    if (lang != ''):
+    if lang:
         return name + '-' + lang
     return name
 
@@ -308,7 +338,9 @@ def make_download(name, osA, osB, version, revision, text):
     string += "}"
     make_macro(name, string)
 
-def make_download_source(name, vstring, version, lang):
+def make_download_source(name, version, lang):
+    assert "." in version
+    vstring = "v%s.%s" % tuple(version.split(".", 2)[0:2])
     string = "@uref{http://download.linuxaudio.org/lilypond/sources/"
     string += vstring + "/"
     string += "lilypond-" + version + ".tar.gz"
@@ -490,30 +522,40 @@ def make_doctarball_links(name, version, lang):
     make_ver_link(macroLang("doctarball"+name, lang),
         url, getTrans("Doc tarball for ", lang)+version)
 
+print "@c This file was autogenerated"
+print "@c     from: VERSION"
+print "@c     by:   %s" % sys.argv[0]
+print ""
 print "@c ************************ Download binaries ************"
+print ""
+
 make_all_downloads("Stable", VERSION_STABLE)
 make_all_downloads("Devel", VERSION_DEVEL)
 
 print "@c ************************ Download source ************"
-# FIXME: icky hard-coding!  -gp
+print ""
+
 for lang in langs:
-    print "@c *********", lang, "***"
-    make_download_source("downloadStableSource","v2.14",VERSION_STABLE,lang)
-    make_download_source("downloadDevelSource","v2.15",VERSION_DEVEL,lang)
+    print "@c *********", lang or "en", "***"
+    make_download_source("downloadStableSource", VERSION_STABLE, lang)
+    make_download_source("downloadDevelSource", VERSION_DEVEL, lang)
 
 print "@c ************************ Manual links ************"
+print ""
+
 for lang in langs:
-    print "@c *********", lang, "***"
-    make_manual_links("Stable", VERSION_STABLE,lang)
-    make_manual_links("Devel", VERSION_DEVEL,lang)
+    print "@c *********", lang or "en", "***"
+    make_manual_links("Stable", VERSION_STABLE, lang)
+    make_manual_links("Devel", VERSION_DEVEL, lang)
 
-    make_doctarball_links("Stable", VERSION_STABLE,lang)
-    make_doctarball_links("Devel", VERSION_DEVEL,lang)
+    make_doctarball_links("Stable", VERSION_STABLE, lang)
+    make_doctarball_links("Devel", VERSION_DEVEL, lang)
 
 print "@c ************************ Regtest links ************"
-for lang in langs:
-    print "@c *********", lang, "***"
-    make_regtest_links("Stable", VERSION_STABLE,lang)
-    make_regtest_links("Devel", VERSION_DEVEL,lang)
-
+print ""
 
+for lang in langs:
+    print "@c *********", lang or "en", "***"
+    make_regtest_links("Stable", VERSION_STABLE, lang)
+    make_regtest_links("Devel", VERSION_DEVEL, lang)
+print "@c ***************************************************"
diff --git a/scripts/build/install.py b/scripts/build/install.py
new file mode 100644 (file)
index 0000000..9818543
--- /dev/null
@@ -0,0 +1,95 @@
+#!@PYTHON@
+import string
+import getopt
+import sys
+import os
+import shutil
+(opts, args) = getopt.getopt (sys.argv[1:], 'b:cdg:m:o:st:', [])
+transform_base = None
+group = None
+owner = None
+transform = None
+mode = None 
+copy = False
+create_dir = False
+
+for (o,a) in opts:
+    if o == '-b':
+        transform_base = a
+    elif o == '-c':
+        copy = True
+    elif o == '-d':
+        create_dir = True
+    elif o == '-g':
+        group = a
+    elif o == '-m':
+        mode = string.atoi (a, 8)
+    elif o == '-o':
+        owner = a
+    elif o == '-s':
+        strip = True
+    elif o == '-t':
+        transform = a
+    elif o == '-h':
+        print ''' Usage: $0 [OPTION]... SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 -d DIRECTORIES...
+
+In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
+In the second, create the directory path DIR.
+
+Options:
+-b=TRANSFORMBASENAME
+-c         copy source (using $cpprog) instead of moving (using $mvprog).
+-d         create directories instead of installing files.
+-g GROUP   $chgrp installed files to GROUP.
+-m MODE    $chmod installed files to MODE.
+-o USER    $chown installed files to USER.
+-s         strip installed files (using $stripprog).
+-t=TRANSFORM
+--help     display this help and exit.
+--version  display version info and exit.'''
+        sys.exit (0)
+
+if not mode:
+    if create_dir:
+        mode = 0755
+    else:
+        mode = 0644
+        
+
+chown_me = []
+
+dest = None
+if not create_dir:
+    dest = args.pop()
+
+for f in args:
+    if create_dir:
+        if os.path.isdir (f):
+            continue
+        
+        os.makedirs (f, mode=mode)
+        chown_me.append (f)
+    else:
+        if copy:
+            if os.path.exists (dest) and not os.path.isdir (dest):
+                os.remove (dest)
+            shutil.copy2 (f, dest)
+        else:
+            shutil.move (f, dest)
+
+        if os.path.isdir (dest):
+            chown_me.append (os.path.join (dest, os.path.basename (f)))
+        else:
+            chown_me.append (dest)
+
+for f in chown_me:
+    os.chmod (f, mode)
+    if group <> None or owner <> None:
+        os.chown (f, group, owner)
+    
+    
+
+        
+
index 329b412a47f921c0bbeac011d40f56393cb14fa6..ad0f7a6aa90883909cb34b58cbe7271cd7a7a59e 100644 (file)
@@ -53,6 +53,11 @@ author = "Han-Wen Nienhuys and Jan Nieuwenhuizen"
 input_filename = ""
 glob_input = ""
 template = '''\input texinfo
+
+@c This file was autogenerated
+@c     from: %s
+@c     by:   %s
+
 @setfilename %%(name)s.info
 @settitle %%(title)s
 
@@ -83,7 +88,7 @@ template = '''\input texinfo
 %s
 
 @bye
-''' % include_snippets
+''' % (", ".join(files), sys.argv[0], include_snippets)
 
 for opt in options:
     o = opt[0]
@@ -177,4 +182,4 @@ if files:
 else:
     # not Unix philosophy, but hey, at least we notice when
     # we don't distribute any .ly files.
-    sys.stderr.write ("No files specified. Doing nothing")
+    sys.stderr.write ("No files specified. Doing nothing. Use -h to display usage.")
diff --git a/scripts/build/make-version.py b/scripts/build/make-version.py
new file mode 100644 (file)
index 0000000..4b6a0aa
--- /dev/null
@@ -0,0 +1,45 @@
+#!@PYTHON@
+import re
+import sys
+
+PROGRAM = sys.argv[0]
+VERSION = sys.argv[1]
+defs = []
+for i in open (VERSION).readlines ():
+    i = re.sub ('#.*','', i)
+    m  = re.search ('([^ =]*)[\t ]*=[ \t]*([^ \t]*)[ \t]*\n', i)
+    if m:
+        defs.append ((m.group (1), m.group (2)))
+
+sys.stdout.write (r'''
+/*
+ Automatically generated from %(VERSION)s
+ by %(PROGRAM)s.
+*/
+#ifndef VERSION_HH
+#define VERSION_HH
+''' % vars ())
+
+for name, expansion in defs:
+    # GUILE leaks autoconf data into userspace. 
+    sys.stdout.write (r'''
+#ifdef %(name)s
+#undef %(name)s
+#endif /* %(name)s */
+#define %(name)s "%(expansion)s"
+''' % vars ())
+    
+if ('MY_PATCH_LEVEL', '') in defs:
+    sys.stdout.write (r'''
+#define NO_MY_PATCHLEVEL
+#define TOPLEVEL_VERSION MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL
+''')
+else:
+    sys.stdout.write (r'''
+#define TOPLEVEL_VERSION MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL "." MY_PATCH_LEVEL
+''')
+
+sys.stdout.write(r'''
+#endif /* VERSION_HH */
+''')
+    
index 33b8dac467a7af4179361954868800caa912c488..7851353fe261eac8c827babb9cc0b02d007a15f2 100644 (file)
@@ -5,13 +5,26 @@
 #
 # create hard or symbolic links to SOURCEDIR/FILES in DESTDIR
 #
-# If --prepend-suffix is specified, link to foo.bar will be called fooSUFFIX.bar.
-# Shell wildcards expansion is performed on FILES.
+# If symbolic or hard links are not provided by the operating system,
+# copies will be made instead.  However, if the operating system
+# support symbolic or hard links, then this program expects to
+# operate on a filesystem which supports them too.
+#
+# If --prepend-suffix is specified, link to foo.bar will be called
+# fooSUFFIX.bar.  Shell wildcards expansion is performed on FILES.
+#
+# No check is performed on FILES type; in particular, if FILES
+# expansions contain a directory and hard links are requested,
+# this program may fail non-gracefully.
+#
+# Attempts to make hard links across different filesystems are
+# caught and replaced by copies.
 
 import sys
 import os
 import glob
 import getopt
+import shutil
 
 optlist, args = getopt.getopt (sys.argv[1:], '', ['prepend-suffix='])
 link_type, source_dir, dest_dir = args[0:3]
@@ -36,9 +49,15 @@ else:
     insert_suffix = lambda p: p
 
 if link_type == 'symbolic':
-    link = os.symlink
+    if hasattr (os, 'symlink'):
+        link = os.symlink
+    else:
+        link = shutil.copy
 elif link_type == 'hard':
-    link = os.link
+    if hasattr (os, 'link'):
+        link = os.link
+    else:
+        link = shutil.copy
 else:
     sys.stderr.write(sys.argv[0] + ': ' + link_type + ": wrong argument, expected 'symbolic' or 'hard'\n")
     sys.exit (1)
@@ -59,8 +78,14 @@ destdirs = set ([os.path.dirname (dest) for dest in destfiles])
 
 def force_link (src,dest):
     if os.path.exists (dest):
-        os.system ('rm -f ' + dest)
-    link (src, dest)
+        os.remove (dest)
+    try:
+        link (src, dest)
+    except OSError, e: # can't use "as" because GUB has python 2.4.5.
+        if e.errno == 18:
+            shutil.copy (src, dest)
+        else:
+            raise
     os.utime (dest, None)
 
 map (force_link, sourcefiles, destfiles)
index 734b366f6b7ed91a0232ac36dae090ab7b7675b5..569c892a8f63e7754c6b568c81275df7ef6e4e73 100755 (executable)
@@ -988,9 +988,12 @@ class ComparisonData:
 
         summary += '<p>%d unchanged</p>' % len (unchanged)
 
+        me = sys.argv[0]
+
         html = '''<html>
 <head>
 <title>LilyPond regression test results</title>
+<meta name="author" content="This file was autogenerated by %(me)s">
 <script language="javascript" type="text/javascript">
 // <![CDATA[
     var rows = document.getElementsByTagName("tr");
diff --git a/scripts/build/text2html.py b/scripts/build/text2html.py
new file mode 100644 (file)
index 0000000..2456202
--- /dev/null
@@ -0,0 +1,46 @@
+#!@PYTHON@
+import os
+import re
+import string
+import sys
+
+
+entities = {
+    "&" : 'amp',
+    "`" : 'apos',
+    '>' : 'gt',
+    '<' : 'lt',
+    '"' : 'quot',
+    }
+
+def txt2html (s):
+    for i in entities.keys ():
+        s = re.sub (i, '\001' + entities[i] + ';', s);
+    s = re.sub ('\001', '&', s);
+    return s
+
+for a in sys.argv[1:]:
+    # hmm, we need: text2html out/foe.txt -> out/foe.html,
+    # -o is a bit overkill?
+    # outfile = os.path.basename (os.path.splitext(a)[0]) + '.html'
+    outfile = os.path.splitext(a)[0] + '.html'
+    
+    try:
+      os.unlink(outfile)
+    except:
+      pass
+
+    s = r"""
+
+<html>
+<head>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
+</head>
+
+<body><pre>
+%s
+</pre></body></html>
+""" % txt2html (open (a).read ())
+    open (outfile, 'w').write (s)
+
+
index 93e3c8d50d2bad0061c45d53b730d43b22107a98..ee76feac41b74e7a5ca192d400bb3ae30bb0aeb7 100644 (file)
@@ -1,7 +1,7 @@
 #!@PYTHON@
 #-*- coding: utf-8 -*-
 
-##### This is web_post.py. This script deals with translations
+##### This is website_post.py. This script deals with translations
 ##### in the "make website" target.
 
 import sys
@@ -75,6 +75,7 @@ exclude_manuals = [
 
 ###### Actual program
 
+me = sys.argv[0]
 dir = sys.argv[1]
 
 os.chdir(dir)
@@ -112,6 +113,7 @@ def addLangExt(filename, lang, ext):
 
 def makeFooter (filename, currentLang):
     footer = '''<p id="languages">
+<!-- These links were autogenerated by %(me)s -->
 %(other)s: %(lst)s.
 <br>
 %(browser_language)s
@@ -203,10 +205,10 @@ urchinTracker();
         #### add google tracker goals
         if (line.find("href=\"http://download.linuxaudio.org") >= 0):
             # TODO: more ugly hardcoding to make releases hard. :(
-            if (line.find('2.14') >= 0):
-                line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.14\');\" href=')
-            elif (line.find('2.15') >= 0):
-                line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.15\');\" href=')
+            if (line.find('2.16') >= 0):
+                line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.16\');\" href=')
+            elif (line.find('2.17') >= 0):
+                line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.17\');\" href=')
         ### add language selection footer
         if (line.find("<div id=\"verifier_texinfo\">") >= 0):
             outfile.write("<div id=\"footer\">\n")
index c62e02145a10001ce095d73b851be94d7f5e6a7d..a421369a723f7022ccecde4c234dabeff65fcfcf 100644 (file)
@@ -26,7 +26,14 @@ target_pattern = os.path.join (outdir, '%s-root')
 static_files = {
     os.path.join (outdir, 'index.html'):
         '''<META HTTP-EQUIV="refresh" content="0;URL=Documentation/web/index.html">
-<html><body>Redirecting to the documentation index...</body></html>\n''',
+<html>
+<head>
+<title>Redirecting...</title>
+<meta name="author" content="This file was autogenerated by %s">
+</head>
+<body>Redirecting to the documentation index...</body>
+</html>
+''' % sys.argv[0],
     os.path.join (outdir, 'VERSION'):
         package_version + '\n',
     }
index d46f648cd5fef2a9e94a7c587fe7b198b8c181f3..8b4b262aaa6fd3c4b96b2a891f69ccaac598ecdf 100755 (executable)
@@ -84,8 +84,6 @@ else:
     in_name = sys.argv[1]
     out_name = sys.argv[2]
 
-    print "input file name",in_name
-    print "output file name",out_name
     in_file = open(in_name,'r')
     out_file= open(out_name, 'w')
 
index 2772acc7382c144590cb73ca2da6c3db58603059..7acd2e29dac7ee1f908a9bc0f5ec50131d798041 100644 (file)
@@ -45,6 +45,9 @@ lilypond_version_strict_re = re.compile (lilypond_version_strict_re_str)
 help_summary = (
 _ ('''Update LilyPond input to newer version.  By default, update from the
 version taken from the \\version command, to the current LilyPond version.''')
++ "\n"
++ _ ("If FILE is `-', read from standard input.")
++ "\n\n"
 + _ ("Examples:")
 + '''
   $ convert-ly -e old.ly
@@ -185,10 +188,9 @@ string."""
 
     ly.progress (_ ("Applying conversion: "), newline = False)
 
-    last_conversion = ()
+    last_conversion = None
+    errors = 0
     try:
-        if not conv_list:
-            last_conversion = to_version
         for x in conv_list:
             if x != conv_list[-1]:
                 ly.progress (tup_to_str (x[0]), newline = False)
@@ -202,8 +204,9 @@ string."""
         ly.error (_ ("Error while converting")
                   + '\n'
                   + _ ("Stopping at last successful rule"))
+        errors += 1
 
-    return (last_conversion, str)
+    return (last_conversion, str, errors)
 
 
 
@@ -228,7 +231,7 @@ class InvalidVersion (Exception):
       self.version = version
 
 def do_one_file (infile_name):
-    ly.progress (_ ("Processing `%s\'... ") % infile_name, True)
+    ly.progress (_ (u"Processing `%s\'... ") % infile_name, True)
 
     if infile_name:
         infile = open (infile_name, 'r')
@@ -256,12 +259,12 @@ def do_one_file (infile_name):
         raise InvalidVersion (".".join ([str(n) for n in from_version]))
 
 
-    (last, result) = do_conversion (input, from_version, to_version)
+    (last, result, errors) = do_conversion (input, from_version, to_version)
 
+    if global_options.force_current_version and \
+            (last is None or last == to_version):
+        last = str_to_tuple (program_version)
     if last:
-        if global_options.force_current_version and last == to_version:
-            last = str_to_tuple (program_version)
-
         if global_options.diff_version_update:
             if result == input:
                 # check the y in x.y.z  (minor version number)
@@ -281,23 +284,24 @@ def do_one_file (infile_name):
         elif not global_options.skip_version_add:
             result = newversion + '\n' + result
 
-        ly.progress ('\n')
-    
-        if global_options.edit:
-            try:
-                os.remove(infile_name + '~')
-            except:
-                pass
-            os.rename (infile_name, infile_name + '~')
-            outfile = open (infile_name, 'w')
-        else:
-            outfile = sys.stdout
-
+    ly.progress ('\n')
 
-        outfile.write (result)
+    if global_options.edit:
+        try:
+            os.remove (infile_name + '~')
+        except:
+            pass
+        os.rename (infile_name, infile_name + '~')
+        outfile = open (infile_name, 'w')
+    else:
+        outfile = sys.stdout
 
+    outfile.write (result)
+    
     sys.stderr.flush ()
 
+    return errors
+
 def do_options ():
     opt_parser = get_option_parser()
     (options, args) = opt_parser.parse_args ()
@@ -331,25 +335,33 @@ def main ():
 
     identify ()
 
+    errors = 0
     for f in files:
+        f = f.decode (sys.stdin.encoding or "utf-8")
         if f == '-':
             f = ''
         elif not os.path.isfile (f):
-            ly.error (_ ("%s: Unable to open file") % f)
-            if len (files) == 1:
-                sys.exit (1)
+            ly.error (_ (u"%s: Unable to open file") % f)
+            errors += 1
             continue
         try:
-            do_one_file (f)
+            errors += do_one_file (f)
         except UnknownVersion:
-            ly.error (_ ("%s: Unable to determine version.  Skipping") % f)
+            ly.error (_ (u"%s: Unable to determine version.  Skipping") % f)
+            errors += 1
         except InvalidVersion:
             # Compat code for 2.x and 3.0 syntax ("except .. as v" doesn't 
             # work in python 2.4!):
             t, v, b = sys.exc_info ()
-            ly.error (_ ("%s: Invalid version string `%s' \n"
+            ly.error (_ (u"%s: Invalid version string `%s' \n"
                          "Valid version strings consist of three numbers, "
                          "separated by dots, e.g. `2.8.12'") % (f, v.version) )
+            errors += 1
+
+    if errors:
+        ly.warning (ly.ungettext ("There was %d error.",
+            "There were %d errors.", errors) % errors)
+        sys.exit (1)
 
 
 main ()
index 0e7fb9c83e6fd9c7af8c33a83077680901646c05..bb61108383b95b7e1fe57104ccc550af9d175114 100644 (file)
@@ -576,7 +576,7 @@ class Staff:
                     last_time = g.timesig
 
                 if 'start' in g.repeats:
-                    e = e + ' \\bar "|:" ' 
+                    e = e + ' \\bar ".|:" '
 
 
                 # we don't attempt voltas since they fail easily.
@@ -608,7 +608,7 @@ class Staff:
             if g:
                 gap = rat_add (gap, g.length ())
                 if 'stop' in g.repeats:
-                    k = k + ' \\bar ":|" '
+                    k = k + ' \\bar ":|." '
                 
         k = '%sglobal = { %s }\n\n ' % (self.staffid (), k)
         return k
index 1e0f7abf661d9ede9773e81d1277fdd91f6c57d7..903e5e522176b6a31b97a1edd424ae1179dda3a5 100644 (file)
@@ -651,7 +651,7 @@ def do_options ():
     nr = 0
     for i in global_options.custom_packages:
         nr += 1
-        print imp.load_source ("book_custom_package%s" % nr, i)
+        progress (str(imp.load_source ("book_custom_package%s" % nr, i)))
 
 
     if global_options.warranty:
index 6dcb3ab37c4dec284fd812458a0a89d63dc94f06..09d8d95a44b99df2f469aeb3a009a5d6d587772b 100755 (executable)
@@ -3,7 +3,7 @@
 srcdir=${srcdir:-.}
 set -ux
 
-AUTOGEN_INPUT_CHECKSUM=`cat $srcdir/configure.in $srcdir/stepmake/aclocal.m4 | md5sum | cut -b 1-32`
+AUTOGEN_INPUT_CHECKSUM=`cat $srcdir/configure.in $srcdir/aclocal.m4 | md5sum | cut -b 1-32`
 
 CHECKSUM_FILE=autogen.checksum
 
diff --git a/stepmake/GNUmakefile b/stepmake/GNUmakefile
deleted file mode 100644 (file)
index 8a3eb01..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*-Makefile-*-
-# title         specific top level makefile for StepMake
-
-# subdir level:
-#
-depth = ..
-
-# descent order into subdirectories:
-#
-SUBDIRS = bin stepmake
-
-# list of distribution files:
-#
-SCRIPTS =  aclocal.m4 autogen.sh
-README_FILES = README
-README_TXT_FILES =
-EXTRA_DIST_FILES = $(README_FILES)  $(SCRIPTS)
-NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES)
-#
-
-# bootstrap stepmake:
-#
-STEPMAKE_TEMPLATES= texinfo
-include $(depth)/make/stepmake.make
-
-# don't install stepmake
-install: local-install
-       @echo Not installing stepmake
-
-localclean:
-       rm -f bin/*.pyc
diff --git a/stepmake/INSTALL.texi b/stepmake/INSTALL.texi
deleted file mode 100644 (file)
index bfc62cf..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@setfilename INSTALL.info
-@settitle INSTALL
-
-@node Top, , , (dir)
-@top
-
-
-@unnumberedsec Name
-    
-
-INSTALL - installing StepMake
-
-@unnumberedsec Description
-    
-
-This page documents installation and usage of StepMake
-
-@unnumberedsec Abstract
-    
-
-StepMake is a drop-in package that takes care of generic Makefile and
-packaging/distribution issues.  It enables you to write only the simplest of
-Makefile snippets, while providing a series powerful make targets.  Features
-include speed, wildcarding, out/ dir build, stateless Makefiles and package
-clustering.  It includes some handy scripts for making (package-)diffs and
-patches, making binary distributions etc.
-
-To use StepMake with your package, you do something remotely like:
-@example 
-
-    tar xzf releases/stepmake-0.1.23
-    cd package-x.x.x/                 # package to be StepMake-ised
-    ./../stepmake-0.1.23/bin/stepmakeise.sh
-@end example 
-
-You'll have to customize at least the files:
-@example 
-
-    ./VERSION .
-    ./configure.in 
-@end example 
-
-to your package's needs.  You might want to take a look at:
-@example 
-
-    ./make/Toplevel.make.in
-    ./config.hh.in
-    ./config.make.in
-@end example 
-
-Also, you should put a Makefile in every subdirectory of your
-package.  These makefiles generally are quite simple, e.g. this 
-is a the makefile for an include directory of LilyPond:
-@example 
-
-    # lily/include/Makefile
-
-    depth = ../..
-    include $(depth)/make/Stepmake.make
-@end example 
-
-it will identify all @code{.h, .hh, ...} files and take care of distributing 
-them.
-
-There's a @file{make/Template.make} that you can use as an example.
-See also the Makefiles in the LilyPond or Yodl package.
-
-Once included in your package, StepMake (or in fact, any 
-StepMake-ised package) behaves as a normal subdirectory;
-make commands such as 'make dist' recurse into the stepmake tree
-(For a list of available targets, type @code{make help} after
-configuring).
-Stepmake (and any changes made) will be distributed with the main
-pacakage.  However, StepMake doesn't lose its independency, change
-to the stepmake directory, and it'll behave as a main package.
-You shouldn't version directory names of subpackages, otherwise
-you'll see that package twice in each patch when you upgrade.
-
-@unnumberedsec Prerequisites
-    
-
-To use StepMake with a package you need:
-
-@itemize @bullet
-@item A GNU system: StepMake is known to work on these GNU systems: Linux
-    (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and Solaris.
-    If you have the Cygnus WINDOWS32 port of the GNU utils, it will even
-    work in Windows NT/95, but we don't promise to support it.
-@item GNU make 
-@item GNU autoconf
-@end itemize
-
-@unnumberedsec Recommended
-    
-
-Although not strictly necessary, these are recommended to have.
-
-@itemize @bullet
-@item Python
-@item Yodl.  All documentation will be in Yodl. (1.22.jcn3)
-@item GNU find
-@end itemize
-
-@unnumberedsec Internals
-    
-
-Over time, we put a lot of effort in the configure, make, distribute
-system (CMDS) for LilyPond.  Some months ago, we realised it was not
-standard GNU --- we require GNU make for building, and Python for extra
-scripting.  In an effort to be more GNU, we tried automake, but after two
-weeks we realised the costs were too high for us and we reverted to our
-own system (see @file{automake.urgh}).  Not long after that i was confronted
-with two other packages that lacked a decent CMDS.  I realised that Lily's
-would be perfect, it's modular and easy.  The only problem was to make a
-clean cut between generic and Lily specific stuff.  The result was
-StepMake: a bunch of generic makefiles, found in:
-@example 
-
-    stepmake/stepmake/*.make
-@end example 
-
-eneric helper scripts:
-@example 
-
-    stepmake/bin/*.sh
-    stepmake/bin/*.py
-@end example 
-
-and modular configure functions:
-@example 
-
-    stepmake/configure.in
-    stepmake/aclocal.m4
-    stepmake/config.hh.in
-    stepmake/config.make.in
-@end example 
-
-Of course, every package has its own configure- and make peculiarities.
-The best way to create the configure scripts is to copy them from
-stepmake@footnote{Actually, stepmake/bin/stepmakeise.sh will do
-that for you.} into you package's toplevel directory.  For most
-packages, you'll only have to comment in/out some functions in
-@file{configure.in}.
-
-Package specific makefiles go in:
-@example 
-
-    make/Targets.make
-    make/Rulese.make
-    make/Substitute.make
-@end example 
-
-and are included by the generic StepMake makefiles.
-
-@unnumberedsec Maintaining
-    
-
-If you want to make and manage (binary) distributions, create and apply
-patches, you'll need some framework that's outside of the package's
-sourcetree.
-For a number of simple  maintenance tasks, StepMake will therefore assume
-the following directory structure:
-
-Check and update the layout with the command:
-@example 
-
-    ./stepmake/bin/stepdirs.sh
-@end example 
-
-@unnumberedsec See also
-    
-
-@code{../PATCHES.txt}
-
-@unnumberedsec Configuring
-    
-
-Stepmake comes with a number of precooked configure functions for
-general needs, such as AC_STEPMAKE_COMPILE for simple C development
-and AC_STEPMAKE_CXX for C++.
-
-See configure.in and comment in/out the functions that your package
-needs.  For specific needs, you can write your own autoconf code,
-see @code{info autoconf}.
-
-@example 
-
-    doos/                        # gnu/windows32 build and binary releases
-    harmonia -> harmonia-x.y.z 
-    harmonia-x.y.z/
-    lilypond -> lilypond-x.y.z   # symlink to development directory
-    lilypond-x.y.z/              # current development
-    patches/                    # patches between different releases
-    RedHat/BUILD                 # RedHat build and binary releases
-    RedHat/RPMS
-    RedHat/SPECS
-    releases/                    # .tar.gz releases
-    test/                        # tarballs and diffs from current version
-    yodl -> yodl-1.30.17
-    yodl-1.30.17
-@end example 
-
-with prefix @file{$HOME/usr/src}
-and (for building rpms only) in @file{$HOME/.rpmrc}:
-@example 
-
-    topdir: /home/fred/usr/src/RedHat
-@end example 
-
-
-@unnumberedsec Authors
-
-@itemize @bullet
-@item @email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}, 
-    @uref{http://www.cs.uu.nl/people/hanwen}
-    @* 
-    Main author.
-
-@item @email{janneke@@gnu.org, Jan Nieuwenhuizen},
-    @uref{http://www.xs4all.nl/~jantien}
-    @* 
-    Main author.
-@item @email{daboys@@austin.rr.com, Jeffrey B. Reed},
-    Windows-nt fixes.
-@end itemize
-
-
-@bye
diff --git a/stepmake/README b/stepmake/README
deleted file mode 100644 (file)
index a29e0e5..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-StepMake
-
-This is a simple generic make package.
-It is being used by LilyPond and Harmonia
-(and StepMake itself, of course)
-
-You're looking at her embryonal state -- things are *supposed* 
-to be broken.
-
-Fixes/patches/suggestions appreciated.
-
-StepMake is Free Software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-Jan Nieuwenhuizen <janneke@gnu.org>
-ftp://pcnov095.win.tue.nl/pub/lilypond/development
-
diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4
deleted file mode 100644 (file)
index 682b6b1..0000000
+++ /dev/null
@@ -1,1292 +0,0 @@
-dnl aclocal.m4   -*-shell-script-*-
-dnl StepMake subroutines for configure.in
-
-
-### mostly interal macros
-
-# Get full path of executable ($1)
-AC_DEFUN(STEPMAKE_GET_EXECUTABLE, [
-    ## which doesn't work in ash, if /usr/bin/which isn't installed
-    ## type -p doesn't work in ash
-    ## command -v doesn't work in zsh
-    ## command -v "$1" 2>&1
-    ## this test should work in ash, bash, pdksh (ksh), zsh
-    type -p $1 2>/dev/null | tail -n 1 | awk '{print $NF}'
-])
-
-
-# Get version string from executable ($1)
-AC_DEFUN(STEPMAKE_GET_VERSION, [
-    ## "$1" --version 2>&1 | grep -v '^$' | head -n 1 | awk '{print $NF}'
-    ##
-    ## ARG.
-    ## Workaround for broken Debian gcc version string:
-    ##     gcc (GCC) 3.1.1 20020606 (Debian prerelease)
-    ##
-    ## -V: Workaround for python
-
-    changequote(<<, >>)#dnl
-
-    ## Assume and hunt for dotted version multiplet.
-    ## use eval trickery, because we cannot use multi-level $() instead of ``
-    ## for compatibility reasons.
-    
-    ## grab the first version number in  --version output.
-    eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 |
-               grep -E '(^| )[0-9][0-9]*\.[0-9]' |
-               head -n 1 |
-               tr ' ' '\n' |
-               sed 's/\([0-9][0-9]*\.[0-9][0-9.]*\).*/\1/g' |
-               grep -E '(^| )[0-9][0-9]*\.[0-9]' |
-               head -n 1\`\"
-
-    if test -z "$_ver"; then
-        ## If empty, try date [fontforge]
-        eval _ver=\"\`("$1" --version || "$1" -V) 2>&1 | grep '[0-9]\{6,8\}' \
-           | head -n 1 \
-           | sed -e 's/^[^.0-9]*//' -e 's/[^.0-9]*$//'\`\"
-    fi
-    echo "$_ver"
-    changequote([, ])#dnl
-])
-
-# Calculate simplistic numeric version from version string ($1)
-# As yet, we have no need for something more elaborate.
-AC_DEFUN(STEPMAKE_NUMERIC_VERSION, [
-    echo "$1" | awk -F. '
-    {
-      if ([$]3) {three = [$]3}
-      else {three = 0}
-    }
-    {printf "%.0f\n", [$]1*1000000 + [$]2*1000 + three}'
-])
-
-
-# Add item ($2) to list ($1, one of 'OPTIONAL', 'REQUIRED')
-AC_DEFUN(STEPMAKE_ADD_ENTRY, [
-    eval "$1"=\"`eval echo \"'$'$1\" \"$2\"`\"
-])
-
-# Check if tested program ($2) was found ($1).
-# If not, add entry to missing-list ($3, one of 'OPTIONAL', 'REQUIRED').
-# We could abort here if a 'REQUIRED' program is not found
-AC_DEFUN(STEPMAKE_OPTIONAL_REQUIRED, [
-    STEPMAKE_CHECK_SEARCH_RESULT($1)
-    if test $? -ne 0; then
-       STEPMAKE_ADD_ENTRY($3, $2)
-       if test "$3" = "REQUIRED"; then
-           command="echo ERROR: $2 not found"
-           # abort configure process here?
-       else
-           command="- echo $2 not found"
-       fi
-       eval "$1"='$command'
-       false
-    else
-       true
-    fi
-])
-
-
-# Return if tested proram ($1) was found (true) or not (false).
-AC_DEFUN(STEPMAKE_CHECK_SEARCH_RESULT, [
-    r="`eval echo '$'"$1"`"
-    if test -n "$r" -a "$r" != "error" -a "$r" != "no" && expr '`eval echo '$'"$1"`' : '.*\(echo\)' > /dev/null; then
-       true
-    else
-       ##STEPMAKE_WARN(cannot find $2. $3)
-       false
-    fi
-])
-
-
-# Check version of program ($1)
-# If version ($4: optional argument, supply if version cannot be
-# parsed using --version or -V ) is smaller than requested ($3), add
-# entry to missing-list ($2, one of 'OPTIONAL', 'REQUIRED').
-AC_DEFUN(STEPMAKE_CHECK_VERSION, [
-    r="`eval echo '$'"$1"`"
-    AC_MSG_CHECKING([$r version])
-    exe=`STEPMAKE_GET_EXECUTABLE($r)`
-    if test -n "$4"; then
-        ver="$4"
-    else
-        ver=`STEPMAKE_GET_VERSION($exe)`
-    fi
-    num=`STEPMAKE_NUMERIC_VERSION($ver)`
-    req=`STEPMAKE_NUMERIC_VERSION($3)`
-    AC_MSG_RESULT([$ver])
-    if test "$num" -lt "$req"; then
-       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
-    fi
-    vervar="`echo $1 | tr '[a-z]' '[A-Z]'`_VERSION"
-    eval `echo $vervar=$num`
-##    AC_SUBST(`eval echo $vervar`)
-])
-
-# Check version of program ($1)
-# If version is greater than or equals unsupported ($3),
-# add entry to unsupported list ($2, 'UNSUPPORTED')
-AC_DEFUN(STEPMAKE_CHECK_VERSION_UNSUPPORTED, [
-    r="`eval echo '$'"$1"`"
-    AC_MSG_CHECKING([$r version])
-    exe=`STEPMAKE_GET_EXECUTABLE($r)`
-    ver=`STEPMAKE_GET_VERSION($exe)`
-    num=`STEPMAKE_NUMERIC_VERSION($ver)`
-    sup=`STEPMAKE_NUMERIC_VERSION($3)`
-    AC_MSG_RESULT([$ver])
-    if test "$num" -ge "$sup"; then
-       STEPMAKE_ADD_ENTRY($2, ["$r < $3 (installed: $ver)"])
-    fi
-])
-
-### Macros to build configure.in
-
-
-AC_DEFUN(STEPMAKE_BIBTEX2HTML, [
-    STEPMAKE_PROGS(BIBTEX2HTML, bibtex2html bib2html, $1)
-    if test "$BIBTEX2HTML" = "bib2html"; then
-       BIBTEX2HTML_FLAGS='$< $(@)'
-    else
-       BIBTEX2HTML_FLAGS='-o $(@D)/$(*F) $<'
-    fi
-    AC_SUBST(BIBTEX2HTML)
-    AC_SUBST(BIBTEX2HTML_FLAGS)
-])
-
-
-AC_DEFUN(STEPMAKE_BISON, [
-    # ugh, automake: we want (and check for) bison
-    AC_PROG_YACC
-    
-    STEPMAKE_PROGS(BISON, bison, $1)
-    
-    # urg.  should test functionality rather than version.
-    if test "$BISON" = "bison" -a -n "$2"; then
-       STEPMAKE_CHECK_VERSION(BISON, $1, $2)
-    fi
-])
-
-AC_DEFUN(STEPMAKE_COMPILE_BEFORE, [
-    # -O is necessary to get inlining
-    CFLAGS=${CFLAGS-""}
-    CXXFLAGS=${CXXFLAGS-$CFLAGS}
-    LDFLAGS=${LDFLAGS-""}
-    optimise_b=yes
-    profile_b=no
-    debug_b=yes
-    pipe_b=yes
-
-    AC_ARG_ENABLE(debugging,
-    [AS_HELP_STRING([--enable-debugging],
-                    [compile with debugging info.  Default: on])],
-    [debug_b=$enableval])
-
-    AC_ARG_ENABLE(optimising,
-    [AS_HELP_STRING([--enable-optimising],
-                    [compile with optimising.  Default: on])],
-    [optimise_b=$enableval])
-
-    AC_ARG_ENABLE(profiling, 
-    [AS_HELP_STRING([--enable-profiling],
-                    [compile with gprof support.  Default: off])],
-    [profile_b=$enableval])
-    
-    AC_ARG_ENABLE(pipe, 
-    [AS_HELP_STRING([--enable-pipe],
-                    [compile with -pipe.  Default: on])],
-    [pipe_b=$enableval])
-
-    if test "$optimise_b" = yes; then
-       AC_DEFINE(NDEBUG)
-       DEFINES="$DEFINES -DNDEBUG"
-       OPTIMIZE=" -O2 -finline-functions"
-    fi
-
-    if test $profile_b = yes; then
-       EXTRA_LIBS="-pg"
-       OPTIMIZE="$OPTIMIZE -pg"
-    fi
-
-    if test $debug_b = yes; then
-       OPTIMIZE="$OPTIMIZE -g"
-    fi
-])
-
-AC_DEFUN(STEPMAKE_COMPILE, [
-
-    AC_REQUIRE([STEPMAKE_COMPILE_BEFORE])
-    AC_REQUIRE([AC_PROG_CC])
-
-    STEPMAKE_OPTIONAL_REQUIRED(CC, cc, $1)
-    LD='$(CC)'
-    AC_SUBST(LD)
-
-    # If -pipe requested, test if it works and add to CFLAGS.
-    if test "$pipe_b" = yes; then
-       save_cflags="$CFLAGS"
-       CFLAGS=" -pipe $CFLAGS";
-       AC_CACHE_CHECK([whether compiler understands -pipe],
-           [stepmake_cv_cflags_pipe],
-           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[/* -pipe test */]])],
-               [stepmake_cv_cflags_pipe=yes],
-               [stepmake_cv_cflags_pipe=no]))
-       CFLAGS=$save_cflags
-       if test $stepmake_cv_cflags_pipe = yes; then
-           OPTIMIZE="$OPTIMIZE -pipe"
-       fi
-    fi
-
-    CFLAGS="$CFLAGS $OPTIMIZE"
-    CPPFLAGS=${CPPFLAGS-""}
-
-    AC_MSG_CHECKING([for IEEE-conformance compiler flags])
-    save_cflags="$CFLAGS"
-    case "$host" in
-        alpha*-*-*)
-           dnl should do compile test?
-           AC_MSG_RESULT(-mieee)
-           CFLAGS=" -mieee $CFLAGS"
-           ;;
-       *)
-           AC_MSG_RESULT([none])
-           ;;
-    esac
-
-    AC_SUBST(cross_compiling)
-    AC_SUBST(CFLAGS)
-    AC_SUBST(CPPFLAGS)
-    AC_SUBST(LDFLAGS)
-    AC_SUBST(DEFINES)
-    AC_SUBST(EXTRA_LIBS)
-])
-
-AC_DEFUN(STEPMAKE_CXX, [
-    AC_PROG_CXX
-    STEPMAKE_OPTIONAL_REQUIRED(CXX, c++, $1)
-
-    CXXFLAGS="$CXXFLAGS $OPTIMIZE"
-    LD='$(CXX)'
-
-    AC_SUBST(CXX)
-    AC_SUBST(CXXFLAGS)
-    AC_SUBST(LD)
-])
-
-
-AC_DEFUN(STEPMAKE_CXXTEMPLATE, [
-    AC_CACHE_CHECK([whether explicit instantiation is needed],
-       stepmake_cv_need_explicit_instantiation,
-       AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-    template <class T> struct foo { static int baz; };
-    template <class T> int foo<T>::baz = 1;
-    ]], [[ return foo<int>::baz; ]])],[stepmake_cv_need_explicit_instantiation=no],[stepmake_cv_need_explicit_instantiation=yes]))
-    if test x"$stepmake_cv_need_explicit_instantiation"x = x"yes"x; then
-       AC_DEFINE(NEED_EXPLICIT_INSTANTIATION)
-    fi
-])
-
-AC_DEFUN(STEPMAKE_GXXCODEGENBUG, [
-    AC_MSG_CHECKING([options for known g++ bugs])
-    case "$GXX:$CXX_VERSION" in
-       yes:400600[[0-2]])
-           AC_MSG_RESULT([-fno-optimize-sibling-calls (tail call bug)])
-           CXXFLAGS="$CXXFLAGS -fno-optimize-sibling-calls"
-           ;;
-       yes:400700?)
-           AC_MSG_RESULT([-fno-tree-vrp (comparison bug)])
-           CXXFLAGS="$CXXFLAGS -fno-tree-vrp"
-           ;;
-       *) AC_MSG_RESULT([none])
-    esac
-    AC_SUBST(CXXFLAGS)
-])
-
-
-AC_DEFUN(STEPMAKE_DATADIR, [
-    if test "$datadir" = "\${prefix}/share"; then
-           datadir='${prefix}/share'
-    fi
-    presome=${prefix}
-    if test "$prefix" = "NONE"; then
-       presome=${ac_default_prefix}
-    fi
-    
-    build_package_datadir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/share/$package
-    
-    DATADIR=`echo ${datadir} | sed "s!\\\${datarootdir}!${prefix}/share!"`
-    DATADIR=`echo ${DATADIR} | sed "s!\\\${prefix}!$presome!"`
-    BUILD_PACKAGE_DATADIR=`echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!"`
-    
-    AC_SUBST(datadir)
-    AC_SUBST(datarootdir)
-    AC_SUBST(build_package_datadir)
-    AC_DEFINE_UNQUOTED(DATADIR, ["${DATADIR}"])
-    AC_DEFINE_UNQUOTED(BUILD_PACKAGE_DATADIR, ["${BUILD_PACKAGE_DATADIR}"])
-])
-
-## ugh: cut & paste programming from datadir. 
-AC_DEFUN(STEPMAKE_LIBDIR, [
-
-    if test "$libdir" = "\${exec_prefix}/lib"; then
-       libdir='${exec_prefix}/lib'
-    fi
-    presome=$exec_prefix
-    build_package_libdir=$ugh_ugh_autoconf250_builddir/out$CONFIGSUFFIX/lib/$package
-    
-    LIBDIR=`echo ${libdir} | sed "s!\\\${exec_prefix}!$presome!"`
-    BUILD_PACKAGE_LIBDIR=`echo ${build_package_libdir} | sed "s!\\\${exec_prefix}!$presome!"`
-    
-    AC_SUBST(libdir)
-    AC_SUBST(build_package_libdir)
-    AC_DEFINE_UNQUOTED(LIBDIR, ["${LIBDIR}"])
-    AC_DEFINE_UNQUOTED(BUILD_PACKAGE_LIBDIR, ["${BUILD_PACKAGE_LIBDIR}"])
-])
-
-
-AC_DEFUN(STEPMAKE_PREFIX_EXPAND_FIXUP, [
-    # undo expanding of explicit --infodir=/usr/share
-    # to ease install-time override with prefix=...
-    strip=`echo $includedir | eval sed s@^$prefix@@`
-    if test "$includedir" = "`eval echo $prefix$strip`"; then
-           includedir='${prefix}'$strip''
-    fi
-    strip=`echo $libdir | eval sed s@^$exec_prefix@@`
-    if test "$libdir" = "`eval echo $exec_prefix$strip`"; then
-           libdir='${exec_prefix}'$strip''
-    fi
-    strip=`echo $infodir | eval sed s@^$datarootdir@@`
-    if test "$infodir" = "`eval echo $datarootdir$strip`"; then
-           infodir='${datarootdir}'$strip''
-    fi
-    strip=`echo $mandir | eval sed s@^$datarootdir@@`
-    if test "$mandir" = "`eval echo $datarootdir$strip`"; then
-           mandir='${datarootdir}'$strip''
-    fi
-])
-
-
-AC_DEFUN(STEPMAKE_END, [
-    STEPMAKE_PREFIX_EXPAND_FIXUP
-
-    AC_SUBST(OPTIONAL)
-    AC_SUBST(REQUIRED)
-    
-    AC_CONFIG_FILES([$CONFIGFILE.make:config.make.in])
-    AC_OUTPUT
-    
-    if test -n "$OPTIONAL"; then
-       echo
-        echo "WARNING: Please consider installing optional programs: $OPTIONAL"
-    fi
-
-    if test -n "$REQUIRED"; then
-       echo
-        echo "ERROR: Please install required programs: $REQUIRED"
-    fi
-    
-    if test -n "$UNSUPPORTED"; then
-       echo
-        echo "ERROR: Please use older version of programs: $UNSUPPORTED"
-    fi
-    
-    if test -n "$OPTIONAL$REQUIRED$UNSUPPORTED"; then
-       echo
-       echo "See INSTALL.txt for more information on how to build $PACKAGE_NAME"
-       if test -f config.cache ; then
-           echo "Remove config.cache before rerunning ./configure"
-       fi 
-    fi
-    
-    if test -n "$REQUIRED$UNSUPPORTED"; then
-       rm -f $srcdir/GNUmakefile
-        exit 1
-    fi
-
-    # regular in-place build
-    # test for srcdir_build = yes ?
-    if test "$srcdir_build" = "yes"; then
-       rm -f $srcdir/GNUmakefile
-       cp $srcdir/GNUmakefile.in $srcdir/GNUmakefile
-       chmod 444 $srcdir/GNUmakefile
-    else
-       if test -f $srcdir/GNUmakefile; then
-           cat <<EOF
-Source directory already configured.  Please clean the source directory
-
-     make -C $srcdir distclean
-
-and rerun configure.
-EOF
-           exit 2
-       fi
-
-       abssrcdir="`cd $srcdir; pwd`"
-       absbuilddir="`pwd`"
-       for d in 2 3 4 5 ; do
-           for mf in `cd $srcdir ; find . -maxdepth $d -mindepth $d -name GNUmakefile`; do
-               case "$abssrcdir" in
-                   "$absbuilddir"/*)
-# source is below build directory, always copy
-                       ;;
-                   *)
-                       case "$abssrcdir/${mf#./}" in
-                           "$absbuilddir"/*)
-# find descended into build directory, don't copy
-                               continue
-                       esac
-               esac
-               mkdir -p ${mf%/*}
-               cat <<EOF | $PYTHON -  > $mf
-print 'depth=' + ('../' * ( $d-1 ) )
-print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
-print 'include \$(configure-srcdir)/$mf'
-print 'MODULE_INCLUDES += \$(src-dir)/\$(outbase)'
-EOF
-           done
-           for mf in `cd $srcdir ; find . -maxdepth $d -mindepth $d -name '*.make' | grep -v config.make `; do
-               case "$abssrcdir" in
-                   "$absbuilddir"/*)
-# source is below build directory, always copy
-                       ;;
-                   *)
-                       case "$abssrcdir/${mf#./}" in
-                           "$absbuilddir"/*)
-# find descended into build directory, don't copy
-                               continue
-                       esac
-               esac
-               mkdir -p ${mf%/*}
-               cat <<EOF | $PYTHON -  > $mf
-print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
-print 'include \$(configure-srcdir)/$mf'
-EOF
-           done
-       done
-
-       rm -f GNUmakefile
-       cat <<EOF > GNUmakefile
-depth = .
-include config\$(if \$(conf),-\$(conf),).make
-include \$(configure-srcdir)/GNUmakefile.in
-EOF
-       chmod 444 GNUmakefile
-       AC_SUBST(VPATH)
-    fi
-])
-
-
-AC_DEFUN(STEPMAKE_FLEX, [
-    # ugh, automake: we want (and check for) flex
-    # AC_PROG_LEX
-    # urg: automake 1.3: hope this doesn't break 1.2 ac_cv_pro_lex_root hack...
-
-    # AC_PROG_LEX()
-    # ugh, ugh
-    ac_cv_prog_lex_root=lex.yy
-    STEPMAKE_PROGS(FLEX, flex, $1)
-])
-
-
-AC_DEFUN(STEPMAKE_FLEXLEXER, [
-    AC_CHECK_HEADERS([FlexLexer.h],[true],[false])
-    if test $? -ne 0; then
-       warn='FlexLexer.h (flex package)'
-       STEPMAKE_ADD_ENTRY($1, $warn)
-    fi
-    # check for yyFlexLexer.yy_current_buffer,
-    # in 2.5.4 <= flex < 2.5.29
-    AC_CACHE_CHECK([for yyFlexLexer.yy_current_buffer],
-       [stepmake_cv_flexlexer_yy_current_buffer],
-       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-using namespace std;
-#include <FlexLexer.h>
-class yy_flex_lexer: public yyFlexLexer
-{
-  public:
-    yy_flex_lexer ()
-    {
-      yy_current_buffer = 0;
-    }
-};
-]])],
-           [stepmake_cv_flexlexer_yy_current_buffer=yes],
-           [stepmake_cv_flexlexer_yy_current_buffer=no]))
-    if test $stepmake_cv_flexlexer_yy_current_buffer = yes; then
-       AC_DEFINE(HAVE_FLEXLEXER_YY_CURRENT_BUFFER, 1, [Define to 1 if yyFlexLexer has yy_current_buffer.])
-    fi
-])
-  
-
-
-AC_DEFUN(STEPMAKE_FLEXLEXER_LOCATION, [
-       AC_MSG_CHECKING([FlexLexer.h location])
-
-       # ugh.
-       cat <<EOF > conftest.cc
-using namespace std;
-#include <FlexLexer.h>
-EOF
-       FLEXLEXER_FILE=`eval $ac_cpp conftest.cc | \
-         sed 's!# 1 "\(.*FlexLexer.h\)"!@FLEXLEXER@\1@@!g' | grep '@@' | \
-         sed 's!.*@FLEXLEXER@\(.*\)@@.*$!\1!g' ` 1> /dev/null 2> /dev/null
-       rm conftest.cc
-       AC_SUBST(FLEXLEXER_FILE)
-        AC_MSG_RESULT($FLEXLEXER_FILE)
-])
-
-AC_DEFUN(STEPMAKE_GCC_OR_CLANG, [
-    STEPMAKE_HAS_CLANG()
-    if test "$HAS_CLANG" = "no"; then
-        if test "$GCC" = "yes"; then
-            STEPMAKE_CHECK_VERSION(CC, $1, $2)
-        else
-           warn="$CC (Please install *GNU* cc)"
-           STEPMAKE_ADD_ENTRY($1, $warn)
-        fi
-    fi
-    # no else, we're fine with any clang
-])
-
-AC_DEFUN(STEPMAKE_GETTEXT, [
-    presome=${prefix}
-    if test "$prefix" = "NONE"; then
-           presome=${ac_default_prefix}
-    fi
-    LOCALEDIR=`echo ${localedir} | sed "s!\\\${prefix}!$presome!"`
-    
-    AC_SUBST(localedir)
-    AC_DEFINE_UNQUOTED(LOCALEDIR, ["${LOCALEDIR}"])
-    AC_CHECK_LIB(intl, gettext)
-    AC_CHECK_FUNCS(gettext)
-])
-
-
-AC_DEFUN(STEPMAKE_GUILE, [
-    STEPMAKE_PATH_PROG(GUILE, guile guile1, $1)
-])
-
-
-#   STEPMAKE_GUILE_FLAGS --- set flags for compiling and linking with Guile
-#
-#   This macro runs the guile-config script, installed with Guile,
-#   to find out where Guile's header files and libraries are
-#   installed.  It sets two variables, marked for substitution, as
-#   by AC_SUBST.
-#   
-#     GUILE_CFLAGS --- flags to pass to a C or C++ compiler to build
-#             code that uses Guile header files.  This is almost
-#             always just a -I flag.
-#   
-#     GUILE_LDFLAGS --- flags to pass to the linker to link a
-#             program against Guile.  This includes -lguile for
-#             the Guile library itself, any libraries that Guile
-#             itself requires (like -lqthreads), and so on.  It may
-#             also include a -L flag to tell the compiler where to
-#             find the libraries.
-
-AC_DEFUN([STEPMAKE_GUILE_FLAGS], [
-    exe=`STEPMAKE_GET_EXECUTABLE($guile_config)`
-    if test -x $exe; then
-       AC_MSG_CHECKING([guile compile flags])
-       GUILE_CFLAGS="`$guile_config compile`"
-       AC_MSG_RESULT($GUILE_CFLAGS)
-       AC_MSG_CHECKING([guile link flags])
-       GUILE_LDFLAGS="`$guile_config link`"
-       AC_MSG_RESULT($GUILE_LDFLAGS)
-    fi
-    AC_SUBST(GUILE_CFLAGS)
-    AC_SUBST(GUILE_LDFLAGS)
-])
-
-
-AC_DEFUN(STEPMAKE_GUILE_DEVEL, [
-    ## First, let's just see if we can find Guile at all.
-    test -n "$target_alias" && target_guile_config=$target_alias-guile-config
-    test -n "$host_alias" && host_guile_config=$host_alias-guile-config
-    AC_MSG_CHECKING([for guile-config])
-    for guile_config in $GUILE_CONFIG $target_guile_config $host_guile_config $build_guile_config guile-config guile1-config; do
-       AC_MSG_RESULT([$guile_config])
-       if ! $guile_config --version > /dev/null 2>&1 ; then
-           AC_MSG_WARN([cannot execute $guile_config])
-           AC_MSG_CHECKING([if we are cross compiling])
-           GUILE_CONFIG='echo no guile-config'
-       else
-           GUILE_CONFIG=$guile_config
-           break
-       fi
-    done
-    STEPMAKE_OPTIONAL_REQUIRED(GUILE_CONFIG, $guile_config, $1)
-    if test $? -ne 0; then
-        STEPMAKE_ADD_ENTRY($1, 'guile-config (guile-devel, guile-dev or libguile-dev package) or guile1-config (guile1-devel package)')
-    fi 
-
-    STEPMAKE_CHECK_SEARCH_RESULT(GUILE_CONFIG)
-    # urg.  should test functionality rather than version.
-    if test $? -eq 0 -a -n "$2"; then
-       STEPMAKE_CHECK_VERSION(GUILE_CONFIG, $1, $2)
-    fi
-
-    AC_SUBST(GUILE_CONFIG)
-    
-    guile_version="$ver"
-    changequote(<<, >>)#dnl
-    GUILE_MAJOR_VERSION=`expr $guile_version : '\([0-9]*\)'`
-    GUILE_MINOR_VERSION=`expr $guile_version : '[0-9]*\.\([0-9]*\)'`
-    GUILE_PATCH_LEVEL=`expr $guile_version : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
-    changequote([, ])#dnl
-    STEPMAKE_GUILE_FLAGS
-    save_CPPFLAGS="$CPPFLAGS"
-    save_LIBS="$LIBS"
-    CPPFLAGS="$GUILE_CFLAGS $CPPFLAGS"
-    LIBS="$GUILE_LDFLAGS $LIBS"
-    AC_CHECK_HEADERS([libguile.h])
-    AC_CHECK_LIB(guile, scm_boot_guile)
-    AC_CHECK_FUNCS(scm_boot_guile,,libguile_b=no)
-    if test "$libguile_b" = "no"; then
-           warn='libguile (libguile-dev, guile-devel or guile-dev
-   package).'
-           STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
-    fi
-    CPPFLAGS="$save_CPPFLAGS"
-    LIBS="$save_LIBS"
-    AC_DEFINE_UNQUOTED(GUILE_MAJOR_VERSION, $GUILE_MAJOR_VERSION)
-    AC_DEFINE_UNQUOTED(GUILE_MINOR_VERSION, $GUILE_MINOR_VERSION)
-    AC_DEFINE_UNQUOTED(GUILE_PATCH_LEVEL, $GUILE_PATCH_LEVEL)
-])
-
-
-AC_DEFUN(STEPMAKE_DLOPEN, [
-    AC_CHECK_LIB(dl, dlopen)
-    AC_CHECK_FUNCS(dlopen)
-])
-
-AC_DEFUN(STEPMAKE_HAS_CLANG, [
-    AC_EGREP_CPP(yes,
-      [#ifdef __clang__
-       yes
-       #endif
-      ], HAS_CLANG=yes, HAS_CLANG=no)
-])
-
-AC_DEFUN(STEPMAKE_GXX_OR_CLANG, [
-    STEPMAKE_HAS_CLANG()
-    if test "$HAS_CLANG" = "no"; then
-        if test "$GXX" = "yes"; then
-            STEPMAKE_CHECK_VERSION(CXX, $1, $2)
-        else
-           warn="$CXX (Please install *GNU* c++)"
-           STEPMAKE_ADD_ENTRY($1, $warn)
-        fi
-    fi
-    # no else, we're fine with any clang
-])
-
-
-AC_DEFUN(STEPMAKE_INIT, [
-
-    . $srcdir/VERSION
-    FULL_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
-    MICRO_VERSION=$PATCH_LEVEL
-    TOPLEVEL_VERSION=$FULL_VERSION
-    if test x$MY_PATCH_LEVEL != x; then
-       FULL_VERSION=$FULL_VERSION.$MY_PATCH_LEVEL
-    fi
-    VERSION=$FULL_VERSION
-    export MAJOR_VERSION MINOR_VERSION PATCH_LEVEL
-    # urg: don't "fix" this: irix doesn't know about [:lower:] and [:upper:]
-    changequote(<<, >>)#dnl
-    PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'`
-    package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
-    changequote([, ])#dnl
-
-    # No versioning on directory names of sub-packages 
-    # urg, urg
-    stepmake=${datadir}/stepmake
-    presome=${prefix}
-    if test "$prefix" = "NONE"; then
-           presome=${ac_default_prefix}
-    fi
-    stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
-
-    # urg, how is this supposed to work?
-    if test "$program_prefix" = "NONE"; then
-         program_prefix=
-    fi
-    if test "$program_suffix" = "NONE"; then
-         program_suffix=
-    fi
-
-    AC_MSG_CHECKING(Package)
-    if test "$PACKAGE" = "STEPMAKE"; then
-       AC_MSG_RESULT(Stepmake package!)
-
-       AC_MSG_CHECKING(builddir)
-
-       ugh_ugh_autoconf250_builddir="`pwd`"
-       
-       if test "$srcdir" = "."; then
-           srcdir_build=yes
-       else
-           srcdir_build=no
-           package_builddir="`dirname $ugh_ugh_autoconf250_builddir`"
-           package_srcdir="`dirname  $srcdir`"
-       fi
-       AC_MSG_RESULT($ugh_ugh_autoconf250_builddir)
-
-       (cd stepmake 2>/dev/null || mkdir stepmake)
-       (cd stepmake; rm -f bin; ln -s ../$srcdir/bin .)
-       stepmake=stepmake
-    else
-        AC_MSG_RESULT($PACKAGE)
-
-       AC_MSG_CHECKING(builddir)
-       ugh_ugh_autoconf250_builddir="`pwd`"
-
-       here_dir=$(cd . && pwd)
-       full_src_dir=$(cd $srcdir && pwd)
-
-       if test "$full_src_dir" = "$here_dir"; then
-           srcdir_build=yes
-       else
-           srcdir_build=no
-       fi
-       AC_MSG_RESULT($ugh_ugh_autoconf250_builddir)
-
-       AC_MSG_CHECKING(for stepmake)
-       # Check for installed stepmake
-       if test -d $stepmake; then
-           AC_MSG_RESULT($stepmake)
-       else
-           stepmake="`cd $srcdir/stepmake; pwd`"
-           AC_MSG_RESULT([$srcdir/stepmake  ($datadir/stepmake not found)])
-       fi
-    fi
-
-    AC_SUBST(ugh_ugh_autoconf250_builddir)
-
-    # Use absolute directory for non-srcdir builds, so that build
-    # dir can be moved.
-    if test "$srcdir_build" = "no" ;  then 
-       srcdir="`cd $srcdir; pwd`"
-    fi
-    
-    AC_SUBST(srcdir)
-    AC_SUBST(stepmake)
-    AC_SUBST(package)
-    AC_SUBST(PACKAGE)
-    AC_SUBST(PACKAGE_NAME)
-    AC_SUBST(VERSION)
-    AC_SUBST(MAJOR_VERSION)
-    AC_SUBST(MINOR_VERSION)
-    AC_SUBST(MICRO_VERSION)
-
-    # stepmake nonstandard names
-    AC_SUBST(PATCH_LEVEL)
-    AC_SUBST(TOPLEVEL_VERSION)
-    
-    # We don't need the upper case variant,
-    # so stick to macros are uppercase convention.
-    # AC_DEFINE_UNQUOTED(package, ["${package}"])
-    # AC_DEFINE_UNQUOTED(PACKAGE, ["${PACKAGE}"])
-    AC_DEFINE_UNQUOTED(PACKAGE, ["${package}"])
-    AC_DEFINE_UNQUOTED(PACKAGE_NAME, ["${PACKAGE_NAME}"])
-    AC_DEFINE_UNQUOTED(TOPLEVEL_VERSION, ["${FULL_VERSION}"])
-
-    if test -z "$package_depth"; then
-       package_depth="."
-    else
-       package_depth="../$package_depth"
-    fi
-    export package_depth
-    AC_SUBST(package_depth)
-
-    AUTOGENERATE="This file was automatically generated by configure"
-    AC_SUBST(AUTOGENERATE)
-
-    CONFIGSUFFIX=
-    AC_ARG_ENABLE(config,
-    [AS_HELP_STRING([--enable-config=CONF],
-                    [put settings in config-CONF.make and config-CONF.h;
-                   do `make conf=CONF' to get output in ./out-CONF])],
-    [CONFIGURATION=$enableval])
-
-    ##'`#
-
-    test -n "$CONFIGURATION" && CONFIGSUFFIX="-$CONFIGURATION"
-    CONFIGFILE=config$CONFIGSUFFIX
-    AC_SUBST(CONFIGSUFFIX)
-     
-    AC_CANONICAL_HOST
-    STEPMAKE_PROGS(MAKE, gmake make, REQUIRED)
-    STEPMAKE_PROGS(FIND, find, REQUIRED)
-
-    STEPMAKE_PROGS(TAR, tar, REQUIRED)
-
-    if test "$(echo 2)" != "2" ||
-       test "x`uname`" = "xHP-UX"; then
-       AC_PATH_PROG(KSH, ksh, /bin/ksh)
-       AC_PATH_PROG(BASH, bash, $KSH)
-       STEPMAKE_WARN(avoiding buggy /bin/sh)
-       AC_PATH_PROG(SHELL, bash, $KSH)
-    else
-       SHELL=/bin/sh
-       AC_PATH_PROG(BASH, bash, $SHELL)
-    fi
-    AC_SUBST(SHELL)
-
-    STEPMAKE_PYTHON(REQUIRED, 1.5)
-
-    if expr "$MAKE" : '.*\(echo\)' >/dev/null; then
-       $MAKE -v 2> /dev/null | grep GNU > /dev/null
-       if test "$?" = 1; then
-           warn='make (Please install *GNU* make)'
-           # STEPMAKE_WARN($warn)
-           STEPMAKE_ADD_ENTRY(REQUIRED, $warn)
-        fi
-    fi
-
-    ROOTSEP=':'
-    DIRSEP='/'
-    PATHSEP=':'
-    LN=ln
-    LN_S='ln -s'
-    ZIP="zip -r -9"
-
-    AC_SUBST(program_prefix)
-    AC_SUBST(program_suffix)
-    AC_SUBST(ZIP)
-    AC_SUBST(LN)
-    AC_SUBST(LN_S)
-    AC_DEFINE_UNQUOTED(DIRSEP, ['${DIRSEP}'])
-    AC_DEFINE_UNQUOTED(PATHSEP, ['${PATHSEP}'])
-    AC_SUBST(DIRSEP)
-    AC_SUBST(PATHSEP)
-    AC_SUBST(ROOTSEP)
-  
-    STEPMAKE_DATADIR
-    STEPMAKE_LIBDIR
-])
-
-    
-AC_DEFUN(STEPMAKE_LIB, [
-    STEPMAKE_PROGS(AR, ar, $1)
-    AC_PROG_RANLIB
-    STEPMAKE_OPTIONAL_REQUIRED(RANLIB, ranlib, $1)
-])
-
-
-AC_DEFUN(STEPMAKE_LIBTOOL, [
-    # libtool.info ...
-    # **Never** try to set library version numbers so that they correspond
-    # to the release number of your package.  This is an abuse that only
-    # fosters misunderstanding of the purpose of library versions.
-
-    REVISION=$PATCH_LEVEL
-    # CURRENT=$MINOR_VERSION
-    CURRENT=`expr $MINOR_VERSION + 1`
-    # AGE=`expr $MAJOR_VERSION + 1`
-    AGE=$MAJOR_VERSION
-    AC_SUBST(CURRENT)
-    AC_SUBST(REVISION)
-    AC_SUBST(AGE)
-])
-
-
-AC_DEFUN(STEPMAKE_LOCALE, [
-    lang=English
-    ALL_LINGUAS="en nl"
-
-    # with/enable ??
-    AC_ARG_WITH(localedir,
-    [AS_HELP_STRING([--with-localedir=DIR],
-                    [location of locales.  Default: PREFIX/share/locale])],
-    localedir=$with_localedir,
-    localedir='${prefix}/share/locale')
-
-    AC_ARG_WITH(lang,
-    [AS_HELP_STRING([--with-lang=LANG],
-                    [use LANG as language to emit messages])],
-    language=$with_lang,
-    language=English)
-
-    AC_MSG_CHECKING(language)    
-    case "$language" in
-      En* | en* | Am* | am* | US* | us*)
-           lang=English;;
-      NL | nl | Du* | du* | Ned* | ned*)
-           lang=Dutch;;
-      "")
-           lang=English;;
-      *)
-           lang=unknown;;
-    esac
-    AC_MSG_RESULT($lang)
-
-    if test "$lang" = "unknown" ; then
-       STEPMAKE_WARN($language not supported; available are: $ALL_LINGUAS)
-    fi
-
-])
-
-
-AC_DEFUN(STEPMAKE_MAKEINFO, [
-    STEPMAKE_PROGS(MAKEINFO, makeinfo, $1)
-])
-
-
-AC_DEFUN(STEPMAKE_MAN, [
-    STEPMAKE_PROGS(GROFF, groff ditroff, $1)
-    AC_SUBST(GROFF)
-    STEPMAKE_PROGS(TROFF, troff, $1)
-    AC_SUBST(TROFF)
-    STEPMAKE_PROGS(TBL, tbl, $1)
-    AC_SUBST(TBL)
-])
-
-
-AC_DEFUN(STEPMAKE_MSGFMT, [
-    STEPMAKE_PROGS(MSGFMT, msgfmt, $1)
-])
-
-
-# Check for program ($2), set full path result to ($1).
-# If missing, add entry to missing-list ($3, one of 'OPTIONAL', 'REQUIRED')
-AC_DEFUN(STEPMAKE_PATH_PROG, [
-    AC_CHECK_PROGS($1, $2, no)
-    STEPMAKE_OPTIONAL_REQUIRED($1, $2, $3)
-    if test $? -eq 0; then
-       AC_PATH_PROGS($1, $2)
-       if test -n "$4"; then
-           STEPMAKE_CHECK_VERSION($1, $3, $4)
-       fi
-    fi
-])
-
-
-# Check for program in set of names ($2), set result to ($1) .
-# If missing, add entry to missing-list ($3, one of 'OPTIONAL', 'REQUIRED')
-# If exists, and a minimal version ($4) is required
-AC_DEFUN(STEPMAKE_PROGS, [
-    AC_CHECK_PROGS($1, $2, no)
-    STEPMAKE_OPTIONAL_REQUIRED($1, $2, $3)
-    if test $? -eq 0 -a -n "$4"; then
-       STEPMAKE_CHECK_VERSION($1, $3, $4)
-    fi
-])
-
-
-AC_DEFUN(STEPMAKE_PERL, [
-    STEPMAKE_PATH_PROG(PERL, perl, $1)
-])
-
-
-AC_DEFUN(STEPMAKE_PYTHON, [
-    unset pv
-    AC_MSG_CHECKING([for python])
-    for python in $PYTHON python python2 python2.4 python2.3 python2.2 python2.1 python2.0; do
-       AC_MSG_RESULT([$python])
-       if ! $python -V > /dev/null 2>&1 ; then
-           #AC_MSG_WARN([cannot execute $python])
-           PYTHON='echo no python'
-       else
-           unset pv
-           STEPMAKE_CHECK_VERSION(python, pv, $2)
-           if test -z "$pv"; then
-               PYTHON=$python
-               break
-           fi
-       fi
-    done
-    if test -n "$pv"; then
-       STEPMAKE_ADD_ENTRY($1, $pv)
-    fi
-    # clear cached value since arg 2 might point us to a new binary
-    unset ac_cv_path_PYTHON
-
-    AC_PATH_PROG(PYTHON, $PYTHON)
-    AC_SUBST(PYTHON)
-])
-
-AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [
-    AC_ARG_WITH(python-include,
-       [AS_HELP_STRING([--with-python-include=DIR],
-                       [location of the python include dir])],[
-       if test "$withval" = "yes" -o "$withval" = "no"; then
-           AC_MSG_WARN(Usage: --with-python-include=includedir)
-       else
-           PYTHON_CFLAGS="-I${withval}"
-       fi
-    ])
-    
-    AC_ARG_WITH(python-lib,
-       [AS_HELP_STRING([--with-python-lib=NAME],
-                       [name of the python lib])],[
-       if test "$withval" = "yes" -o "$withval" = "no"; then
-           AC_MSG_WARN(Usage: --with-python-lib=name)
-       else
-           LDFLAGS="$LDFLAGS -l${withval}"
-       fi
-    ])
-    
-    AC_CHECK_PROGS(PYTHON_CONFIG, python-config, no)
-
-    if test -z "$PYTHON_CFLAGS" -a "$PYTHON_CONFIG" != "no"; then
-        # Clean out junk: http://bugs.python.org/issue3290
-       # Python headers may need some -f* flags, leave them in.
-       # We want the sed commands to look like 's/-[WDOm][[:alnum:][:punct:]][[:alnum:][:punct:]]*//g' and 's/-arch [^[:space:]]*//g', but automake eats brackets.
-        #PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'`
-        # The above sed BRE matches parts of legal options, stipping down part of that option, resulting in invalid gcc arguments. Gentoo Bug #415793
-        # For instance, '-floop-stip-mime' becomes '-floop-strip', and '-fvect-cost-model' becomes '-fvect-cost'.
-        # Tentative fix to require a non alphanumeric character before the initial hyphen of the BRE or the hyphen being the first character in the string.
-        PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/\(^\|[[^[:alnum:]]]\)-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'`
-       PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
-    fi
-    
-    if test -z "$PYTHON_CFLAGS" -a "$cross_compiling" = "no"; then
-       changequote(<<, >>)#dnl
-       # alternatively, for python >= 2.0
-       # 'import sys, distutils.sysconfig; sys.stdout.write (distutils.sysconfig.get_python_inc ())'
-       PYTHON_INCLUDE=`$PYTHON -c 'import sys; sys.stdout.write ("%s/include/python%s" % (sys.prefix, sys.version[:3]))'`
-       PYTHON_CFLAGS="-I$PYTHON_INCLUDE"
-       changequote([, ])#dnl
-    fi
-    
-    if test -z "$PYTHON_HEADER"; then
-       CPPFLAGS="$PYTHON_CFLAGS $CPPFLAGS"
-       AC_CHECK_HEADERS([Python.h],[PYTHON_HEADER=yes])
-    fi
-    
-    if test -z "$PYTHON_HEADER"; then
-       warn="Python.h (python-devel, python-dev or libpython-dev package)"
-       STEPMAKE_ADD_ENTRY($1, $warn)
-    fi
-])
-
-
-
-AC_DEFUN(STEPMAKE_STL_DATA_METHOD, [
-    AC_CACHE_CHECK([for stl.data () method],
-       [stepmake_cv_stl_data_method],
-       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include <vector>
-using namespace std;
-vector <int> v;
-void *p = v.data ();
-]])],
-           [stepmake_cv_stl_data_method=yes],
-           [stepmake_cv_stl_data_method=no]))
-    if test $stepmake_cv_stl_data_method = yes; then
-       AC_DEFINE(HAVE_STL_DATA_METHOD, 1, [define if stl classes have data () method])
-    fi
-])
-
-
-AC_DEFUN(STEPMAKE_TEXMF_DIRS, [
-    # ugh
-    STEPMAKE_PROGS(KPSEWHICH, kpsewhich, OPTIONAL)
-])
-
-AC_DEFUN(STEPMAKE_TEXMF, [
-    STEPMAKE_PROGS(METAFONT, mf-nowin mf mfw mfont, $1)
-    STEPMAKE_PROGS(METAPOST, mpost, $1)
-
-    AC_MSG_CHECKING(for working metafont mode)
-    modelist='ljfour lj4 lj3 lj2 ljet laserjet'
-    for MFMODE in $modelist; do
-       $METAFONT -progname=mf "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1
-       if test -f mfput.tfm; then
-           break;
-       fi
-    done
-    AC_MSG_RESULT($MFMODE)
-
-    rm -f mfput.*
-
-    AC_SUBST(MFMODE)
-])
-
-
-AC_DEFUN(STEPMAKE_WARN, [
-    AC_MSG_WARN($1)
-    warn_b=yes
-])
-
-
-dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
-dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
-dnl also defines GSTUFF_PKG_ERRORS on error
-AC_DEFUN(PKG_CHECK_MODULES, [
-  succeeded=no
-
-  if test -z "$PKG_CONFIG"; then
-    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-  fi
-
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-  else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        AC_MSG_CHECKING(for $2)
-
-        if $PKG_CONFIG --exists "$2" ; then
-            AC_MSG_RESULT(yes)
-            succeeded=yes
-
-            AC_MSG_CHECKING($1_CFLAGS)
-            $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
-            AC_MSG_RESULT($$1_CFLAGS)
-
-            AC_MSG_CHECKING($1_LIBS)
-            $1_LIBS=`$PKG_CONFIG --libs "$2"`
-            AC_MSG_RESULT($$1_LIBS)
-        else
-            $1_CFLAGS=""
-            $1_LIBS=""
-            ## If we have a custom action on failure, don't print errors, but 
-            ## do set a variable so people can do so.
-            $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
-            ifelse([$4], ,echo $$1_PKG_ERRORS,)
-        fi
-
-        AC_SUBST($1_CFLAGS)
-        AC_SUBST($1_LIBS)
-     fi
-  fi
-
-  if test $succeeded = yes; then
-     ifelse([$3], , :, [$3])
-  else
-     ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
-  fi
-])
-
-AC_DEFUN(STEPMAKE_FREETYPE2, [
-    PKG_CHECK_MODULES(FREETYPE2, $1 >= $3, have_freetype2=yes, true)
-    if test "$have_freetype2" = yes; then
-       AC_DEFINE(HAVE_FREETYPE2)
-        save_CPPFLAGS="$CPPFLAGS"
-        save_LIBS="$LIBS"
-       CPPFLAGS="$FREETYPE2_CFLAGS $CPPFLAGS"
-       LIBS="$FREETYPE2_LIBS $LIBS"
-       AC_SUBST(FREETYPE2_CFLAGS)
-       AC_SUBST(FREETYPE2_LIBS)
-       CPPFLAGS="$save_CPPFLAGS"
-       LIBS="$save_LIBS"
-    else
-       # UGR
-       #r="lib$1-dev or $1-devel"
-       r="libfreetype6-dev or freetype?-devel"
-       ver="`pkg-config --modversion $1`"
-       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
-    fi
-])
-
-AC_DEFUN(STEPMAKE_PANGO, [
-    PKG_CHECK_MODULES(PANGO, $1 >= $3, have_pango16=yes, true)
-    if test "$have_pango16" = yes ; then
-       AC_DEFINE(HAVE_PANGO16)
-       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
-        save_CPPFLAGS="$CPPFLAGS"
-        save_LIBS="$LIBS"
-       CPPFLAGS="$PANGO_CFLAGS $CPPFLAGS"
-       LIBS="$PANGO_LIBS $LIBS"
-       AC_CHECK_HEADERS([pango/pangofc-fontmap.h])
-       AC_CHECK_FUNCS([pango_fc_font_map_add_decoder_find_func])
-       AC_SUBST(PANGO_CFLAGS)
-       AC_SUBST(PANGO_LIBS)
-       CPPFLAGS="$save_CPPFLAGS"
-       LIBS="$save_LIBS"
-    else
-       # UGR
-       #r="lib$1-dev or $1-devel"
-       r="libpango1.0-dev or pango1.0-devel"
-       ver="`pkg-config --modversion $1`"
-       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
-    fi
-])
-
-AC_DEFUN(STEPMAKE_PANGO_FT2, [
-    PKG_CHECK_MODULES(PANGO_FT2, $1 >= $3, have_pangoft2=yes, true)
-    if test "$have_pangoft2" = yes ; then
-       AC_DEFINE(HAVE_PANGO16)
-       AC_DEFINE(HAVE_PANGO_FT2)
-       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
-        save_CPPFLAGS="$CPPFLAGS"
-        save_LIBS="$LIBS"
-       CPPFLAGS="$CPPFLAGS $PANGO_FT2_CFLAGS"
-       LIBS="$PANGO_FT2_LIBS $LIBS"
-       AC_CHECK_HEADERS([pango/pangoft2.h])
-       AC_CHECK_FUNCS([pango_ft2_font_map_create_context])
-       AC_SUBST(PANGO_FT2_CFLAGS)
-       AC_SUBST(PANGO_FT2_LIBS)
-       CPPFLAGS="$save_CPPFLAGS"
-       LIBS="$save_LIBS"
-    else
-       # UGR
-       #r="lib$1-dev or $1-devel"e
-       r="libpango1.0-dev or pango?-devel"
-       ver="`pkg-config --modversion $1`"
-       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
-    fi
-])
-
-AC_DEFUN(STEPMAKE_FONTCONFIG, [
-    PKG_CHECK_MODULES(FONTCONFIG, $1 >= $3, have_fontconfig=yes, true)
-    if test "$have_fontconfig" = yes ; then
-       AC_DEFINE(HAVE_FONTCONFIG)
-       # Do not pollute user-CPPFLAGS with configure-CPPFLAGS
-        save_CPPFLAGS="$CPPFLAGS"
-        save_LIBS="$LIBS"
-       CPPFLAGS="$FONTCONFIG_CFLAGS $CPPFLAGS"
-       LIBS="$FONTCONFIG_LIBS $LIBS"
-       AC_SUBST(FONTCONFIG_CFLAGS)
-       AC_SUBST(FONTCONFIG_LIBS)
-       CPPFLAGS="$save_CPPFLAGS"
-       LIBS="$save_LIBS"
-    else
-       r="lib$1-dev or $1-devel"
-       ver="`pkg-config --modversion $1`"
-       STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"])
-    fi
-])
-
-AC_DEFUN(STEPMAKE_WINDOWS, [
-    AC_CYGWIN
-    AC_MINGW32
-
-    if test "$CYGWIN" = "yes"; then
-       LN_S='cp -r' # Cygwin symbolic links do not work for native apps.
-       program_suffix=.exe
-       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
-    elif test "$MINGW32" = "yes"; then
-       LN='cp -r'
-       LN_S='cp -r'
-       program_suffix=.exe
-       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
-       PATHSEP=';'
-    fi
-
-    AC_SUBST(LN)
-    AC_SUBST(LN_S)
-    AC_DEFINE_UNQUOTED(DIRSEP, ['${DIRSEP}'])
-    AC_DEFINE_UNQUOTED(PATHSEP, ['${PATHSEP}'])
-    AC_SUBST(DIRSEP)
-    AC_SUBST(PATHSEP)
-    AC_SUBST(program_suffix)
-
-    AC_MSG_CHECKING([for some flavor of Windows])
-    if test "$CYGWIN$MINGW32" = "nono"; then
-        PLATFORM_WINDOWS=no
-    else
-        PLATFORM_WINDOWS=yes
-    fi
-    AC_MSG_RESULT([$PLATFORM_WINDOWS])
-    AC_SUBST(PLATFORM_WINDOWS)
-    STEPMAKE_PROGS(WINDRES, $target-windres windres, x)
-    AC_SUBST(WINDRES)
-])
diff --git a/stepmake/autogen.sh b/stepmake/autogen.sh
deleted file mode 100755 (executable)
index 34c022e..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-# Run this to generate configure and initial GNUmakefiles
-
-srcdir=`dirname $0`
-
-case $1 in
-    --noconf*) NOCONFIGURE=true;;
-esac
-
-if [ ! -f aclocal.m4 -o stepmake/aclocal.m4 -nt aclocal.m4 ]; then
-    echo "stepmake/aclocal.m4 is newer.  Copying file." 
-    cp -f stepmake/aclocal.m4 aclocal.m4
-fi
-
-if [ ! -f autogen.sh -o stepmake/autogen.sh -nt autogen.sh ]; then
-    echo "stepmake/autogen.sh is newer.  Copying file." 
-    cp -f stepmake/autogen.sh autogen.sh
-    exec ./autogen.sh "$@"
-fi
-
-for i in $srcdir/configure.in #`find $srcdir -name configure.in -print`
-do 
-  dir=`dirname $i`
-  echo processing $dir
-  (
-      cd $dir
-      echo "Running autoconf ..."
-      autoconf || exit 1
-  )
-  # Autoconf automatically checks its own minimum required
-  # version, and it aborts when the check fails.
-  test "$?" -eq 1 && exit 1
-done
-
-#conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
-if test -n "$NOCONFIGURE"; then
-    echo Skipping configure process.
-    exit 0
-fi
-
-if test -z "$*"; then
-    cat <<EOF
-    Warning: about to run \`configure' without arguments.
-    arguments on the \`$0' command line
-    will be passed to \`configure'.
-
-    Invoke with --noconfigure to skip configure step.
-EOF
-fi
-
-echo Running $srcdir/configure $conf_flags "$@" ...
-$srcdir/configure $conf_flags "$@"
diff --git a/stepmake/bin/GNUmakefile b/stepmake/bin/GNUmakefile
deleted file mode 100644 (file)
index 13b4d2a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# bin/Makefile
-
-depth = ../..
-EXTRA_DIST_FILES = install-sh config.sub config.guess
-STEPMAKE_TEMPLATES=script install
-
-include $(depth)/make/stepmake.make
-
-POST_INSTALL=chmod 755 $(datadir)/bin/*
-INSTALLATION_DIR=$(datadir)/bin
-INSTALLATION_FILES=$(DIST_FILES)
diff --git a/stepmake/bin/config.guess b/stepmake/bin/config.guess
deleted file mode 100755 (executable)
index 115f944..0000000
+++ /dev/null
@@ -1,1502 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
-
-timestamp='2010-04-03'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )        # Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-trap 'exit 1' HUP INT TERM
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-       for c in cc gcc c89 c99 ; do
-         if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-            CC_FOR_BUILD="$c"; break ;
-         fi ;
-       done ;
-       if test x"$CC_FOR_BUILD" = x ; then
-         CC_FOR_BUILD=no_compiler_found ;
-       fi
-       ;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-       PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-       # NetBSD (nbsd) targets should (where applicable) match one or
-       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-       # switched to ELF, *-*-netbsd* would select the old
-       # object file format.  This provides both forward
-       # compatibility and a consistent mechanism for selecting the
-       # object file format.
-       #
-       # Note: NetBSD doesn't particularly care about the vendor
-       # portion of the name.  We always set it to "unknown".
-       sysctl="sysctl -n hw.machine_arch"
-       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-       case "${UNAME_MACHINE_ARCH}" in
-           armeb) machine=armeb-unknown ;;
-           arm*) machine=arm-unknown ;;
-           sh3el) machine=shl-unknown ;;
-           sh3eb) machine=sh-unknown ;;
-           sh5el) machine=sh5le-unknown ;;
-           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-       esac
-       # The Operating System including object format, if it has switched
-       # to ELF recently, or will in the future.
-       case "${UNAME_MACHINE_ARCH}" in
-           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-               eval $set_cc_for_build
-               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-                       | grep -q __ELF__
-               then
-                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-                   # Return netbsd for either.  FIX?
-                   os=netbsd
-               else
-                   os=netbsdelf
-               fi
-               ;;
-           *)
-               os=netbsd
-               ;;
-       esac
-       # The OS release
-       # Debian GNU/NetBSD machines have a different userland, and
-       # thus, need a distinct triplet. However, they do not need
-       # kernel version information, so it can be replaced with a
-       # suitable tag, in the style of linux-gnu.
-       case "${UNAME_VERSION}" in
-           Debian*)
-               release='-gnu'
-               ;;
-           *)
-               release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-               ;;
-       esac
-       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-       # contains redundant information, the shorter form:
-       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}"
-       exit ;;
-    *:OpenBSD:*:*)
-       UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-       exit ;;
-    *:ekkoBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-       exit ;;
-    *:SolidBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
-       exit ;;
-    macppc:MirBSD:*:*)
-       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
-       exit ;;
-    *:MirBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-       exit ;;
-    alpha:OSF1:*:*)
-       case $UNAME_RELEASE in
-       *4.0)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-               ;;
-       *5.*)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-               ;;
-       esac
-       # According to Compaq, /usr/sbin/psrinfo has been available on
-       # OSF/1 and Tru64 systems produced since 1995.  I hope that
-       # covers most systems running today.  This code pipes the CPU
-       # types through head -n 1, so we only detect the type of CPU 0.
-       ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-       case "$ALPHA_CPU_TYPE" in
-           "EV4 (21064)")
-               UNAME_MACHINE="alpha" ;;
-           "EV4.5 (21064)")
-               UNAME_MACHINE="alpha" ;;
-           "LCA4 (21066/21068)")
-               UNAME_MACHINE="alpha" ;;
-           "EV5 (21164)")
-               UNAME_MACHINE="alphaev5" ;;
-           "EV5.6 (21164A)")
-               UNAME_MACHINE="alphaev56" ;;
-           "EV5.6 (21164PC)")
-               UNAME_MACHINE="alphapca56" ;;
-           "EV5.7 (21164PC)")
-               UNAME_MACHINE="alphapca57" ;;
-           "EV6 (21264)")
-               UNAME_MACHINE="alphaev6" ;;
-           "EV6.7 (21264A)")
-               UNAME_MACHINE="alphaev67" ;;
-           "EV6.8CB (21264C)")
-               UNAME_MACHINE="alphaev68" ;;
-           "EV6.8AL (21264B)")
-               UNAME_MACHINE="alphaev68" ;;
-           "EV6.8CX (21264D)")
-               UNAME_MACHINE="alphaev68" ;;
-           "EV6.9A (21264/EV69A)")
-               UNAME_MACHINE="alphaev69" ;;
-           "EV7 (21364)")
-               UNAME_MACHINE="alphaev7" ;;
-           "EV7.9 (21364A)")
-               UNAME_MACHINE="alphaev79" ;;
-       esac
-       # A Pn.n version is a patched version.
-       # A Vn.n version is a released version.
-       # A Tn.n version is a released field test version.
-       # A Xn.n version is an unreleased experimental baselevel.
-       # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       exit ;;
-    Alpha\ *:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # Should we change UNAME_MACHINE based on the output of uname instead
-       # of the specific Alpha model?
-       echo alpha-pc-interix
-       exit ;;
-    21064:Windows_NT:50:3)
-       echo alpha-dec-winnt3.5
-       exit ;;
-    Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-unknown-sysv4
-       exit ;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-amigaos
-       exit ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-morphos
-       exit ;;
-    *:OS/390:*:*)
-       echo i370-ibm-openedition
-       exit ;;
-    *:z/VM:*:*)
-       echo s390-ibm-zvmoe
-       exit ;;
-    *:OS400:*:*)
-        echo powerpc-ibm-os400
-       exit ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix${UNAME_RELEASE}
-       exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
-       echo arm-unknown-riscos
-       exit ;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-       echo hppa1.1-hitachi-hiuxmpp
-       exit ;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-       # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-       if test "`(/bin/universe) 2>/dev/null`" = att ; then
-               echo pyramid-pyramid-sysv3
-       else
-               echo pyramid-pyramid-bsd
-       fi
-       exit ;;
-    NILE*:*:*:dcosx)
-       echo pyramid-pyramid-svr4
-       exit ;;
-    DRS?6000:unix:4.0:6*)
-       echo sparc-icl-nx6
-       exit ;;
-    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
-       case `/usr/bin/uname -p` in
-           sparc) echo sparc-icl-nx7; exit ;;
-       esac ;;
-    s390x:SunOS:*:*)
-       echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-       echo i386-pc-auroraux${UNAME_RELEASE}
-       exit ;;
-    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-       eval $set_cc_for_build
-       SUN_ARCH="i386"
-       # If there is a compiler, see if it is configured for 64-bit objects.
-       # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
-       # This test works for both compilers.
-       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-           if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-               (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-               grep IS_64BIT_ARCH >/dev/null
-           then
-               SUN_ARCH="x86_64"
-           fi
-       fi
-       echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    sun4*:SunOS:6*:*)
-       # According to config.sub, this is the proper way to canonicalize
-       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-       # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    sun4*:SunOS:*:*)
-       case "`/usr/bin/arch -k`" in
-           Series*|S4*)
-               UNAME_RELEASE=`uname -v`
-               ;;
-       esac
-       # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-       exit ;;
-    sun3*:SunOS:*:*)
-       echo m68k-sun-sunos${UNAME_RELEASE}
-       exit ;;
-    sun*:*:4.2BSD:*)
-       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-       case "`/bin/arch`" in
-           sun3)
-               echo m68k-sun-sunos${UNAME_RELEASE}
-               ;;
-           sun4)
-               echo sparc-sun-sunos${UNAME_RELEASE}
-               ;;
-       esac
-       exit ;;
-    aushp:SunOS:*:*)
-       echo sparc-auspex-sunos${UNAME_RELEASE}
-       exit ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
-    m68k:machten:*:*)
-       echo m68k-apple-machten${UNAME_RELEASE}
-       exit ;;
-    powerpc:machten:*:*)
-       echo powerpc-apple-machten${UNAME_RELEASE}
-       exit ;;
-    RISC*:Mach:*:*)
-       echo mips-dec-mach_bsd4.3
-       exit ;;
-    RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix${UNAME_RELEASE}
-       exit ;;
-    VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix${UNAME_RELEASE}
-       exit ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-       echo clipper-intergraph-clix${UNAME_RELEASE}
-       exit ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-       int main (int argc, char *argv[]) {
-#else
-       int main (argc, argv) int argc; char *argv[]; {
-#endif
-       #if defined (host_mips) && defined (MIPSEB)
-       #if defined (SYSTYPE_SYSV)
-         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_SVR4)
-         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-       #endif
-       #endif
-         exit (-1);
-       }
-EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c &&
-         dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-         SYSTEM_NAME=`$dummy $dummyarg` &&
-           { echo "$SYSTEM_NAME"; exit; }
-       echo mips-mips-riscos${UNAME_RELEASE}
-       exit ;;
-    Motorola:PowerMAX_OS:*:*)
-       echo powerpc-motorola-powermax
-       exit ;;
-    Motorola:*:4.3:PL8-*)
-       echo powerpc-harris-powermax
-       exit ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-       echo powerpc-harris-powermax
-       exit ;;
-    Night_Hawk:Power_UNIX:*:*)
-       echo powerpc-harris-powerunix
-       exit ;;
-    m88k:CX/UX:7*:*)
-       echo m88k-harris-cxux7
-       exit ;;
-    m88k:*:4*:R4*)
-       echo m88k-motorola-sysv4
-       exit ;;
-    m88k:*:3*:R3*)
-       echo m88k-motorola-sysv3
-       exit ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-       then
-           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-              [ ${TARGET_BINARY_INTERFACE}x = x ]
-           then
-               echo m88k-dg-dgux${UNAME_RELEASE}
-           else
-               echo m88k-dg-dguxbcs${UNAME_RELEASE}
-           fi
-       else
-           echo i586-dg-dgux${UNAME_RELEASE}
-       fi
-       exit ;;
-    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
-       echo m88k-dolphin-sysv3
-       exit ;;
-    M88*:*:R3*:*)
-       # Delta 88k system running SVR3
-       echo m88k-motorola-sysv3
-       exit ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-       echo m88k-tektronix-sysv3
-       exit ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-       echo m68k-tektronix-bsd
-       exit ;;
-    *:IRIX*:*:*)
-       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-       exit ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-       echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-       echo i386-ibm-aix
-       exit ;;
-    ia64:AIX:*:*)
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
-       else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-       fi
-       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-       exit ;;
-    *:AIX:2:3)
-       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               eval $set_cc_for_build
-               sed 's/^                //' << EOF >$dummy.c
-               #include <sys/systemcfg.h>
-
-               main()
-                       {
-                       if (!__power_pc())
-                               exit(1);
-                       puts("powerpc-ibm-aix3.2.5");
-                       exit(0);
-                       }
-EOF
-               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
-               then
-                       echo "$SYSTEM_NAME"
-               else
-                       echo rs6000-ibm-aix3.2.5
-               fi
-       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-               echo rs6000-ibm-aix3.2.4
-       else
-               echo rs6000-ibm-aix3.2
-       fi
-       exit ;;
-    *:AIX:*:[456])
-       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-               IBM_ARCH=rs6000
-       else
-               IBM_ARCH=powerpc
-       fi
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
-       else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-       fi
-       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-       exit ;;
-    *:AIX:*:*)
-       echo rs6000-ibm-aix
-       exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-       echo romp-ibm-bsd4.4
-       exit ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-       exit ;;                             # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-       echo rs6000-bull-bosx
-       exit ;;
-    DPX/2?00:B.O.S.:*:*)
-       echo m68k-bull-sysv3
-       exit ;;
-    9000/[34]??:4.3bsd:1.*:*)
-       echo m68k-hp-bsd
-       exit ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-       echo m68k-hp-bsd4.4
-       exit ;;
-    9000/[34678]??:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       case "${UNAME_MACHINE}" in
-           9000/31? )            HP_ARCH=m68000 ;;
-           9000/[34]?? )         HP_ARCH=m68k ;;
-           9000/[678][0-9][0-9])
-               if [ -x /usr/bin/getconf ]; then
-                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
-                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
-               fi
-               if [ "${HP_ARCH}" = "" ]; then
-                   eval $set_cc_for_build
-                   sed 's/^              //' << EOF >$dummy.c
-
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
-
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-
-                  switch (cpu)
-               {
-               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-                   switch (bits)
-                       {
-                       case 64: puts ("hppa2.0w"); break;
-                       case 32: puts ("hppa2.0n"); break;
-                       default: puts ("hppa2.0"); break;
-                       } break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-                   puts ("hppa2.0"); break;
-              #endif
-               default: puts ("hppa1.0"); break;
-               }
-                  exit (0);
-              }
-EOF
-                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-                   test -z "$HP_ARCH" && HP_ARCH=hppa
-               fi ;;
-       esac
-       if [ ${HP_ARCH} = "hppa2.0w" ]
-       then
-           eval $set_cc_for_build
-
-           # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
-           # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
-           # generating 64-bit code.  GNU and HP use different nomenclature:
-           #
-           # $ CC_FOR_BUILD=cc ./config.guess
-           # => hppa2.0w-hp-hpux11.23
-           # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
-           # => hppa64-hp-hpux11.23
-
-           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-               grep -q __LP64__
-           then
-               HP_ARCH="hppa2.0w"
-           else
-               HP_ARCH="hppa64"
-           fi
-       fi
-       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-       exit ;;
-    ia64:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       echo ia64-hp-hpux${HPUX_REV}
-       exit ;;
-    3050*:HI-UX:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #include <unistd.h>
-       int
-       main ()
-       {
-         long cpu = sysconf (_SC_CPU_VERSION);
-         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-            results, however.  */
-         if (CPU_IS_PA_RISC (cpu))
-           {
-             switch (cpu)
-               {
-                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-                 default: puts ("hppa-hitachi-hiuxwe2"); break;
-               }
-           }
-         else if (CPU_IS_HP_MC68K (cpu))
-           puts ("m68k-hitachi-hiuxwe2");
-         else puts ("unknown-hitachi-hiuxwe2");
-         exit (0);
-       }
-EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
-               { echo "$SYSTEM_NAME"; exit; }
-       echo unknown-hitachi-hiuxwe2
-       exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-       echo hppa1.1-hp-bsd
-       exit ;;
-    9000/8??:4.3bsd:*:*)
-       echo hppa1.0-hp-bsd
-       exit ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-       echo hppa1.0-hp-mpeix
-       exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-       echo hppa1.1-hp-osf
-       exit ;;
-    hp8??:OSF1:*:*)
-       echo hppa1.0-hp-osf
-       exit ;;
-    i*86:OSF1:*:*)
-       if [ -x /usr/sbin/sysversion ] ; then
-           echo ${UNAME_MACHINE}-unknown-osf1mk
-       else
-           echo ${UNAME_MACHINE}-unknown-osf1
-       fi
-       exit ;;
-    parisc*:Lites*:*:*)
-       echo hppa1.1-hp-lites
-       exit ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-       echo c1-convex-bsd
-        exit ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-        exit ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-       echo c34-convex-bsd
-        exit ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-       echo c38-convex-bsd
-        exit ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-       echo c4-convex-bsd
-        exit ;;
-    CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    CRAY*[A-Z]90:*:*:*)
-       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-             -e 's/\.[^.]*$/.X/'
-       exit ;;
-    CRAY*TS:*:*:*)
-       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    CRAY*T3E:*:*:*)
-       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    CRAY*SV1:*:*:*)
-       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    *:UNICOS/mp:*:*)
-       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
-    5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-       exit ;;
-    sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi${UNAME_RELEASE}
-       exit ;;
-    *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-       exit ;;
-    *:FreeBSD:*:*)
-       case ${UNAME_MACHINE} in
-           pc98)
-               echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-           amd64)
-               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-           *)
-               echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-       esac
-       exit ;;
-    i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin
-       exit ;;
-    *:MINGW*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
-       exit ;;
-    i*:windows32*:*)
-       # uname -m includes "-pc" on this system.
-       echo ${UNAME_MACHINE}-mingw32
-       exit ;;
-    i*:PW*:*)
-       echo ${UNAME_MACHINE}-pc-pw32
-       exit ;;
-    *:Interix*:*)
-       case ${UNAME_MACHINE} in
-           x86)
-               echo i586-pc-interix${UNAME_RELEASE}
-               exit ;;
-           authenticamd | genuineintel | EM64T)
-               echo x86_64-unknown-interix${UNAME_RELEASE}
-               exit ;;
-           IA64)
-               echo ia64-unknown-interix${UNAME_RELEASE}
-               exit ;;
-       esac ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-       echo i${UNAME_MACHINE}-pc-mks
-       exit ;;
-    8664:Windows_NT:*)
-       echo x86_64-pc-mks
-       exit ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-       # UNAME_MACHINE based on the output of uname instead of i386?
-       echo i586-pc-interix
-       exit ;;
-    i*:UWIN*:*)
-       echo ${UNAME_MACHINE}-pc-uwin
-       exit ;;
-    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-       echo x86_64-unknown-cygwin
-       exit ;;
-    p*:CYGWIN*:*)
-       echo powerpcle-unknown-cygwin
-       exit ;;
-    prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-    *:GNU:*:*)
-       # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-       exit ;;
-    *:GNU/*:*:*)
-       # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-       exit ;;
-    i*86:Minix:*:*)
-       echo ${UNAME_MACHINE}-pc-minix
-       exit ;;
-    alpha:Linux:*:*)
-       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-         EV5)   UNAME_MACHINE=alphaev5 ;;
-         EV56)  UNAME_MACHINE=alphaev56 ;;
-         PCA56) UNAME_MACHINE=alphapca56 ;;
-         PCA57) UNAME_MACHINE=alphapca56 ;;
-         EV6)   UNAME_MACHINE=alphaev6 ;;
-         EV67)  UNAME_MACHINE=alphaev67 ;;
-         EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-       objdump --private-headers /bin/sh | grep -q ld.so.1
-       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-       exit ;;
-    arm*:Linux:*:*)
-       eval $set_cc_for_build
-       if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-           | grep -q __ARM_EABI__
-       then
-           echo ${UNAME_MACHINE}-unknown-linux-gnu
-       else
-           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-       fi
-       exit ;;
-    avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    cris:Linux:*:*)
-       echo cris-axis-linux-gnu
-       exit ;;
-    crisv32:Linux:*:*)
-       echo crisv32-axis-linux-gnu
-       exit ;;
-    frv:Linux:*:*)
-       echo frv-unknown-linux-gnu
-       exit ;;
-    i*86:Linux:*:*)
-       LIBC=gnu
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #ifdef __dietlibc__
-       LIBC=dietlibc
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-       echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-       exit ;;
-    ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    mips:Linux:*:* | mips64:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #undef CPU
-       #undef ${UNAME_MACHINE}
-       #undef ${UNAME_MACHINE}el
-       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=${UNAME_MACHINE}el
-       #else
-       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=${UNAME_MACHINE}
-       #else
-       CPU=
-       #endif
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-       ;;
-    or32:Linux:*:*)
-       echo or32-unknown-linux-gnu
-       exit ;;
-    padre:Linux:*:*)
-       echo sparc-unknown-linux-gnu
-       exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
-       exit ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-       # Look for CPU level
-       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
-       esac
-       exit ;;
-    ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-gnu
-       exit ;;
-    ppc:Linux:*:*)
-       echo powerpc-unknown-linux-gnu
-       exit ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
-       exit ;;
-    sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-gnu
-       exit ;;
-    x86_64:Linux:*:*)
-       echo x86_64-unknown-linux-gnu
-       exit ;;
-    xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-    i*86:DYNIX/ptx:4*:*)
-       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-       # earlier versions are messed up and put the nodename in both
-       # sysname and nodename.
-       echo i386-sequent-sysv4
-       exit ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-       # I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-       exit ;;
-    i*86:OS/2:*:*)
-       # If we were able to find `uname', then EMX Unix compatibility
-       # is probably installed.
-       echo ${UNAME_MACHINE}-pc-os2-emx
-       exit ;;
-    i*86:XTS-300:*:STOP)
-       echo ${UNAME_MACHINE}-unknown-stop
-       exit ;;
-    i*86:atheos:*:*)
-       echo ${UNAME_MACHINE}-unknown-atheos
-       exit ;;
-    i*86:syllable:*:*)
-       echo ${UNAME_MACHINE}-pc-syllable
-       exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-       echo i386-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    i*86:*DOS:*:*)
-       echo ${UNAME_MACHINE}-pc-msdosdjgpp
-       exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-       else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-       fi
-       exit ;;
-    i*86:*:5:[678]*)
-       # UnixWare 7.x, OpenUNIX and OpenServer 6.
-       case `/bin/uname -X | grep "^Machine"` in
-           *486*)           UNAME_MACHINE=i486 ;;
-           *Pentium)        UNAME_MACHINE=i586 ;;
-           *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-       esac
-       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-       exit ;;
-    i*86:*:3.2:*)
-       if test -f /usr/options/cb.name; then
-               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-       elif /bin/uname -X 2>/dev/null >/dev/null ; then
-               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-               (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-               (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-                       && UNAME_MACHINE=i586
-               (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-                       && UNAME_MACHINE=i686
-               (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-                       && UNAME_MACHINE=i686
-               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-       else
-               echo ${UNAME_MACHINE}-pc-sysv32
-       fi
-       exit ;;
-    pc:*:*:*)
-       # Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i586.
-       # Note: whatever this is, it MUST be the same as what config.sub
-       # prints for the "djgpp" host, or else GDB configury will decide that
-       # this is a cross-build.
-       echo i586-pc-msdosdjgpp
-        exit ;;
-    Intel:Mach:3*:*)
-       echo i386-pc-mach3
-       exit ;;
-    paragon:*:*:*)
-       echo i860-intel-osf1
-       exit ;;
-    i860:*:4.*:*) # i860-SVR4
-       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-       else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-       fi
-       exit ;;
-    mini*:CTIX:SYS*5:*)
-       # "miniframe"
-       echo m68010-convergent-sysv
-       exit ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-       echo m68k-convergent-sysv
-       exit ;;
-    M680?0:D-NIX:5.3:*)
-       echo m68k-diab-dnix
-       exit ;;
-    M68*:*:R3V[5678]*:*)
-       test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
-       OS_REL=''
-       test -r /etc/.relid \
-       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
-    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
-       OS_REL='.3'
-       test -r /etc/.relid \
-           && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-           && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-           && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
-       /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-           && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    mc68030:UNIX_System_V:4.*:*)
-       echo m68k-atari-sysv4
-       exit ;;
-    TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-       echo powerpc-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-    SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv${UNAME_RELEASE}
-       exit ;;
-    RM*:ReliantUNIX-*:*:*)
-       echo mips-sni-sysv4
-       exit ;;
-    RM*:SINIX-*:*:*)
-       echo mips-sni-sysv4
-       exit ;;
-    *:SINIX-*:*:*)
-       if uname -p 2>/dev/null >/dev/null ; then
-               UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo ${UNAME_MACHINE}-sni-sysv4
-       else
-               echo ns32k-sni-sysv
-       fi
-       exit ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
-    *:UNIX_System_V:4*:FTX*)
-       # From Gerald Hewes <hewes@openmarket.com>.
-       # How about differentiating between stratus architectures? -djm
-       echo hppa1.1-stratus-sysv4
-       exit ;;
-    *:*:*:FTX*)
-       # From seanf@swdc.stratus.com.
-       echo i860-stratus-sysv4
-       exit ;;
-    i*86:VOS:*:*)
-       # From Paul.Green@stratus.com.
-       echo ${UNAME_MACHINE}-stratus-vos
-       exit ;;
-    *:VOS:*:*)
-       # From Paul.Green@stratus.com.
-       echo hppa1.1-stratus-vos
-       exit ;;
-    mc68*:A/UX:*:*)
-       echo m68k-apple-aux${UNAME_RELEASE}
-       exit ;;
-    news*:NEWS-OS:6*:*)
-       echo mips-sony-newsos6
-       exit ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-       if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
-       else
-               echo mips-unknown-sysv${UNAME_RELEASE}
-       fi
-        exit ;;
-    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
-       echo powerpc-be-beos
-       exit ;;
-    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
-       echo powerpc-apple-beos
-       exit ;;
-    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
-       echo i586-pc-beos
-       exit ;;
-    BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
-       echo i586-pc-haiku
-       exit ;;
-    SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-6:SUPER-UX:*:*)
-       echo sx6-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-7:SUPER-UX:*:*)
-       echo sx7-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-8:SUPER-UX:*:*)
-       echo sx8-nec-superux${UNAME_RELEASE}
-       exit ;;
-    SX-8R:SUPER-UX:*:*)
-       echo sx8r-nec-superux${UNAME_RELEASE}
-       exit ;;
-    Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody${UNAME_RELEASE}
-       exit ;;
-    *:Rhapsody:*:*)
-       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-       exit ;;
-    *:Darwin:*:*)
-       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       case $UNAME_PROCESSOR in
-           i386)
-               eval $set_cc_for_build
-               if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-                 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-                     (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-                     grep IS_64BIT_ARCH >/dev/null
-                 then
-                     UNAME_PROCESSOR="x86_64"
-                 fi
-               fi ;;
-           unknown) UNAME_PROCESSOR=powerpc ;;
-       esac
-       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-       exit ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-       UNAME_PROCESSOR=`uname -p`
-       if test "$UNAME_PROCESSOR" = "x86"; then
-               UNAME_PROCESSOR=i386
-               UNAME_MACHINE=pc
-       fi
-       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-       exit ;;
-    *:QNX:*:4*)
-       echo i386-pc-qnx
-       exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
-       echo nse-tandem-nsk${UNAME_RELEASE}
-       exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
-       echo nsr-tandem-nsk${UNAME_RELEASE}
-       exit ;;
-    *:NonStop-UX:*:*)
-       echo mips-compaq-nonstopux
-       exit ;;
-    BS2000:POSIX*:*:*)
-       echo bs2000-siemens-sysv
-       exit ;;
-    DS/*:UNIX_System_V:*:*)
-       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-       exit ;;
-    *:Plan9:*:*)
-       # "uname -m" is not consistent, so use $cputype instead. 386
-       # is converted to i386 for consistency with other x86
-       # operating systems.
-       if test "$cputype" = "386"; then
-           UNAME_MACHINE=i386
-       else
-           UNAME_MACHINE="$cputype"
-       fi
-       echo ${UNAME_MACHINE}-unknown-plan9
-       exit ;;
-    *:TOPS-10:*:*)
-       echo pdp10-unknown-tops10
-       exit ;;
-    *:TENEX:*:*)
-       echo pdp10-unknown-tenex
-       exit ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-       echo pdp10-dec-tops20
-       exit ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-       echo pdp10-xkl-tops20
-       exit ;;
-    *:TOPS-20:*:*)
-       echo pdp10-unknown-tops20
-       exit ;;
-    *:ITS:*:*)
-       echo pdp10-unknown-its
-       exit ;;
-    SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
-       exit ;;
-    *:DragonFly:*:*)
-       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-       exit ;;
-    *:*VMS:*:*)
-       UNAME_MACHINE=`(uname -p) 2>/dev/null`
-       case "${UNAME_MACHINE}" in
-           A*) echo alpha-dec-vms ; exit ;;
-           I*) echo ia64-dec-vms ; exit ;;
-           V*) echo vax-dec-vms ; exit ;;
-       esac ;;
-    *:XENIX:*:SysV)
-       echo i386-pc-xenix
-       exit ;;
-    i*86:skyos:*:*)
-       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
-       exit ;;
-    i*86:rdos:*:*)
-       echo ${UNAME_MACHINE}-pc-rdos
-       exit ;;
-    i*86:AROS:*:*)
-       echo ${UNAME_MACHINE}-pc-aros
-       exit ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-         ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-       printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-       printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-       { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-       echo c1-convex-bsd
-       exit ;;
-    c2*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-       exit ;;
-    c34*)
-       echo c34-convex-bsd
-       exit ;;
-    c38*)
-       echo c38-convex-bsd
-       exit ;;
-    c4*)
-       echo c4-convex-bsd
-       exit ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/stepmake/bin/config.sub b/stepmake/bin/config.sub
deleted file mode 100755 (executable)
index 204218c..0000000
+++ /dev/null
@@ -1,1731 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
-
-timestamp='2010-05-21'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )        # Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit ;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
-  kopensolaris*-gnu* | \
-  storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-       -sun*os*)
-               # Prevent following clause from handling this invalid input.
-               ;;
-       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis | -knuth | -cray | -microblaze)
-               os=
-               basic_machine=$1
-               ;;
-        -bluegene*)
-               os=-cnk
-               ;;
-       -sim | -cisco | -oki | -wec | -winbond)
-               os=
-               basic_machine=$1
-               ;;
-       -scout)
-               ;;
-       -wrs)
-               os=-vxworks
-               basic_machine=$1
-               ;;
-       -chorusos*)
-               os=-chorusos
-               basic_machine=$1
-               ;;
-       -chorusrdb)
-               os=-chorusrdb
-               basic_machine=$1
-               ;;
-       -hiux*)
-               os=-hiuxwe2
-               ;;
-       -sco6)
-               os=-sco5v6
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco5)
-               os=-sco3.2v5
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco4)
-               os=-sco3.2v4
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2v[4-9]*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco5v6*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco*)
-               os=-sco3.2v2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -udk*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -isc)
-               os=-isc2.2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -clix*)
-               basic_machine=clipper-intergraph
-               ;;
-       -isc*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -lynx*)
-               os=-lynxos
-               ;;
-       -ptx*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-               ;;
-       -windowsnt*)
-               os=`echo $os | sed -e 's/windowsnt/winnt/'`
-               ;;
-       -psos*)
-               os=-psos
-               ;;
-       -mint | -mint[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
-               ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-       # Recognize the basic CPU types without company name.
-       # Some are omitted here because they have special meanings below.
-       1750a | 580 \
-       | a29k \
-       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-       | am33_2.0 \
-       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-       | bfin \
-       | c4x | clipper \
-       | d10v | d30v | dlx | dsp16xx \
-       | fido | fr30 | frv \
-       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-       | i370 | i860 | i960 | ia64 \
-       | ip2k | iq2000 \
-       | lm32 \
-       | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | mcore | mep | metag \
-       | mips | mipsbe | mipseb | mipsel | mipsle \
-       | mips16 \
-       | mips64 | mips64el \
-       | mips64octeon | mips64octeonel \
-       | mips64orion | mips64orionel \
-       | mips64r5900 | mips64r5900el \
-       | mips64vr | mips64vrel \
-       | mips64vr4100 | mips64vr4100el \
-       | mips64vr4300 | mips64vr4300el \
-       | mips64vr5000 | mips64vr5000el \
-       | mips64vr5900 | mips64vr5900el \
-       | mipsisa32 | mipsisa32el \
-       | mipsisa32r2 | mipsisa32r2el \
-       | mipsisa64 | mipsisa64el \
-       | mipsisa64r2 | mipsisa64r2el \
-       | mipsisa64sb1 | mipsisa64sb1el \
-       | mipsisa64sr71k | mipsisa64sr71kel \
-       | mipstx39 | mipstx39el \
-       | mn10200 | mn10300 \
-       | moxie \
-       | mt \
-       | msp430 \
-       | nios | nios2 \
-       | ns16k | ns32k \
-       | or32 \
-       | pdp10 | pdp11 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-       | pyramid \
-       | rx \
-       | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-       | sh64 | sh64le \
-       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu | strongarm \
-       | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-       | ubicom32 \
-       | v850 | v850e \
-       | we32k \
-       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-       | z8k | z80)
-               basic_machine=$basic_machine-unknown
-               ;;
-       c54x)
-               basic_machine=tic54x-unknown
-               ;;
-       c55x)
-               basic_machine=tic55x-unknown
-               ;;
-       c6x)
-               basic_machine=tic6x-unknown
-               ;;
-       m6811 | m68hc11 | m6812 | m68hc12 | picochip)
-               # Motorola 68HC11/12.
-               basic_machine=$basic_machine-unknown
-               os=-none
-               ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-               ;;
-       ms1)
-               basic_machine=mt-unknown
-               ;;
-
-       # We use `pc' rather than `unknown'
-       # because (1) that's what they normally are, and
-       # (2) the word "unknown" tends to confuse beginning users.
-       i*86 | x86_64)
-         basic_machine=$basic_machine-pc
-         ;;
-       # Object if more than one company name word.
-       *-*-*)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
-       # Recognize the basic CPU types with company name.
-       580-* \
-       | a29k-* \
-       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-       | avr-* | avr32-* \
-       | bfin-* | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | clipper-* | craynv-* | cydra-* \
-       | d10v-* | d30v-* | dlx-* \
-       | elxsi-* \
-       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-       | h8300-* | h8500-* \
-       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-       | i*86-* | i860-* | i960-* | ia64-* \
-       | ip2k-* | iq2000-* \
-       | lm32-* \
-       | m32c-* | m32r-* | m32rle-* \
-       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
-       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-       | mips16-* \
-       | mips64-* | mips64el-* \
-       | mips64octeon-* | mips64octeonel-* \
-       | mips64orion-* | mips64orionel-* \
-       | mips64r5900-* | mips64r5900el-* \
-       | mips64vr-* | mips64vrel-* \
-       | mips64vr4100-* | mips64vr4100el-* \
-       | mips64vr4300-* | mips64vr4300el-* \
-       | mips64vr5000-* | mips64vr5000el-* \
-       | mips64vr5900-* | mips64vr5900el-* \
-       | mipsisa32-* | mipsisa32el-* \
-       | mipsisa32r2-* | mipsisa32r2el-* \
-       | mipsisa64-* | mipsisa64el-* \
-       | mipsisa64r2-* | mipsisa64r2el-* \
-       | mipsisa64sb1-* | mipsisa64sb1el-* \
-       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
-       | mipstx39-* | mipstx39el-* \
-       | mmix-* \
-       | mt-* \
-       | msp430-* \
-       | nios-* | nios2-* \
-       | none-* | np1-* | ns16k-* | ns32k-* \
-       | orion-* \
-       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-       | pyramid-* \
-       | romp-* | rs6000-* | rx-* \
-       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-       | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
-       | tahoe-* | thumb-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tile-* | tilegx-* \
-       | tron-* \
-       | ubicom32-* \
-       | v850-* | v850e-* | vax-* \
-       | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-       | xstormy16-* | xtensa*-* \
-       | ymp-* \
-       | z8k-* | z80-*)
-               ;;
-       # Recognize the basic CPU types without company name, with glob match.
-       xtensa*)
-               basic_machine=$basic_machine-unknown
-               ;;
-       # Recognize the various machine names and aliases which stand
-       # for a CPU type and a company and sometimes even an OS.
-       386bsd)
-               basic_machine=i386-unknown
-               os=-bsd
-               ;;
-       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               basic_machine=m68000-att
-               ;;
-       3b*)
-               basic_machine=we32k-att
-               ;;
-       a29khif)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       abacus)
-               basic_machine=abacus-unknown
-               ;;
-       adobe68k)
-               basic_machine=m68010-adobe
-               os=-scout
-               ;;
-       alliant | fx80)
-               basic_machine=fx80-alliant
-               ;;
-       altos | altos3068)
-               basic_machine=m68k-altos
-               ;;
-       am29k)
-               basic_machine=a29k-none
-               os=-bsd
-               ;;
-       amd64)
-               basic_machine=x86_64-pc
-               ;;
-       amd64-*)
-               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       amdahl)
-               basic_machine=580-amdahl
-               os=-sysv
-               ;;
-       amiga | amiga-*)
-               basic_machine=m68k-unknown
-               ;;
-       amigaos | amigados)
-               basic_machine=m68k-unknown
-               os=-amigaos
-               ;;
-       amigaunix | amix)
-               basic_machine=m68k-unknown
-               os=-sysv4
-               ;;
-       apollo68)
-               basic_machine=m68k-apollo
-               os=-sysv
-               ;;
-       apollo68bsd)
-               basic_machine=m68k-apollo
-               os=-bsd
-               ;;
-       aros)
-               basic_machine=i386-pc
-               os=-aros
-               ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-               ;;
-       balance)
-               basic_machine=ns32k-sequent
-               os=-dynix
-               ;;
-       blackfin)
-               basic_machine=bfin-unknown
-               os=-linux
-               ;;
-       blackfin-*)
-               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-       bluegene*)
-               basic_machine=powerpc-ibm
-               os=-cnk
-               ;;
-       c54x-*)
-               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       c55x-*)
-               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       c6x-*)
-               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       c90)
-               basic_machine=c90-cray
-               os=-unicos
-               ;;
-        cegcc)
-               basic_machine=arm-unknown
-               os=-cegcc
-               ;;
-       convex-c1)
-               basic_machine=c1-convex
-               os=-bsd
-               ;;
-       convex-c2)
-               basic_machine=c2-convex
-               os=-bsd
-               ;;
-       convex-c32)
-               basic_machine=c32-convex
-               os=-bsd
-               ;;
-       convex-c34)
-               basic_machine=c34-convex
-               os=-bsd
-               ;;
-       convex-c38)
-               basic_machine=c38-convex
-               os=-bsd
-               ;;
-       cray | j90)
-               basic_machine=j90-cray
-               os=-unicos
-               ;;
-       craynv)
-               basic_machine=craynv-cray
-               os=-unicosmp
-               ;;
-       cr16)
-               basic_machine=cr16-unknown
-               os=-elf
-               ;;
-       crds | unos)
-               basic_machine=m68k-crds
-               ;;
-       crisv32 | crisv32-* | etraxfs*)
-               basic_machine=crisv32-axis
-               ;;
-       cris | cris-* | etrax*)
-               basic_machine=cris-axis
-               ;;
-       crx)
-               basic_machine=crx-unknown
-               os=-elf
-               ;;
-       da30 | da30-*)
-               basic_machine=m68k-da30
-               ;;
-       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-               basic_machine=mips-dec
-               ;;
-       decsystem10* | dec10*)
-               basic_machine=pdp10-dec
-               os=-tops10
-               ;;
-       decsystem20* | dec20*)
-               basic_machine=pdp10-dec
-               os=-tops20
-               ;;
-       delta | 3300 | motorola-3300 | motorola-delta \
-             | 3300-motorola | delta-motorola)
-               basic_machine=m68k-motorola
-               ;;
-       delta88)
-               basic_machine=m88k-motorola
-               os=-sysv3
-               ;;
-       dicos)
-               basic_machine=i686-pc
-               os=-dicos
-               ;;
-       djgpp)
-               basic_machine=i586-pc
-               os=-msdosdjgpp
-               ;;
-       dpx20 | dpx20-*)
-               basic_machine=rs6000-bull
-               os=-bosx
-               ;;
-       dpx2* | dpx2*-bull)
-               basic_machine=m68k-bull
-               os=-sysv3
-               ;;
-       ebmon29k)
-               basic_machine=a29k-amd
-               os=-ebmon
-               ;;
-       elxsi)
-               basic_machine=elxsi-elxsi
-               os=-bsd
-               ;;
-       encore | umax | mmax)
-               basic_machine=ns32k-encore
-               ;;
-       es1800 | OSE68k | ose68k | ose | OSE)
-               basic_machine=m68k-ericsson
-               os=-ose
-               ;;
-       fx2800)
-               basic_machine=i860-alliant
-               ;;
-       genix)
-               basic_machine=ns32k-ns
-               ;;
-       gmicro)
-               basic_machine=tron-gmicro
-               os=-sysv
-               ;;
-       go32)
-               basic_machine=i386-pc
-               os=-go32
-               ;;
-       h3050r* | hiux*)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       h8300hms)
-               basic_machine=h8300-hitachi
-               os=-hms
-               ;;
-       h8300xray)
-               basic_machine=h8300-hitachi
-               os=-xray
-               ;;
-       h8500hms)
-               basic_machine=h8500-hitachi
-               os=-hms
-               ;;
-       harris)
-               basic_machine=m88k-harris
-               os=-sysv3
-               ;;
-       hp300-*)
-               basic_machine=m68k-hp
-               ;;
-       hp300bsd)
-               basic_machine=m68k-hp
-               os=-bsd
-               ;;
-       hp300hpux)
-               basic_machine=m68k-hp
-               os=-hpux
-               ;;
-       hp3k9[0-9][0-9] | hp9[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hp9k2[0-9][0-9] | hp9k31[0-9])
-               basic_machine=m68000-hp
-               ;;
-       hp9k3[2-9][0-9])
-               basic_machine=m68k-hp
-               ;;
-       hp9k6[0-9][0-9] | hp6[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hp9k7[0-79][0-9] | hp7[0-79][0-9])
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k78[0-9] | hp78[0-9])
-               # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-               # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[0-9][13679] | hp8[0-9][13679])
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hppa-next)
-               os=-nextstep3
-               ;;
-       hppaosf)
-               basic_machine=hppa1.1-hp
-               os=-osf
-               ;;
-       hppro)
-               basic_machine=hppa1.1-hp
-               os=-proelf
-               ;;
-       i370-ibm* | ibm*)
-               basic_machine=i370-ibm
-               ;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-       i*86v32)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv32
-               ;;
-       i*86v4*)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv4
-               ;;
-       i*86v)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv
-               ;;
-       i*86sol2)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-solaris2
-               ;;
-       i386mach)
-               basic_machine=i386-mach
-               os=-mach
-               ;;
-       i386-vsta | vsta)
-               basic_machine=i386-unknown
-               os=-vsta
-               ;;
-       iris | iris4d)
-               basic_machine=mips-sgi
-               case $os in
-                   -irix*)
-                       ;;
-                   *)
-                       os=-irix4
-                       ;;
-               esac
-               ;;
-       isi68 | isi)
-               basic_machine=m68k-isi
-               os=-sysv
-               ;;
-       m68knommu)
-               basic_machine=m68k-unknown
-               os=-linux
-               ;;
-       m68knommu-*)
-               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-       m88k-omron*)
-               basic_machine=m88k-omron
-               ;;
-       magnum | m3230)
-               basic_machine=mips-mips
-               os=-sysv
-               ;;
-       merlin)
-               basic_machine=ns32k-utek
-               os=-sysv
-               ;;
-        microblaze)
-               basic_machine=microblaze-xilinx
-               ;;
-       mingw32)
-               basic_machine=i386-pc
-               os=-mingw32
-               ;;
-       mingw32ce)
-               basic_machine=arm-unknown
-               os=-mingw32ce
-               ;;
-       miniframe)
-               basic_machine=m68000-convergent
-               ;;
-       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
-               ;;
-       mips3*-*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-               ;;
-       mips3*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-               ;;
-       monitor)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       morphos)
-               basic_machine=powerpc-unknown
-               os=-morphos
-               ;;
-       msdos)
-               basic_machine=i386-pc
-               os=-msdos
-               ;;
-       ms1-*)
-               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
-               ;;
-       mvs)
-               basic_machine=i370-ibm
-               os=-mvs
-               ;;
-       ncr3000)
-               basic_machine=i486-ncr
-               os=-sysv4
-               ;;
-       netbsd386)
-               basic_machine=i386-unknown
-               os=-netbsd
-               ;;
-       netwinder)
-               basic_machine=armv4l-rebel
-               os=-linux
-               ;;
-       news | news700 | news800 | news900)
-               basic_machine=m68k-sony
-               os=-newsos
-               ;;
-       news1000)
-               basic_machine=m68030-sony
-               os=-newsos
-               ;;
-       news-3600 | risc-news)
-               basic_machine=mips-sony
-               os=-newsos
-               ;;
-       necv70)
-               basic_machine=v70-nec
-               os=-sysv
-               ;;
-       next | m*-next )
-               basic_machine=m68k-next
-               case $os in
-                   -nextstep* )
-                       ;;
-                   -ns2*)
-                     os=-nextstep2
-                       ;;
-                   *)
-                     os=-nextstep3
-                       ;;
-               esac
-               ;;
-       nh3000)
-               basic_machine=m68k-harris
-               os=-cxux
-               ;;
-       nh[45]000)
-               basic_machine=m88k-harris
-               os=-cxux
-               ;;
-       nindy960)
-               basic_machine=i960-intel
-               os=-nindy
-               ;;
-       mon960)
-               basic_machine=i960-intel
-               os=-mon960
-               ;;
-       nonstopux)
-               basic_machine=mips-compaq
-               os=-nonstopux
-               ;;
-       np1)
-               basic_machine=np1-gould
-               ;;
-       nsr-tandem)
-               basic_machine=nsr-tandem
-               ;;
-       op50n-* | op60c-*)
-               basic_machine=hppa1.1-oki
-               os=-proelf
-               ;;
-       openrisc | openrisc-*)
-               basic_machine=or32-unknown
-               ;;
-       os400)
-               basic_machine=powerpc-ibm
-               os=-os400
-               ;;
-       OSE68000 | ose68000)
-               basic_machine=m68000-ericsson
-               os=-ose
-               ;;
-       os68k)
-               basic_machine=m68k-none
-               os=-os68k
-               ;;
-       pa-hitachi)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       paragon)
-               basic_machine=i860-intel
-               os=-osf
-               ;;
-       parisc)
-               basic_machine=hppa-unknown
-               os=-linux
-               ;;
-       parisc-*)
-               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-       pbd)
-               basic_machine=sparc-tti
-               ;;
-       pbb)
-               basic_machine=m68k-tti
-               ;;
-       pc532 | pc532-*)
-               basic_machine=ns32k-pc532
-               ;;
-       pc98)
-               basic_machine=i386-pc
-               ;;
-       pc98-*)
-               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentium | p5 | k5 | k6 | nexgen | viac3)
-               basic_machine=i586-pc
-               ;;
-       pentiumpro | p6 | 6x86 | athlon | athlon_*)
-               basic_machine=i686-pc
-               ;;
-       pentiumii | pentium2 | pentiumiii | pentium3)
-               basic_machine=i686-pc
-               ;;
-       pentium4)
-               basic_machine=i786-pc
-               ;;
-       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentium4-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pn)
-               basic_machine=pn-gould
-               ;;
-       power)  basic_machine=power-ibm
-               ;;
-       ppc)    basic_machine=powerpc-unknown
-               ;;
-       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppcle | powerpclittle | ppc-le | powerpc-little)
-               basic_machine=powerpcle-unknown
-               ;;
-       ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppc64)  basic_machine=powerpc64-unknown
-               ;;
-       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-               basic_machine=powerpc64le-unknown
-               ;;
-       ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ps2)
-               basic_machine=i386-ibm
-               ;;
-       pw32)
-               basic_machine=i586-unknown
-               os=-pw32
-               ;;
-       rdos)
-               basic_machine=i386-pc
-               os=-rdos
-               ;;
-       rom68k)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       rm[46]00)
-               basic_machine=mips-siemens
-               ;;
-       rtpc | rtpc-*)
-               basic_machine=romp-ibm
-               ;;
-       s390 | s390-*)
-               basic_machine=s390-ibm
-               ;;
-       s390x | s390x-*)
-               basic_machine=s390x-ibm
-               ;;
-       sa29200)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       sb1)
-               basic_machine=mipsisa64sb1-unknown
-               ;;
-       sb1el)
-               basic_machine=mipsisa64sb1el-unknown
-               ;;
-       sde)
-               basic_machine=mipsisa32-sde
-               os=-elf
-               ;;
-       sei)
-               basic_machine=mips-sei
-               os=-seiux
-               ;;
-       sequent)
-               basic_machine=i386-sequent
-               ;;
-       sh)
-               basic_machine=sh-hitachi
-               os=-hms
-               ;;
-       sh5el)
-               basic_machine=sh5le-unknown
-               ;;
-       sh64)
-               basic_machine=sh64-unknown
-               ;;
-       sparclite-wrs | simso-wrs)
-               basic_machine=sparclite-wrs
-               os=-vxworks
-               ;;
-       sps7)
-               basic_machine=m68k-bull
-               os=-sysv2
-               ;;
-       spur)
-               basic_machine=spur-unknown
-               ;;
-       st2000)
-               basic_machine=m68k-tandem
-               ;;
-       stratus)
-               basic_machine=i860-stratus
-               os=-sysv4
-               ;;
-       sun2)
-               basic_machine=m68000-sun
-               ;;
-       sun2os3)
-               basic_machine=m68000-sun
-               os=-sunos3
-               ;;
-       sun2os4)
-               basic_machine=m68000-sun
-               os=-sunos4
-               ;;
-       sun3os3)
-               basic_machine=m68k-sun
-               os=-sunos3
-               ;;
-       sun3os4)
-               basic_machine=m68k-sun
-               os=-sunos4
-               ;;
-       sun4os3)
-               basic_machine=sparc-sun
-               os=-sunos3
-               ;;
-       sun4os4)
-               basic_machine=sparc-sun
-               os=-sunos4
-               ;;
-       sun4sol2)
-               basic_machine=sparc-sun
-               os=-solaris2
-               ;;
-       sun3 | sun3-*)
-               basic_machine=m68k-sun
-               ;;
-       sun4)
-               basic_machine=sparc-sun
-               ;;
-       sun386 | sun386i | roadrunner)
-               basic_machine=i386-sun
-               ;;
-       sv1)
-               basic_machine=sv1-cray
-               os=-unicos
-               ;;
-       symmetry)
-               basic_machine=i386-sequent
-               os=-dynix
-               ;;
-       t3e)
-               basic_machine=alphaev5-cray
-               os=-unicos
-               ;;
-       t90)
-               basic_machine=t90-cray
-               os=-unicos
-               ;;
-        # This must be matched before tile*.
-        tilegx*)
-               basic_machine=tilegx-unknown
-               os=-linux-gnu
-               ;;
-       tile*)
-               basic_machine=tile-unknown
-               os=-linux-gnu
-               ;;
-       tx39)
-               basic_machine=mipstx39-unknown
-               ;;
-       tx39el)
-               basic_machine=mipstx39el-unknown
-               ;;
-       toad1)
-               basic_machine=pdp10-xkl
-               os=-tops20
-               ;;
-       tower | tower-32)
-               basic_machine=m68k-ncr
-               ;;
-       tpf)
-               basic_machine=s390x-ibm
-               os=-tpf
-               ;;
-       udi29k)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       ultra3)
-               basic_machine=a29k-nyu
-               os=-sym1
-               ;;
-       v810 | necv810)
-               basic_machine=v810-nec
-               os=-none
-               ;;
-       vaxv)
-               basic_machine=vax-dec
-               os=-sysv
-               ;;
-       vms)
-               basic_machine=vax-dec
-               os=-vms
-               ;;
-       vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
-               ;;
-       vxworks960)
-               basic_machine=i960-wrs
-               os=-vxworks
-               ;;
-       vxworks68)
-               basic_machine=m68k-wrs
-               os=-vxworks
-               ;;
-       vxworks29k)
-               basic_machine=a29k-wrs
-               os=-vxworks
-               ;;
-       w65*)
-               basic_machine=w65-wdc
-               os=-none
-               ;;
-       w89k-*)
-               basic_machine=hppa1.1-winbond
-               os=-proelf
-               ;;
-       xbox)
-               basic_machine=i686-pc
-               os=-mingw32
-               ;;
-       xps | xps100)
-               basic_machine=xps100-honeywell
-               ;;
-       ymp)
-               basic_machine=ymp-cray
-               os=-unicos
-               ;;
-       z8k-*-coff)
-               basic_machine=z8k-unknown
-               os=-sim
-               ;;
-       z80-*-coff)
-               basic_machine=z80-unknown
-               os=-sim
-               ;;
-       none)
-               basic_machine=none-none
-               os=-none
-               ;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-       w89k)
-               basic_machine=hppa1.1-winbond
-               ;;
-       op50n)
-               basic_machine=hppa1.1-oki
-               ;;
-       op60c)
-               basic_machine=hppa1.1-oki
-               ;;
-       romp)
-               basic_machine=romp-ibm
-               ;;
-       mmix)
-               basic_machine=mmix-knuth
-               ;;
-       rs6000)
-               basic_machine=rs6000-ibm
-               ;;
-       vax)
-               basic_machine=vax-dec
-               ;;
-       pdp10)
-               # there are many clones, so DEC is not a safe bet
-               basic_machine=pdp10-unknown
-               ;;
-       pdp11)
-               basic_machine=pdp11-dec
-               ;;
-       we32k)
-               basic_machine=we32k-att
-               ;;
-       sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
-               basic_machine=sh-unknown
-               ;;
-       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
-               basic_machine=sparc-sun
-               ;;
-       cydra)
-               basic_machine=cydra-cydrome
-               ;;
-       orion)
-               basic_machine=orion-highlevel
-               ;;
-       orion105)
-               basic_machine=clipper-highlevel
-               ;;
-       mac | mpw | mac-mpw)
-               basic_machine=m68k-apple
-               ;;
-       pmac | pmac-mpw)
-               basic_machine=powerpc-apple
-               ;;
-       *-unknown)
-               # Make sure to match an already-canonicalized machine name.
-               ;;
-       *)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-       *-digital*)
-               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-               ;;
-       *-commodore*)
-               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-               ;;
-       *)
-               ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-       # -solaris* is a basic system type, with this one exception.
-        -auroraux)
-               os=-auroraux
-               ;;
-       -solaris1 | -solaris1.*)
-               os=`echo $os | sed -e 's|solaris1|sunos4|'`
-               ;;
-       -solaris)
-               os=-solaris2
-               ;;
-       -svr4*)
-               os=-sysv4
-               ;;
-       -unixware*)
-               os=-sysv4.2uw
-               ;;
-       -gnu/linux*)
-               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-               ;;
-       # First accept the basic system types.
-       # The portable systems comes first.
-       # Each alternative MUST END IN A *, to match a version number.
-       # -sysv* is not here because it comes later, after sysvr4.
-       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-             | -sym* | -kopensolaris* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* | -aros* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -openbsd* | -solidbsd* \
-             | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-             | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -chorusos* | -chorusrdb* | -cegcc* \
-             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -linux-android* \
-             | -linux-newlib* | -linux-uclibc* \
-             | -uxpv* | -beos* | -mpeix* | -udk* \
-             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
-       # Remember, each alternative MUST END IN *, to match a version number.
-               ;;
-       -qnx*)
-               case $basic_machine in
-                   x86-* | i*86-*)
-                       ;;
-                   *)
-                       os=-nto$os
-                       ;;
-               esac
-               ;;
-       -nto-qnx*)
-               ;;
-       -nto*)
-               os=`echo $os | sed -e 's|nto|nto-qnx|'`
-               ;;
-       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
-             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-               ;;
-       -mac*)
-               os=`echo $os | sed -e 's|mac|macos|'`
-               ;;
-       -linux-dietlibc)
-               os=-linux-dietlibc
-               ;;
-       -linux*)
-               os=`echo $os | sed -e 's|linux|linux-gnu|'`
-               ;;
-       -sunos5*)
-               os=`echo $os | sed -e 's|sunos5|solaris2|'`
-               ;;
-       -sunos6*)
-               os=`echo $os | sed -e 's|sunos6|solaris3|'`
-               ;;
-       -opened*)
-               os=-openedition
-               ;;
-        -os400*)
-               os=-os400
-               ;;
-       -wince*)
-               os=-wince
-               ;;
-       -osfrose*)
-               os=-osfrose
-               ;;
-       -osf*)
-               os=-osf
-               ;;
-       -utek*)
-               os=-bsd
-               ;;
-       -dynix*)
-               os=-bsd
-               ;;
-       -acis*)
-               os=-aos
-               ;;
-       -atheos*)
-               os=-atheos
-               ;;
-       -syllable*)
-               os=-syllable
-               ;;
-       -386bsd)
-               os=-bsd
-               ;;
-       -ctix* | -uts*)
-               os=-sysv
-               ;;
-       -nova*)
-               os=-rtmk-nova
-               ;;
-       -ns2 )
-               os=-nextstep2
-               ;;
-       -nsk*)
-               os=-nsk
-               ;;
-       # Preserve the version number of sinix5.
-       -sinix5.*)
-               os=`echo $os | sed -e 's|sinix|sysv|'`
-               ;;
-       -sinix*)
-               os=-sysv4
-               ;;
-        -tpf*)
-               os=-tpf
-               ;;
-       -triton*)
-               os=-sysv3
-               ;;
-       -oss*)
-               os=-sysv3
-               ;;
-       -svr4)
-               os=-sysv4
-               ;;
-       -svr3)
-               os=-sysv3
-               ;;
-       -sysvr4)
-               os=-sysv4
-               ;;
-       # This must come after -sysvr4.
-       -sysv*)
-               ;;
-       -ose*)
-               os=-ose
-               ;;
-       -es1800*)
-               os=-ose
-               ;;
-       -xenix)
-               os=-xenix
-               ;;
-       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-               os=-mint
-               ;;
-       -aros*)
-               os=-aros
-               ;;
-       -kaos*)
-               os=-kaos
-               ;;
-       -zvmoe)
-               os=-zvmoe
-               ;;
-       -dicos*)
-               os=-dicos
-               ;;
-        -nacl*)
-               ;;
-       -none)
-               ;;
-       *)
-               # Get rid of the `-' at the beginning of $os.
-               os=`echo $os | sed 's/[^-]*-//'`
-               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-               exit 1
-               ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-        score-*)
-               os=-elf
-               ;;
-        spu-*)
-               os=-elf
-               ;;
-       *-acorn)
-               os=-riscix1.2
-               ;;
-       arm*-rebel)
-               os=-linux
-               ;;
-       arm*-semi)
-               os=-aout
-               ;;
-        c4x-* | tic4x-*)
-               os=-coff
-               ;;
-       tic54x-*)
-               os=-coff
-               ;;
-       tic55x-*)
-               os=-coff
-               ;;
-       tic6x-*)
-               os=-coff
-               ;;
-       # This must come before the *-dec entry.
-       pdp10-*)
-               os=-tops20
-               ;;
-       pdp11-*)
-               os=-none
-               ;;
-       *-dec | vax-*)
-               os=-ultrix4.2
-               ;;
-       m68*-apollo)
-               os=-domain
-               ;;
-       i386-sun)
-               os=-sunos4.0.2
-               ;;
-       m68000-sun)
-               os=-sunos3
-               # This also exists in the configure program, but was not the
-               # default.
-               # os=-sunos4
-               ;;
-       m68*-cisco)
-               os=-aout
-               ;;
-        mep-*)
-               os=-elf
-               ;;
-       mips*-cisco)
-               os=-elf
-               ;;
-       mips*-*)
-               os=-elf
-               ;;
-       or32-*)
-               os=-coff
-               ;;
-       *-tti)  # must be before sparc entry or we get the wrong os.
-               os=-sysv3
-               ;;
-       sparc-* | *-sun)
-               os=-sunos4.1.1
-               ;;
-       *-be)
-               os=-beos
-               ;;
-       *-haiku)
-               os=-haiku
-               ;;
-       *-ibm)
-               os=-aix
-               ;;
-       *-knuth)
-               os=-mmixware
-               ;;
-       *-wec)
-               os=-proelf
-               ;;
-       *-winbond)
-               os=-proelf
-               ;;
-       *-oki)
-               os=-proelf
-               ;;
-       *-hp)
-               os=-hpux
-               ;;
-       *-hitachi)
-               os=-hiux
-               ;;
-       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-               os=-sysv
-               ;;
-       *-cbm)
-               os=-amigaos
-               ;;
-       *-dg)
-               os=-dgux
-               ;;
-       *-dolphin)
-               os=-sysv3
-               ;;
-       m68k-ccur)
-               os=-rtu
-               ;;
-       m88k-omron*)
-               os=-luna
-               ;;
-       *-next )
-               os=-nextstep
-               ;;
-       *-sequent)
-               os=-ptx
-               ;;
-       *-crds)
-               os=-unos
-               ;;
-       *-ns)
-               os=-genix
-               ;;
-       i370-*)
-               os=-mvs
-               ;;
-       *-next)
-               os=-nextstep3
-               ;;
-       *-gould)
-               os=-sysv
-               ;;
-       *-highlevel)
-               os=-bsd
-               ;;
-       *-encore)
-               os=-bsd
-               ;;
-       *-sgi)
-               os=-irix
-               ;;
-       *-siemens)
-               os=-sysv4
-               ;;
-       *-masscomp)
-               os=-rtu
-               ;;
-       f30[01]-fujitsu | f700-fujitsu)
-               os=-uxpv
-               ;;
-       *-rom68k)
-               os=-coff
-               ;;
-       *-*bug)
-               os=-coff
-               ;;
-       *-apple)
-               os=-macos
-               ;;
-       *-atari*)
-               os=-mint
-               ;;
-       *)
-               os=-none
-               ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-       *-unknown)
-               case $os in
-                       -riscix*)
-                               vendor=acorn
-                               ;;
-                       -sunos*)
-                               vendor=sun
-                               ;;
-                       -cnk*|-aix*)
-                               vendor=ibm
-                               ;;
-                       -beos*)
-                               vendor=be
-                               ;;
-                       -hpux*)
-                               vendor=hp
-                               ;;
-                       -mpeix*)
-                               vendor=hp
-                               ;;
-                       -hiux*)
-                               vendor=hitachi
-                               ;;
-                       -unos*)
-                               vendor=crds
-                               ;;
-                       -dgux*)
-                               vendor=dg
-                               ;;
-                       -luna*)
-                               vendor=omron
-                               ;;
-                       -genix*)
-                               vendor=ns
-                               ;;
-                       -mvs* | -opened*)
-                               vendor=ibm
-                               ;;
-                       -os400*)
-                               vendor=ibm
-                               ;;
-                       -ptx*)
-                               vendor=sequent
-                               ;;
-                       -tpf*)
-                               vendor=ibm
-                               ;;
-                       -vxsim* | -vxworks* | -windiss*)
-                               vendor=wrs
-                               ;;
-                       -aux*)
-                               vendor=apple
-                               ;;
-                       -hms*)
-                               vendor=hitachi
-                               ;;
-                       -mpw* | -macos*)
-                               vendor=apple
-                               ;;
-                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-                               vendor=atari
-                               ;;
-                       -vos*)
-                               vendor=stratus
-                               ;;
-               esac
-               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-               ;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/stepmake/bin/fake-msgfmt.sh b/stepmake/bin/fake-msgfmt.sh
deleted file mode 100644 (file)
index 1a97f8d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-IDENTIFICATION=fake-msgfmt.sh
-
-OUTPUT='/dev/null'
-
-while getopts ':d:o:' OPT;
-do
-case $OPT in
-o)
-    OUTPUT=$OPTARG
-    ;;
-*)
-    ;;
-    esac
-done
-
-
-
-shift `expr $OPTIND - 1`
-#
-# Input file name
-#
-if [ "$1" = "" ]
-then
-  echo "$IDENTIFICATION: No input file name given"
-  exit 1
-fi
-
-echo Faking msgfmt: copying $1 to $OUTPUT
-
-
-cp $1 $OUTPUT
diff --git a/stepmake/bin/install-sh b/stepmake/bin/install-sh
deleted file mode 100755 (executable)
index e69de29..0000000
diff --git a/stepmake/bin/install.py b/stepmake/bin/install.py
deleted file mode 100644 (file)
index 9818543..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-#!@PYTHON@
-import string
-import getopt
-import sys
-import os
-import shutil
-(opts, args) = getopt.getopt (sys.argv[1:], 'b:cdg:m:o:st:', [])
-transform_base = None
-group = None
-owner = None
-transform = None
-mode = None 
-copy = False
-create_dir = False
-
-for (o,a) in opts:
-    if o == '-b':
-        transform_base = a
-    elif o == '-c':
-        copy = True
-    elif o == '-d':
-        create_dir = True
-    elif o == '-g':
-        group = a
-    elif o == '-m':
-        mode = string.atoi (a, 8)
-    elif o == '-o':
-        owner = a
-    elif o == '-s':
-        strip = True
-    elif o == '-t':
-        transform = a
-    elif o == '-h':
-        print ''' Usage: $0 [OPTION]... SRCFILE DSTFILE
- or: $0 [OPTION]... SRCFILES... DIRECTORY
- or: $0 -d DIRECTORIES...
-
-In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
-In the second, create the directory path DIR.
-
-Options:
--b=TRANSFORMBASENAME
--c         copy source (using $cpprog) instead of moving (using $mvprog).
--d         create directories instead of installing files.
--g GROUP   $chgrp installed files to GROUP.
--m MODE    $chmod installed files to MODE.
--o USER    $chown installed files to USER.
--s         strip installed files (using $stripprog).
--t=TRANSFORM
---help     display this help and exit.
---version  display version info and exit.'''
-        sys.exit (0)
-
-if not mode:
-    if create_dir:
-        mode = 0755
-    else:
-        mode = 0644
-        
-
-chown_me = []
-
-dest = None
-if not create_dir:
-    dest = args.pop()
-
-for f in args:
-    if create_dir:
-        if os.path.isdir (f):
-            continue
-        
-        os.makedirs (f, mode=mode)
-        chown_me.append (f)
-    else:
-        if copy:
-            if os.path.exists (dest) and not os.path.isdir (dest):
-                os.remove (dest)
-            shutil.copy2 (f, dest)
-        else:
-            shutil.move (f, dest)
-
-        if os.path.isdir (dest):
-            chown_me.append (os.path.join (dest, os.path.basename (f)))
-        else:
-            chown_me.append (dest)
-
-for f in chown_me:
-    os.chmod (f, mode)
-    if group <> None or owner <> None:
-        os.chown (f, group, owner)
-    
-    
-
-        
-
diff --git a/stepmake/bin/make-version.py b/stepmake/bin/make-version.py
deleted file mode 100644 (file)
index 61247fb..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-
-import re
-import sys
-
-PROGRAM = sys.argv[0]
-VERSION = sys.argv[1]
-defs = []
-for i in open (VERSION).readlines ():
-    i = re.sub ('#.*','', i)
-    m  = re.search ('([^ =]*)[\t ]*=[ \t]*([^ \t]*)[ \t]*\n', i)
-    if m:
-        defs.append ((m.group (1), m.group (2)))
-
-sys.stdout.write (r'''
-/*
- Automatically generated from %(VERSION)s
- by %(PROGRAM)s.
-*/
-#ifndef VERSION_HH
-#define VERSION_HH
-''' % vars ())
-
-for name, expansion in defs:
-    # GUILE leaks autoconf data into userspace. 
-    sys.stdout.write (r'''
-#ifdef %(name)s
-#undef %(name)s
-#endif /* %(name)s */
-#define %(name)s "%(expansion)s"
-''' % vars ())
-    
-if ('MY_PATCH_LEVEL', '') in defs:
-    sys.stdout.write (r'''
-#define NO_MY_PATCHLEVEL
-#define TOPLEVEL_VERSION MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL
-''')
-else:
-    sys.stdout.write (r'''
-#define TOPLEVEL_VERSION MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL "." MY_PATCH_LEVEL
-''')
-
-sys.stdout.write(r'''
-#endif /* VERSION_HH */
-''')
-    
diff --git a/stepmake/bin/ntpwd.py b/stepmake/bin/ntpwd.py
deleted file mode 100644 (file)
index a4838b3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-"""Winnt access into /etc/passwd via account name"""
-
-import sys
-import string
-
-def getpwname( name, pwfile='/etc/passwd' ):
-  "Get password record that matches the specified name"
-  try:
-    _fd = open( pwfile, 'r' )
-  except:
-    sys.stderr.write("Error unable to locate" + pwfile + "\n")
-    sys.stderr.write("Consult gnu-win32 command mkpasswd\n")
-    sys.exit(1)
-
-  _data = _fd.read()
-  _fd.close()
-    
-  for _line in string.split(_data, '\n'):
-    _record=string.split( _line, ':' );
-    if _record[0] == name:
-      return _record
-  return ()
-
-def _test():
-  pw = getpwname( 'jeff' )
-  print pw[4]
-
-if __name__ == '__main__':
-    _test()
diff --git a/stepmake/bin/stepmakeise.sh b/stepmake/bin/stepmakeise.sh
deleted file mode 100755 (executable)
index e2ae7cf..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/sh
-# stepmakeise.sh
-
-help () {
-       cat <<EOF
-Usage: ../stepmake-x.x.x/bin/stepmakeise.sh
-Include or update package's StepMake.
-EOF
-}
-
-name=`basename $0`
-reldir=../releases
-stepbin=`dirname $0`
-
-if [ $# -ne 0 ]; then
-       help
-       exit 2
-fi
-
-value ()
-{
-    expression=`echo $1 | sed 's/\./ \\\\\* 100 + /g'`
-    # urg?  $1=`expr $expression`
-    urg=/tmp/stepmakeise.$$
-    echo expr $expression > $urg
-    echo `. $urg`
-    rm -f $urg
-}
-
-if [ -r stepmake ]; then
-       . ./stepmake/VERSION
-       if [ "x$PACKAGE_NAME" != "xStepMake" ]; then
-               echo "$name: huh 1?"
-               exit 1
-       fi
-       echo "Stepmake found"
-       printf "Checking version..."
-       VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
-       # urg
-       version=$VERSION
-       if [ "$MY_PATCH_LEVEL" != "" ]; then
-               VERSION=$VERSION.$MY_PATCH_LEVEL
-       fi
-       echo " $version"
-else
-       VERSION="0.0.0"
-       version=$VERSION
-fi
-
-if [ true ]; then
-       # urg
-       printf "Checking latest..."
-       if [ ! -r $reldir ]; then
-               echo "$name: huh 2?"
-               exit 1
-       fi
-       LATEST=`cd $reldir; ls -t1 stepmake-*.tar.gz | head -n 1 | sed 's!stepmake-!!' | sed 's!.tar.gz!!'`
-       # urg
-       latest=`echo $LATEST | sed 's/\.[a-zA-Z][a-zA-Z]*[0-9]*$//'`
-       latest_val=`value $latest`
-       echo " $latest"
-       version_val=`value $version`
-       if [ $latest_val -le $version_val ]; then
-           echo "relax, StepMake is up to date"
-           exit 0
-       fi
-       printf "Updating StepMake..."
-       (set +x; rm -rf stepmake; tar xzf $reldir/stepmake-$LATEST.tar.gz; mv stepmake-$LATEST stepmake)
-       echo "ok"
-fi
-
-if [ -r VERSION ]; then
-       echo "$name: warning: VERSION found: not stepmakeising"
-       echo "You should rerun configure"
-       rm -f Makefile
-       exit 0
-fi
-
-files="VERSION make aclocal.in configure.in config.hh.in config.make.in"
-for i in $files; do
-       if [ -r $i ]; then
-               echo "$name: can't stepmakise: $i already present"
-               exit 1
-       fi
-done
-
-printf "Stepmakeising..."
-for i in $files; do
-       cp -prv stepmake/$i .
-done
-
-cat <<EOF
-ok
-Please edit the folowing files to your package's needs:
-
-    VERSION
-    configure.in 
-
-and look at:
-
-    make/Toplevel.make.in
-    config.hh.in
-    config.make.in
-EOF
-
diff --git a/stepmake/bin/text2html.py b/stepmake/bin/text2html.py
deleted file mode 100644 (file)
index 51f3948..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#@PYTHON@
-import os
-import re
-import string
-import sys
-
-
-entities = {
-    "&" : 'amp',
-    "`" : 'apos',
-    '>' : 'gt',
-    '<' : 'lt',
-    '"' : 'quot',
-    }
-
-def txt2html (s):
-    for i in entities.keys ():
-        s = re.sub (i, '\001' + entities[i] + ';', s);
-    s = re.sub ('\001', '&', s);
-    return s
-
-for a in sys.argv[1:]:
-    # hmm, we need: text2html out/foe.txt -> out/foe.html,
-    # -o is a bit overkill?
-    # outfile = os.path.basename (os.path.splitext(a)[0]) + '.html'
-    outfile = os.path.splitext(a)[0] + '.html'
-    
-    try:
-      os.unlink(outfile)
-    except:
-      pass
-
-    s = r"""
-
-<html>
-<head>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
-</head>
-
-<body><pre>
-%s
-</pre></body></html>
-""" % txt2html (open (a).read ())
-    open (outfile, 'w').write (s)
-
-
diff --git a/stepmake/config.hh.in b/stepmake/config.hh.in
deleted file mode 100644 (file)
index 58f6d8b..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* @configure_input@ */
-
-/* Hmm */
-#define PACKAGE "@package@"
-
-/* Toplevel version */
-#define  TOPLEVEL_VERSION "@TOPLEVEL_VERSION@"
-
-/* default init and input dir */
-#define DATADIR "@DATADIR@"
-
-/* default locale dir */
-#define LOCALEDIR "@LOCALEDIR@"
-
diff --git a/stepmake/configure.in b/stepmake/configure.in
deleted file mode 100644 (file)
index 3900ffd..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-dnl configure.in   -*-shell-script-*-
-dnl Process this file with autoconf to produce a configure script. 
-
-# Bootstrap the init proces.
-AC_INIT
-
-# Bootstrap StepMake configure
-# For user package:
-# AC_CONFIG_AUX_DIR(stepmake/bin)
-# For stepmake package:
-AC_CONFIG_AUX_DIR(bin)
-STEPMAKE_INIT
-
-# List a file that identifies your package.
-AC_CONFIG_SRCDIR([make/stepmake.lsm.in])
-# Move to aclocal.m4?
-AC_CONFIG_HEADER([$CONFIGFILE.h:config.hh.in])
-
-# For all packages except the StepMake package itself
-# AC_CONFIG_SUBDIRS(stepmake)
-
-CC=echo
-AC_SUBST(CC)
-# Uncomment the configuration options your package needs.
-# STEPMAKE_COMPILE
-# AC_CHECK_HEADERS([limits.h malloc.h string.h unistd.h values.h])
-# STEPMAKE_CXX
-# STEPMAKE_GXX
-# STEPMAKE_CXXTEMPLATE
-# STEPMAKE_LEXYACC
-# STEPMAKE_LIB
-# STEPMAKE_LIBTOOL
-STEPMAKE_LOCALE
-# STEPMAKE_GETTEXT
-# STEPMAKE_MAN
-# STEPMAKE_MSGFMT
-# STEPMAKE_TEXMF
-# STEPMAKE_TEXMF_DIRS
-
-# AM_PATH_GTK(1.0.0,,AC_MSG_ERROR([please install proper version of gtk]))
-# AM_PATH_GTK__(0.9.4,,AC_MSG_ERROR([please install proper version of gtk--]))
-
-AC_CHECK_PROGS(MAKEINFO, makeinfo, error)
-
-STEPMAKE_END
diff --git a/stepmake/stepmake/GNUmakefile b/stepmake/stepmake/GNUmakefile
deleted file mode 100644 (file)
index f2c693b..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# title           makefile for stepmake
-
-# subdir level:
-#
-depth = ../..
-#
-
-# descent order into subdirectories:
-#
-SUBDIRS =
-#
-
-STEPMAKE_TEMPLATES=makedir install
-
-# bootstrap stepmake:
-#
--include $(depth)/make/stepmake.make
-
-ifeq ($(PACKAGE),STEPMAKE)
-INSTALLATION_DIR=$(datadir)/stepmake
-else
-INSTALLATION_DIR=$(dir $(patsubst %/, %, $(dir $(datadir))))$(package)/stepmake/stepmake
-endif
-INSTALLATION_FILES=GNUmakefile $(MAKE_FILES)
-
index b22da2e9f50706118954ef800ca1e2526d079f47..2ca0bb97bdb68ad73523d9c19100253fe5e05e20 100644 (file)
@@ -1,4 +1,2 @@
 at-dir = $(doc-dir)
 at-ext = .in
-
-EXTRA_DIST_FILES += $(call src-wildcard,*.ihtml)
index 9a51aaa728f948fc43be85d01670529246f0a8e5..f216898fe8dd62e186ce9226e3f384d403a0af85 100644 (file)
@@ -1,13 +1,10 @@
-.PHONY : all clean bin-clean config default dist exe help html lib TAGS\
+.PHONY : all clean bin-clean default dist exe help html lib TAGS\
         po doc doc-stage-1 WWW-1 WWW-2 WWW-post local-WWW-1 local-WWW-2\
         log-clean
 
 all:    default
        $(LOOP)
 
-bin:
-       $(MAKE) PACKAGE=$(PACKAGE) package=$(package) -C lily
-
 man:
        $(LOOP)
 
@@ -33,26 +30,6 @@ dist:
        $(MAKE) -C $(depth) dist
 endif
 
-distclean: clean
-       $(MAKE) local-distclean
-
-cvs-clean:
-       $(MAKE) local-distclean
-       rm -rf out
-       rm -rf out-www
-       rm -f aclocal.m4 configure
-
-maintainerclean:
-       $(LOOP)
-       $(MAKE) local-maintainerclean
-       $(MAKE) local-distclean
-
-
-# This doesn't allow command-line options, is it really useful? -jm
-config:
-       ./$(src-depth)/configure
-
-
 generic-help:
        @echo "Makefile for $(PACKAGE_NAME) $(TOPLEVEL_VERSION)"
        @echo "Usage: make ["VARIABLE=value"]... [TARGET]"
@@ -69,32 +46,27 @@ help: generic-help local-help
        @echo "  doc-clean    clean \`out-www' directory"
        @echo "  install      install programs and data (prefix=$(prefix))"
        @echo "  uninstall    uninstall programs and data"
+       @echo "  test         build regression tests for the program and scripts"
        @echo
        @echo "  *Note: Prepend \`local-' (eg. \`local-clean') to restrict"
        @echo "         any of the above commands to the current directory."
        @echo
        @echo "Other generic targets:"
        @echo "  default      same as the empty target"
-       @echo "  bin          check the lily directory and rebuild lilypond.exe if needed"
        @echo "  exe          update all executables"
        @echo "  help         this help"
        @echo "  lib          update all libraries"
+       @echo "  log-clean    remove .log files"
        @echo "  TAGS         generate tagfiles"
        @echo
-       @echo "\`make' may be invoked from any subdirectory."
+       @echo "\`make' may be invoked from any subdirectory that contains a GNUmakefile."
 
 local-help:
 
-local-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES)
-       mkdir -p $(distdir)/$(localdir)
-       $(LN) $(DIST_FILES:%=$(src-dir)/%) $(distdir)/$(localdir)
-
-       case "$(NON_ESSENTIAL_DIST_FILES)x" in x) ;; *) \
-               $(LN) $(NON_ESSENTIAL_DIST_FILES:%=$(src-dir)/%) $(distdir)/$(localdir);; \
-       esac
-       case "$(OUT_DIST_FILES)x" in x) ;; *) \
-               mkdir -p $(distdir)/$(localdir)/$(outdir); \
-               $(LN) $(OUT_DIST_FILES) $(distdir)/$(localdir)/$(outdir);; \
+local-dist: $(OUT_DIST_FILES)
+       case "$(OUT_DIST_FILES)x" in x) ;; \
+            *) mkdir -p $(distdir)/$(localdir)/$(outdir) && \
+               $(LN) $(OUT_DIST_FILES) $(distdir)/$(localdir)/$(outdir);; \
        esac
        $(foreach i, $(SUBDIRS), $(MAKE) top-src-dir=$(top-src-dir) distdir=$(distdir) localdir=$(localdir)/$(notdir $(i)) -C $(i) local-dist &&) true
 
@@ -115,8 +87,10 @@ local-tags:
                        $(ERROR_LOG) ; \
        fi
 
-$(outdir)/version.hh: $(depth)/VERSION $(config_make) $(step-bindir)/make-version.py
-       $(PYTHON) $(step-bindir)/make-version.py $< > $@
+# Don't use $(buildscript-dir)/make-version, because it is not known whether
+# build process has visited scripts/build
+$(outdir)/version.hh: $(depth)/VERSION $(config_make) $(top-src-dir)/scripts/build/make-version.py
+       $(PYTHON) $(top-src-dir)/scripts/build/make-version.py $< > $@
 
 $(outdir)/config.hh: $(config_h)
        cp -p $< $@
@@ -129,8 +103,6 @@ local-clean:
 
 local-distclean:
 
-local-maintainerclean:
-
 install-strip:
        $(MAKE) INSTALLPY="$(INSTALLPY) -s" install
 
@@ -204,6 +176,7 @@ local-doc:
        $(MAKE) out=www WWW-post
 
 doc-stage-1:
+       $(MAKE) -C $(top-build-dir)/Documentation/po out=www messages
        $(MAKE) -C $(depth)/scripts/build out=
        $(MAKE) out=www WWW-1
 
index 5eba1cc214b034a2606ced700d4092819a83969b..b0fc521e931334a8f4c25867658fe183df7c4b7c 100644 (file)
@@ -39,12 +39,11 @@ distname = $(package)-$(TOPLEVEL_VERSION)
 doc-dir = $(src-depth)/Documentation
 po-srcdir = $(src-depth)/po
 po-outdir = $(depth)/po/$(outdir)
-step-bindir = $(stepmake)/bin
 
 # stepmake package support.
 DEPTH = $(depth)/$(package-depth)
 
-INSTALLPY=$(PYTHON) $(step-bindir)/install.py -c
+INSTALLPY=$(buildscript-dir)/install -c
 INSTALL=$(INSTALLPY)
 
 group-dir = $(shell cd $(DEPTH);pwd)/..
@@ -83,7 +82,6 @@ INCLUDES = $(src-dir)/include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES
 
 M4 = m4
 
-DIST_FILES=$(EXTRA_DIST_FILES) GNUmakefile $(ALL_SOURCES) $(call src-wildcard,SConscript)
 DOCDIR=$(depth)/$(outdir)
 
 #?
index ac5d1b6e8735d2981af0b4ea4d6b9cc32561245c..7847928593ca41173720b7949184321263fc9bf7 100644 (file)
@@ -7,12 +7,8 @@ OUTLSM_FILES=$(addprefix $(outdir)/,$(basename $(LSM_FILES)))
 OUTSPEC_FILES=$(addprefix $(outdir)/,$(basename $(SPEC_FILES)))
 OUT_DIST_FILES= $(strip $(OUTLSM_FILES) $(OUTSPEC_FILES))
 
-EXTRA_DIST_FILES += $(MAKE_FILES)
-
 # these two outdir FILES are distributed, since they make sense to have
 # without running configure and make.
 
 at-dir = $(doc-dir)
 at-ext = .in
-
-
index f4d5332a922e35fdb92db54f191ae6a619eb52eb..aeb75c5f004cf1ab1da0e78b985dfdd93dab11be 100644 (file)
@@ -1,6 +1,4 @@
-
 MF_FILES := $(call src-wildcard,*.mf)
-EXTRA_DIST_FILES += $(MF_FILES)
 MF_TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm))
 MF_DVI_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.dvi))
 MF_LOG_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.log))
index b8e53f4b2ce7280527ce95d903e9f553487592e1..cdb95a45e8942c3a3f590c12124827e877f9adc5 100644 (file)
@@ -6,6 +6,3 @@ MO_FILES = $(addprefix $(outdir)/, $(PO_FILES:.po=.mo))
 
 HELP_CATALOGS = $(PO_FILES:%.po=%)
 CATALOGS = $(HELP_CATALOGS:$(DOMAIN)=)
-
-DIST_FILES += $(POT_FILES) $(PO_FILES)
-
index 5d0e06c12759ec773148afcda62a800c96344d91..fc6ea3fb8a087de804f6fe5f3943edfbb06ec1d9 100644 (file)
@@ -17,5 +17,3 @@ ifneq ($(DARWIN_BUILD),)
 SHARED_FLAGS = -bundle -flat_namespace -undefined suppress
 endif
 OUT_SO_MODULES = $(addprefix $(outdir)/, $(C_FILES:.c=$(SHARED_MODULE_SUFFIX)))
-EXTRA_DIST_FILES += $(PY_MODULES_IN)
-
index d2748a97a3280e2e16ea575485ba9b2c40b2fe11..f26070db8248cd946fc5090cf10c211bbde4a2b3 100644 (file)
@@ -1,31 +1,19 @@
-.PHONY: install-doc uninstall-doc
+.PHONY: install-doc uninstall-doc distclean top-doc
 install-doc:
 uninstall-doc:
 
-local-dist: configure
+distclean: clean doc-clean test-clean log-clean
+       $(MAKE) local-distclean
 
 local-distclean:
-       rm -f config.hh config.make Makefile GNUmakefile \
-               config.cache config.status config.log index.html \
-               stepmake/stepmake/stepmake stepmake/stepmake/bin
+       rm -f config.hh config.make GNUmakefile \
+               config.cache config.status config.log
        rm -rf autom4te.cache
        rm -rf $(outdir)
 
-local-maintainerclean:
-
 GNUmakefile: GNUmakefile.in
        $(MAKE) INFILE=$< OUTFILE=$@ -f $(stepdir)/automatically-generated.sub.make
 
-ifneq ($(PACKAGE),STEPMAKE)
-aclocal.m4: $(stepmake)/aclocal.m4
-       $(MAKE) INFILE=$< OUTFILE=$@ LINECOMMENT=dnl -f $(stepdir)/automatically-generated.sub.make
-
-autogen.sh: $(stepmake)/autogen.sh
-       $(MAKE) INFILE=$< OUTFILE=$@ LINECOMMENT=\# -f $(stepdir)/automatically-generated.sub.make
-       chmod +x autogen.sh
-endif
-
-
 $(package-icon):
        $(MAKE) -C Documentation/logo icon
 
@@ -44,22 +32,11 @@ ifeq ($(strip $(SRCMAKE)),)
        $(MAKE) final-install
 endif
 
-local-dist: top-doc
-
-dist:
-       rm -rf $(distdir)
-       $(MAKE) local-dist $(distdir)
-       chmod -R a+r $(distdir)
-       chmod  a+x `find $(distdir) -type d -print`
-       (cd ./$(depth)/$(outdir); $(TAR) -cf -  --owner=0 --group=0 $(DIST_NAME) | gzip -9 > $(DIST_NAME).tar.gz)
-       rm -rf $(distdir)
-
 local-help:
        @echo "  config          rerun configure"
        @echo "  dist            roll tarball: $(depth)/$(outdir)/$(distname).tar.gz"
-       @echo "  distclean       also remove configure output"
-       @echo "  cvs-clean       also remove out directories and generated files"
-       @echo "  maintainerclean also remove distributed generated files"
+       @echo "  distclean       make clean, doc-clean, test-clean, log-clean and"
+       @echo "                   also remove configure output"
        @echo "  po              make new translation Portable Object database"
        @echo "  po-replace      do po-update and replace catalogs with msgmerged versions"
        @echo "  po-update       update translation Portable Object database"
@@ -78,6 +55,6 @@ local-help:
        @echo "  test-clean"
        @echo
        @echo "  For more information on these targets, see"
-       @echo "    \`Testing LilyPond' in the Contributor's Guide."
+       @echo "    \`Verify regression tests' in the Contributor's Guide."
        @echo
 
index e260f4b97b1746713db91cf34fb051cd55833e51..c8c34a4e5e680b019b47c2d25b83011c3f889fb2 100644 (file)
@@ -1,7 +1,3 @@
-
-# override Generic_vars.make:
-DIST_FILES := $(EXTRA_DIST_FILES)
-
 # urg?
 include $(stepdir)/documentation-vars.make